Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

thd_auxdata.c File Reference

#include "mrilib.h"
#include "thd.h"

Go to the source code of this file.


Defines

#define DQQ(s)

Functions

void THD_copy_datablock_auxdata (THD_datablock *old_dblk, THD_datablock *new_dblk)
void THD_init_datablock_labels (THD_datablock *dblk)
void THD_store_datablock_label (THD_datablock *dblk, int iv, char *str)
void THD_init_datablock_keywords (THD_datablock *dblk)
void THD_store_datablock_keywords (THD_datablock *dblk, int iv, char *str)
void THD_append_datablock_keywords (THD_datablock *dblk, int iv, char *str)
void THD_init_datablock_stataux (THD_datablock *dblk)
void THD_store_datablock_stataux (THD_datablock *dblk, int iv, int scode, int npar, float *par)
int THD_string_has (char *strbig, char *strlit)
void THD_store_dataset_keywords (THD_3dim_dataset *dset, char *str)
void THD_append_dataset_keywords (THD_3dim_dataset *dset, char *str)

Define Documentation

#define DQQ  
 

Definition at line 13 of file thd_auxdata.c.

Referenced by THD_copy_datablock_auxdata().


Function Documentation

void THD_append_datablock_keywords THD_datablock   dblk,
int    iv,
char *    str
 

Definition at line 178 of file thd_auxdata.c.

References THD_datablock::brick_keywords, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, THD_init_datablock_keywords(), THD_store_datablock_keywords(), and XtMalloc.

Referenced by EDIT_dset_items().

00179 {
00180    if( ! ISVALID_DATABLOCK(dblk)   ||
00181        iv < 0 || iv >= dblk->nvals || str == NULL ) return ;
00182 
00183    if( dblk->brick_keywords == NULL ) THD_init_datablock_keywords( dblk ) ;
00184 
00185    if( dblk->brick_keywords[iv] == NULL || dblk->brick_keywords[iv][0] == '\0' ){
00186       THD_store_datablock_keywords( dblk , iv , str ) ;
00187    } else if( str[0] != '\0' ){
00188       int ll = strlen(dblk->brick_keywords[iv]) + strlen(str) + 6 ;
00189       char *cc = (char*)XtMalloc( sizeof(char) * ll ) ;
00190       strcpy(cc,dblk->brick_keywords[iv]) ; strcat(cc," ; ") ; strcat(cc,str) ;
00191       myXtFree( dblk->brick_keywords[iv] ) ;
00192       dblk->brick_keywords[iv] = cc ;
00193    }
00194    return ;
00195 }

void THD_append_dataset_keywords THD_3dim_dataset   dset,
char *    str
 

Definition at line 285 of file thd_auxdata.c.

References ISVALID_3DIM_DATASET, THD_3dim_dataset::keywords, myXtFree, THD_store_dataset_keywords(), and XtMalloc.

Referenced by EDIT_dset_items().

00286 {
00287    if( ! ISVALID_3DIM_DATASET(dset) || str == NULL ) return ;
00288 
00289    if( dset->keywords == NULL || dset->keywords[0] == '\0' ){
00290       THD_store_dataset_keywords( dset , str ) ;
00291    } else if( str[0] != '\0' ){
00292       int ll = strlen(dset->keywords) + strlen(str) + 6 ;
00293       char *cc = (char*)XtMalloc( sizeof(char) * ll ) ;
00294       strcpy(cc,dset->keywords) ; strcat(cc," ; ") ; strcat(cc,str) ;
00295       myXtFree( dset->keywords ) ;
00296       dset->keywords = cc ;
00297    }
00298    return ;
00299 }

void THD_copy_datablock_auxdata THD_datablock   old_dblk,
THD_datablock   new_dblk
 

Definition at line 18 of file thd_auxdata.c.

References THD_datablock::brick_keywords, THD_datablock::brick_lab, THD_datablock::brick_stataux, THD_datablock::brick_statcode, DQQ, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, THD_init_datablock_keywords(), THD_init_datablock_labels(), THD_init_datablock_stataux(), THD_store_datablock_keywords(), THD_store_datablock_label(), and THD_store_datablock_stataux().

Referenced by adwarp_follower_dataset(), AFNI_follower_dataset(), AFNI_init_warp(), EDIT_dset_items(), EDIT_empty_copy(), main(), and THD_warp3D().

00019 {
00020    int new_nvals , old_nvals , min_nvals , iv,kv , ibr ;
00021 
00022 DQQ("entry") ;
00023 
00024    if( ! ISVALID_DATABLOCK(new_dblk) ) return ;
00025 
00026    new_nvals = new_dblk->nvals ;
00027 
00028    if( new_dblk->brick_lab != NULL ){
00029       for( ibr=0 ; ibr < new_nvals ; ibr++ ) myXtFree( new_dblk->brick_lab[ibr] ) ;
00030       myXtFree( new_dblk->brick_lab ) ;
00031    }
00032 
00033    if( new_dblk->brick_keywords != NULL ){
00034       for( ibr=0 ; ibr < new_nvals ; ibr++ ) myXtFree( new_dblk->brick_keywords[ibr] ) ;
00035       myXtFree( new_dblk->brick_keywords ) ;
00036    }
00037 
00038    if( new_dblk->brick_statcode != NULL )
00039       myXtFree( new_dblk->brick_statcode ) ;
00040 
00041    if( new_dblk->brick_stataux != NULL ){
00042       for( ibr=0 ; ibr < new_nvals ; ibr++ ) myXtFree( new_dblk->brick_stataux[ibr] ) ;
00043       myXtFree( new_dblk->brick_stataux ) ;
00044    }
00045 
00046    new_dblk->brick_lab      = NULL ;
00047    new_dblk->brick_keywords = NULL ;
00048    new_dblk->brick_statcode = NULL ;
00049    new_dblk->brick_stataux  = NULL ;
00050 
00051 DQQ("finish nulling") ;
00052 
00053    if( ! ISVALID_DATABLOCK(old_dblk) ) return ;
00054 
00055    old_nvals = old_dblk->nvals ;
00056    min_nvals = (old_nvals < new_nvals) ? old_nvals : new_nvals ;
00057 
00058 DQQ("starting copy") ;
00059 
00060    if( old_dblk->brick_lab != NULL ){
00061 DQQ("copy labels") ;
00062       THD_init_datablock_labels( new_dblk ) ;
00063       for( iv=0 ; iv < min_nvals ; iv++ )
00064          THD_store_datablock_label( new_dblk , iv , old_dblk->brick_lab[iv] ) ;
00065    }
00066 
00067    if( old_dblk->brick_keywords != NULL ){
00068 DQQ("copy keywords") ;
00069       THD_init_datablock_keywords( new_dblk ) ;
00070       for( iv=0 ; iv < min_nvals ; iv++ )
00071          THD_store_datablock_keywords( new_dblk , iv , old_dblk->brick_keywords[iv] ) ;
00072    }
00073 
00074    if( old_dblk->brick_statcode != NULL ){
00075 DQQ("copy statcode and stataux") ;
00076       THD_init_datablock_stataux( new_dblk ) ;
00077       for( iv=0 ; iv < min_nvals ; iv++ ){
00078          kv = old_dblk->brick_statcode[iv] ;
00079          THD_store_datablock_stataux( new_dblk , iv , kv ,
00080                                       FUNC_need_stat_aux[kv] ,
00081                                       old_dblk->brick_stataux[iv] ) ;
00082       }
00083    }
00084 
00085 DQQ("exit") ;
00086    return ;
00087 }

void THD_init_datablock_keywords THD_datablock   dblk
 

Definition at line 140 of file thd_auxdata.c.

References THD_datablock::brick_keywords, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, and XtMalloc.

Referenced by EDIT_add_bricklist(), MAKER_4D_to_typed_fbuc(), THD_append_datablock_keywords(), THD_copy_datablock_auxdata(), THD_datablock_apply_atr(), THD_datablock_from_atr(), and THD_store_datablock_keywords().

00141 {
00142    int ibr , nvals ;
00143 
00144    if( ! ISVALID_DATABLOCK(dblk) ) return ;
00145 
00146    nvals = dblk->nvals ;
00147 
00148    if( dblk->brick_keywords != NULL ){
00149       for( ibr=0 ; ibr < nvals ; ibr++ ) myXtFree( dblk->brick_keywords[ibr] ) ;
00150       myXtFree( dblk->brick_keywords ) ;
00151    }
00152 
00153    dblk->brick_keywords = (char **) XtMalloc( sizeof(char *) * nvals ) ;
00154    for( ibr=0 ; ibr < nvals ; ibr++ ){
00155       dblk->brick_keywords[ibr]    = (char *) XtMalloc(sizeof(char)*4) ;
00156       dblk->brick_keywords[ibr][0] = '\0' ;
00157    }
00158 
00159    return ;
00160 }

void THD_init_datablock_labels THD_datablock   dblk
 

Definition at line 93 of file thd_auxdata.c.

References THD_datablock::brick_lab, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, and XtMalloc.

Referenced by adwarp_follower_dataset(), AFNI_follower_dataset(), EDIT_add_bricklist(), MAKER_4D_to_typed_fbuc(), THD_copy_datablock_auxdata(), THD_datablock_apply_atr(), THD_datablock_from_atr(), and THD_store_datablock_label().

00094 {
00095    int ibr , nvals ;
00096 
00097    if( ! ISVALID_DATABLOCK(dblk) ) return ;
00098 
00099    nvals = dblk->nvals ;
00100 
00101    if( dblk->brick_lab != NULL ){
00102       for( ibr=0 ; ibr < nvals ; ibr++ ) myXtFree( dblk->brick_lab[ibr] ) ;
00103       myXtFree( dblk->brick_lab ) ;
00104    }
00105 
00106    dblk->brick_lab = (char **) XtMalloc( sizeof(char *) * nvals ) ;
00107    for( ibr=0 ; ibr < nvals ; ibr++ ){
00108       dblk->brick_lab[ibr] = (char *) XtMalloc(sizeof(char)*8) ;
00109       sprintf( dblk->brick_lab[ibr] , "#%d" , ibr ) ;
00110    }
00111 
00112    return ;
00113 }

void THD_init_datablock_stataux THD_datablock   dblk
 

Definition at line 199 of file thd_auxdata.c.

References THD_datablock::brick_stataux, THD_datablock::brick_statcode, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, and XtMalloc.

Referenced by MAKER_4D_to_typed_fbuc(), THD_copy_datablock_auxdata(), and THD_store_datablock_stataux().

00200 {
00201    int ibr , nvals ;
00202 
00203    if( ! ISVALID_DATABLOCK(dblk) ) return ;
00204 
00205    nvals = dblk->nvals ;
00206 
00207    if( dblk->brick_statcode != NULL )
00208       myXtFree( dblk->brick_statcode ) ;
00209 
00210    if( dblk->brick_stataux != NULL ){
00211       for( ibr=0 ; ibr < nvals ; ibr++ ) myXtFree( dblk->brick_stataux[ibr] ) ;
00212       myXtFree( dblk->brick_stataux ) ;
00213    }
00214 
00215    /* initialize to emptinesss */
00216 
00217    dblk->brick_statcode = (int *)    XtMalloc( sizeof(int)     * nvals ) ;
00218    dblk->brick_stataux  = (float **) XtMalloc( sizeof(float *) * nvals ) ;
00219    for( ibr=0 ; ibr < nvals ; ibr++ ){
00220       dblk->brick_statcode[ibr] = 0 ;
00221       dblk->brick_stataux[ibr]  = NULL ;
00222    }
00223 
00224    return ;
00225 }

void THD_store_datablock_keywords THD_datablock   dblk,
int    iv,
char *    str
 

Definition at line 164 of file thd_auxdata.c.

References THD_datablock::brick_keywords, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, and THD_init_datablock_keywords().

Referenced by EDIT_add_bricklist(), EDIT_dset_items(), THD_append_datablock_keywords(), THD_copy_datablock_auxdata(), and THD_setup_mastery().

00165 {
00166    if( ! ISVALID_DATABLOCK(dblk) || iv < 0 || iv >= dblk->nvals ) return ;
00167 
00168    if( dblk->brick_keywords == NULL ) THD_init_datablock_keywords( dblk ) ;
00169 
00170    myXtFree( dblk->brick_keywords[iv] ) ;
00171    if( str != NULL && str[0] != '\0' )
00172       dblk->brick_keywords[iv] = XtNewString( str ) ;
00173    return ;
00174 }

void THD_store_datablock_label THD_datablock   dblk,
int    iv,
char *    str
 

Definition at line 117 of file thd_auxdata.c.

References THD_datablock::brick_lab, free, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, THD_init_datablock_labels(), and XtMalloc.

Referenced by EDIT_add_bricklist(), EDIT_dset_items(), main(), THD_copy_datablock_auxdata(), and THD_setup_mastery().

00118 {
00119    char *sss ;  /* 02 Sep 2004 */
00120 
00121    if( ! ISVALID_DATABLOCK(dblk) || iv < 0 || iv >= dblk->nvals  ) return ;
00122 
00123    if( dblk->brick_lab == NULL ) THD_init_datablock_labels( dblk ) ;
00124 
00125    myXtFree( dblk->brick_lab[iv] ) ;
00126    if( str != NULL && str[0] != '\0' ){
00127       sss = strdup(str) ;
00128       if( strlen(sss) > 32 ) sss[32] = '\0' ;
00129       dblk->brick_lab[iv] = XtNewString( sss ) ;
00130       free((void *)sss) ;
00131    } else {
00132       dblk->brick_lab[iv] = (char *) XtMalloc(sizeof(char)*8) ;
00133       sprintf( dblk->brick_lab[iv] , "#%d" , iv ) ;
00134    }
00135    return ;
00136 }

void THD_store_datablock_stataux THD_datablock   dblk,
int    iv,
int    scode,
int    npar,
float *    par
 

Definition at line 229 of file thd_auxdata.c.

References THD_datablock::brick_stataux, THD_datablock::brick_statcode, FUNC_IS_STAT, ISVALID_DATABLOCK, myXtFree, THD_datablock::nvals, THD_init_datablock_stataux(), and XtMalloc.

Referenced by EDIT_dset_items(), THD_copy_datablock_auxdata(), THD_datablock_apply_atr(), THD_datablock_from_atr(), and THD_setup_mastery().

00231 {
00232    int kv , jv ;
00233 
00234    if( ! ISVALID_DATABLOCK(dblk) ) return ;
00235    if( iv < 0 || iv >= dblk->nvals || npar < 0 ) return ;
00236 
00237    if( dblk->brick_statcode == NULL ) THD_init_datablock_stataux( dblk ) ;
00238 
00239    dblk->brick_statcode[iv] = scode ;  /* save statcode */
00240 
00241    if( ! FUNC_IS_STAT(scode) ) return ;  /* do nothing else */
00242 
00243    /* make space, then copy data into it */
00244 
00245    kv = FUNC_need_stat_aux[scode] ;    /* how many params we need */
00246    if( npar > kv ) npar = kv ;         /* how many params we have */
00247 
00248    myXtFree( dblk->brick_stataux[iv] ) ;  /* if any old stuff, toss it */
00249 
00250    if( kv > 0 ){
00251       dblk->brick_stataux[iv] = (float *) XtMalloc( sizeof(float) * kv ) ;
00252       for( jv=0 ; jv < npar ; jv++ )
00253          dblk->brick_stataux[iv][jv] = par[jv] ; /* copy in */
00254       for( ; jv < kv ; jv++ )
00255          dblk->brick_stataux[iv][jv] = 0.0 ;     /* 0 fill */
00256    }
00257 
00258    return ;
00259 }

void THD_store_dataset_keywords THD_3dim_dataset   dset,
char *    str
 

Definition at line 273 of file thd_auxdata.c.

References ISVALID_3DIM_DATASET, THD_3dim_dataset::keywords, and myXtFree.

Referenced by EDIT_dset_items(), EDIT_empty_copy(), and THD_append_dataset_keywords().

00274 {
00275    if( ! ISVALID_3DIM_DATASET(dset) ) return ;
00276 
00277    myXtFree( dset->keywords ) ;
00278    if( str != NULL && str[0] != '\0' )
00279       dset->keywords = XtNewString( str ) ;
00280    return ;
00281 }

int THD_string_has char *    strbig,
char *    strlit
 

Definition at line 263 of file thd_auxdata.c.

00264 {
00265    if( strbig == NULL || strbig[0] == '\0' ||
00266        strlit == NULL || strlit[0] == '\0'   ) return 0 ;
00267 
00268    return ( strstr(strbig,strlit) != NULL ) ;
00269 }
 

Powered by Plone

This site conforms to the following standards: