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  

edt_emptycopy.c File Reference

#include "mrilib.h"

Go to the source code of this file.


Defines

#define DUMMY_NAME   "zyxt"

Functions

THD_3dim_datasetEDIT_empty_copy (THD_3dim_dataset *old_dset)
THD_datablockEDIT_empty_datablock (void)

Define Documentation

#define DUMMY_NAME   "zyxt"
 

Definition at line 11 of file edt_emptycopy.c.

Referenced by EDIT_empty_copy(), and EDIT_empty_datablock().


Function Documentation

THD_3dim_dataset* EDIT_empty_copy THD_3dim_dataset  
 

----------------------- prototypes -----------------------*

Definition at line 20 of file edt_emptycopy.c.

References ADDTO_KILL, THD_3dim_dataset::anat_parent, THD_3dim_dataset::anat_parent_idcode, THD_3dim_dataset::anat_parent_name, ANAT_SPGR_TYPE, THD_datablock::atr, THD_datablock::brick, THD_datablock::brick_bytes, THD_datablock::brick_fac, THD_diskptr::byte_order, DATABLOCK_MEM_MALLOC, DATABLOCK_TYPE, DATAXES_TYPE, THD_3dim_dataset::daxes, THD_3dim_dataset::dblk, DBLK_unlock, THD_3dim_dataset::death_mark, THD_diskptr::dimsizes, THD_diskptr::directory_name, THD_datablock::diskptr, DISKPTR_TYPE, DUMMY_NAME, EDIT_COPY_ANATOMY_PARENT_ID, ENTRY, THD_3dim_dataset::func_type, HEAD_ANAT_TYPE, THD_3dim_dataset::idcode, INIT_KILL, INIT_STAT_AUX, ISVALID_3DIM_DATASET, ISVALID_TIMEAXIS, THD_3dim_dataset::keywords, THD_datablock::kl, THD_3dim_dataset::kl, THD_3dim_dataset::label1, THD_3dim_dataset::label2, LOAD_DIAG_MAT, THD_datablock::malloc_type, THD_3dim_dataset::markers, THD_datablock::master_bytes, THD_datablock::master_ival, THD_datablock::master_nvals, MAX_STAT_AUX, MCW_new_idcode, MCW_strncpy, myXtNew, THD_datablock::natr, THD_datablock::natr_alloc, THD_timeaxis::nsl, THD_diskptr::nvals, THD_datablock::nvals, THD_dataxes::nxx, THD_dataxes::nyy, THD_dataxes::nzz, ORI_A2P_TYPE, ORI_I2S_TYPE, ORI_R2L_TYPE, THD_3dim_dataset::parent, THD_datablock::parent, THD_dataxes::parent, THD_diskptr::rank, RETURN, THD_3dim_dataset::self_name, THD_3dim_dataset::self_warp, THD_3dim_dataset::stat_aux, THD_3dim_dataset::stats, STORAGE_BY_BRICK, THD_diskptr::storage_mode, THD_3dim_dataset::tagset, THD_3dim_dataset::taxis, THD_3dim_dataset::tcat_len, THD_3dim_dataset::tcat_list, THD_3dim_dataset::tcat_num, THD_copy_datablock_auxdata(), THD_get_write_order(), THD_init_datablock_brick(), THD_init_diskptr_names(), THD_MAX_LABEL, THD_MAX_NAME, THD_null_datablock_auxdata, THD_store_dataset_keywords(), THD_dataxes::to_dicomm, THD_timeaxis::toff_sl, THD_dataxes::type, THD_datablock::type, THD_diskptr::type, THD_warp::type, THD_3dim_dataset::type, VIEW_ORIGINAL_TYPE, THD_3dim_dataset::view_type, THD_3dim_dataset::vox_warp, THD_3dim_dataset::warp, THD_3dim_dataset::warp_parent, THD_3dim_dataset::warp_parent_idcode, THD_3dim_dataset::warp_parent_name, THD_3dim_dataset::wod_daxes, THD_3dim_dataset::wod_flag, XtMalloc, THD_dataxes::xxdel, THD_dataxes::xxmax, THD_dataxes::xxmin, THD_dataxes::xxorg, THD_dataxes::xxorient, THD_dataxes::yydel, THD_dataxes::yymax, THD_dataxes::yymin, THD_dataxes::yyorg, THD_dataxes::yyorient, ZERO_IDCODE, ZERO_STAT_AUX, THD_dataxes::zzdel, THD_dataxes::zzmax, THD_dataxes::zzmin, THD_dataxes::zzorg, and THD_dataxes::zzorient.

Referenced by AFNI_fimmer_compute(), AFNI_read_inputs(), applyMask(), basis_write_iresp(), basis_write_sresp(), check_one_output_file(), check_output_file(), copy_dset(), COPY_main(), create_bucket(), do_xrestore_stuff(), DRAW_copy_dset(), DUP_main(), EDIT_full_copy(), EDIT_main(), EDIT_wod_copy(), EDT_calcmask(), fim3d_fimmer_compute(), form_clusters(), Fourier_Filter_Driver(), get_options(), main(), MAKER_4D_to_typed_fbuc(), MAKER_4D_to_typed_fim(), MAKER_4D_to_typed_fith(), output_ts_array(), PERMTEST_main(), POWER_main(), process_NIML_Node_ROI(), r_new_resam_dset(), REORDER_main(), RT_fim_recurse(), RT_start_dataset(), s2v_nodes2volume(), saveMask(), STAVG_main(), SUMA_FormAfnidset(), terminate(), THD_copy_dset_subs(), THD_dataset_headname(), THD_is_dataset(), THD_open_1D(), THD_open_3D(), THD_open_analyze(), THD_open_ctfmri(), THD_open_ctfsam(), THD_open_minc(), THD_open_mpeg(), THD_open_nifti(), THD_open_tcat(), THD_warp3D(), THD_zeropad(), THRESH_main(), VOLREG_main(), WINsorize(), write_3dtime(), write_afni_data(), write_afni_fict(), write_afni_fizt(), write_bucket(), write_bucket_data(), write_results(), and write_ts_array().

00021 {
00022    THD_3dim_dataset *new_dset ;
00023    THD_datablock    *new_dblk ;
00024    THD_dataxes      *new_daxes ;
00025    THD_timeaxis     *new_taxis ;
00026    THD_diskptr      *new_dkptr ;
00027    int               new_nvals , old_good ;
00028 
00029 ENTRY("EDIT_empty_copy") ; /* 29 Aug 2001 */
00030 
00031    old_good = ISVALID_3DIM_DATASET(old_dset) ;
00032 
00033    /** make some new places to store stuff **/
00034 
00035    new_dset                      = myXtNew( THD_3dim_dataset ) ;
00036    new_dblk  = new_dset->dblk    = myXtNew( THD_datablock ) ;
00037    new_daxes = new_dset->daxes   = myXtNew( THD_dataxes ) ;
00038    new_dkptr = new_dblk->diskptr = myXtNew( THD_diskptr ) ;
00039 
00040    INIT_KILL(new_dset->kl) ; INIT_KILL(new_dblk->kl) ;
00041    ADDTO_KILL(new_dset->kl,new_dblk)  ;
00042    ADDTO_KILL(new_dset->kl,new_daxes) ;
00043    ADDTO_KILL(new_dset->kl,new_dkptr) ;
00044 
00045    new_dset->wod_daxes         = myXtNew(THD_dataxes) ;
00046    new_dset->wod_daxes->parent = (XtPointer) new_dset ;
00047    new_dset->wod_flag          = False ;
00048 
00049    ADDTO_KILL(new_dset->kl,new_dset->wod_daxes) ;
00050 
00051    new_dset->idcode = MCW_new_idcode() ;
00052    ZERO_IDCODE(new_dset->anat_parent_idcode) ;
00053    ZERO_IDCODE(new_dset->warp_parent_idcode) ;
00054 
00055    if( old_good ){
00056       new_dset->type      = old_dset->type ;      /* data types */
00057       new_dset->func_type = old_dset->func_type ;
00058       new_dset->view_type = old_dset->view_type ;
00059       new_nvals           = old_dset->dblk->nvals ;
00060    } else {
00061       new_dset->type      = HEAD_ANAT_TYPE ;
00062       new_dset->func_type = ANAT_SPGR_TYPE ;
00063       new_dset->view_type = VIEW_ORIGINAL_TYPE ;
00064       new_nvals           = ANAT_nvals[new_dset->func_type] ;
00065    }
00066 
00067    new_dset->warp        = NULL ;
00068    new_dset->anat_parent = NULL ;
00069    new_dset->markers     = NULL ;
00070    new_dset->warp_parent = NULL ;
00071 
00072    /*-- 14 Dec 1999: copy the anat_parent, too --*/
00073 
00074    if( old_good ){
00075       new_dset->anat_parent = old_dset->anat_parent  ; /* actual link, for use now */
00076       EDIT_COPY_ANATOMY_PARENT_ID(new_dset,old_dset) ; /* idcode, for HEAD file later */
00077    }
00078 
00079    /*-- end of anat_parent copy --*/
00080 
00081    new_dset->vox_warp       = myXtNew( THD_warp ) ;  /* create a voxel warp */
00082    new_dset->vox_warp->type = ILLEGAL_TYPE ;         /* but don't put anything in it */
00083    new_dset->self_warp      = NULL ;                 /* 26 Aug 2002 */
00084 
00085    new_dset->warp_parent_name[0] = '\0' ;
00086    new_dset->anat_parent_name[0] = '\0' ;
00087 
00088    MCW_strncpy( new_dset->self_name , DUMMY_NAME , THD_MAX_NAME  ) ;
00089    MCW_strncpy( new_dset->label1    , DUMMY_NAME , THD_MAX_LABEL ) ;
00090    MCW_strncpy( new_dset->label2    , DUMMY_NAME , THD_MAX_LABEL ) ;
00091 
00092    new_dset->death_mark  = 0 ;
00093    new_dset->tcat_list   = NULL ;
00094    new_dset->tcat_num    = 0 ;
00095    new_dset->tcat_len    = NULL ;
00096 #ifdef ALLOW_DATASET_VLIST
00097    new_dset->pts         = NULL ;
00098 #endif
00099    new_dset->tagset      = NULL ;  /* Oct 1998 */
00100 
00101    new_dkptr->type         = DISKPTR_TYPE ;
00102    new_dkptr->rank         = 3 ;
00103    new_dkptr->nvals        = new_nvals ;
00104    new_dkptr->storage_mode = STORAGE_BY_BRICK ;
00105    new_dkptr->byte_order   = THD_get_write_order() ;  /* 25 April 1998 */
00106    if( old_good ){
00107       new_dkptr->dimsizes[0]  = old_dset->daxes->nxx ;
00108       new_dkptr->dimsizes[1]  = old_dset->daxes->nyy ;
00109       new_dkptr->dimsizes[2]  = old_dset->daxes->nzz ;
00110    } else {
00111       new_dkptr->dimsizes[0]  = 2 ;
00112       new_dkptr->dimsizes[1]  = 2 ;
00113       new_dkptr->dimsizes[2]  = 2 ;
00114    }
00115 
00116    if( old_good )
00117       THD_init_diskptr_names( new_dkptr ,
00118                               old_dset->dblk->diskptr->directory_name ,
00119                               NULL , DUMMY_NAME ,
00120                               new_dset->view_type , True ) ;
00121    else
00122       THD_init_diskptr_names( new_dkptr ,
00123                               "./" , NULL , DUMMY_NAME ,
00124                               new_dset->view_type , True ) ;
00125 
00126    new_dblk->type        = DATABLOCK_TYPE ;
00127    new_dblk->nvals       = new_nvals ;
00128    new_dblk->malloc_type = DATABLOCK_MEM_MALLOC ;
00129    new_dblk->natr        = new_dblk->natr_alloc = 0 ;
00130    new_dblk->atr         = NULL ;
00131    new_dblk->parent      = (XtPointer) new_dset ;
00132 
00133    DBLK_unlock(new_dblk) ;  /* Feb 1998 */
00134 
00135    new_dblk->brick_fac   = NULL ;
00136    new_dblk->brick_bytes = NULL ;
00137    new_dblk->brick       = NULL ;
00138    if( old_good )
00139       THD_init_datablock_brick( new_dblk , -1 , old_dset->dblk ) ;
00140    else
00141       THD_init_datablock_brick( new_dblk , MRI_short , NULL ) ;
00142 
00143    if( old_good && old_dset->keywords != NULL )
00144       THD_store_dataset_keywords( new_dset , old_dset->keywords ) ;
00145    else
00146       new_dset->keywords = NULL ;
00147 
00148    THD_null_datablock_auxdata( new_dblk ) ;
00149    if( old_good ) THD_copy_datablock_auxdata( old_dset->dblk , new_dblk ) ;
00150 
00151    new_dblk->master_nvals = 0 ;     /* 11 Jan 1999 */
00152    new_dblk->master_ival  = NULL ;  /* Copy does not inherit mastery */
00153    new_dblk->master_bytes = NULL ;
00154 
00155    if( old_good )
00156      *new_daxes  = *(old_dset->daxes) ;    /* copy all contents */
00157    else {
00158      new_daxes->type = DATAXES_TYPE ;      /* make up contents */
00159 
00160      new_daxes->nxx = new_dkptr->dimsizes[0] ;
00161      new_daxes->nyy = new_dkptr->dimsizes[1] ;
00162      new_daxes->nzz = new_dkptr->dimsizes[2] ;
00163 
00164      new_daxes->xxorg = new_daxes->yyorg = new_daxes->zzorg = -0.5 ;
00165      new_daxes->xxdel = new_daxes->yydel = new_daxes->zzdel =  1.0 ;
00166 
00167      new_daxes->xxorient = ORI_R2L_TYPE ;
00168      new_daxes->yyorient = ORI_A2P_TYPE ;
00169      new_daxes->zzorient = ORI_I2S_TYPE ;
00170      LOAD_DIAG_MAT(new_daxes->to_dicomm,1,1,1) ;
00171 
00172      new_daxes->xxmin = new_daxes->yymin = new_daxes->zzmin = -0.5 ;
00173      new_daxes->xxmax = new_daxes->yymax = new_daxes->zzmax =  0.5 ;
00174    }
00175    new_daxes->parent = (XtPointer) new_dset ;
00176 
00177    new_dset->stats   = NULL ;
00178    new_dset->parent  = NULL ;
00179 
00180    if( old_good )
00181      INIT_STAT_AUX( new_dset , MAX_STAT_AUX , old_dset->stat_aux ) ;
00182    else
00183      ZERO_STAT_AUX( new_dset ) ;
00184 
00185    if( old_good && ISVALID_TIMEAXIS(old_dset->taxis) ){
00186      new_taxis = new_dset->taxis = myXtNew( THD_timeaxis ) ;
00187 
00188      *new_taxis = *old_dset->taxis ;  /* copy contents */
00189 
00190      if( new_taxis->nsl > 0 ){        /* copy toff_sl array, if present */
00191        int isl ;
00192        new_taxis->toff_sl = (float *) XtMalloc( sizeof(float) * new_taxis->nsl ) ;
00193        for( isl = 0 ; isl < new_taxis->nsl ; isl++ )
00194          new_taxis->toff_sl[isl] = old_dset->taxis->toff_sl[isl] ;
00195      } else {
00196        new_taxis->toff_sl = NULL ;
00197      }
00198    } else {
00199      new_dset->taxis = NULL ;
00200    }
00201 
00202    RETURN( new_dset );
00203 }

THD_datablock* EDIT_empty_datablock void   
 

Create a simple empty datablock, to be filled in later.

Definition at line 208 of file edt_emptycopy.c.

References ADDTO_KILL, THD_datablock::atr, THD_datablock::brick, THD_datablock::brick_bytes, THD_datablock::brick_fac, THD_datablock::brick_keywords, THD_datablock::brick_lab, THD_datablock::brick_stataux, THD_datablock::brick_statcode, THD_diskptr::byte_order, DATABLOCK_MEM_UNDEFINED, DATABLOCK_TYPE, DBLK_unlock, THD_diskptr::dimsizes, THD_datablock::diskptr, DISKPTR_TYPE, DUMMY_NAME, ENTRY, INIT_KILL, THD_datablock::kl, THD_datablock::malloc_type, THD_datablock::master_bot, THD_datablock::master_bytes, THD_datablock::master_ival, THD_datablock::master_nvals, THD_datablock::master_top, myXtNew, THD_datablock::natr, THD_datablock::natr_alloc, THD_diskptr::nvals, THD_datablock::nvals, THD_datablock::parent, THD_diskptr::rank, RETURN, THD_datablock::shm_idcode, THD_diskptr::storage_mode, STORAGE_UNDEFINED, THD_get_write_order(), THD_init_diskptr_names(), THD_null_datablock_auxdata, THD_datablock::total_bytes, THD_diskptr::type, THD_datablock::type, and VIEW_ORIGINAL_TYPE.

Referenced by THD_init_one_datablock(), and THD_niml_to_dataset().

00209 {
00210    THD_datablock *new_dblk ;
00211    THD_diskptr   *new_dkptr ;
00212 
00213 ENTRY("EDIT_empty_datablock") ;
00214 
00215    /** make some new places to store stuff **/
00216 
00217    new_dblk                 = myXtNew( THD_datablock ) ;
00218    new_dblk->type           = DATABLOCK_TYPE ;
00219    new_dblk->brick          = NULL ;
00220    new_dblk->brick_bytes    = NULL ;
00221    new_dblk->brick_fac      = NULL ;
00222    new_dblk->total_bytes    = 0    ;
00223    new_dblk->malloc_type    = DATABLOCK_MEM_UNDEFINED ;
00224    new_dblk->parent         = NULL ;
00225    new_dblk->brick_lab      = NULL ;
00226    new_dblk->brick_keywords = NULL ;
00227    new_dblk->brick_statcode = NULL ;
00228    new_dblk->brick_stataux  = NULL ;
00229    new_dblk->master_nvals   = 0    ; 
00230    new_dblk->master_ival    = NULL ;
00231    new_dblk->master_bytes   = NULL ;
00232    new_dblk->master_bot     = 1.0  ;
00233    new_dblk->master_top     = 0.0  ;
00234    new_dblk->shm_idcode[0]  = '\0' ;
00235    new_dblk->nvals          = 1 ;
00236    new_dblk->natr           = new_dblk->natr_alloc = 0 ;
00237    new_dblk->atr            = NULL ;
00238 
00239    new_dkptr = new_dblk->diskptr = myXtNew( THD_diskptr ) ;
00240 
00241    new_dkptr->type         = DISKPTR_TYPE ;
00242    new_dkptr->rank         = 3 ;
00243    new_dkptr->nvals        = 1 ;
00244    new_dkptr->storage_mode = STORAGE_UNDEFINED ;
00245    new_dkptr->byte_order   = THD_get_write_order() ;
00246    new_dkptr->dimsizes[0]  = 2 ;
00247    new_dkptr->dimsizes[1]  = 2 ;
00248    new_dkptr->dimsizes[2]  = 2 ;
00249 
00250    THD_init_diskptr_names( new_dkptr ,
00251                            "./" , NULL , DUMMY_NAME ,
00252                            VIEW_ORIGINAL_TYPE , True ) ;
00253 
00254    INIT_KILL(new_dblk->kl) ;
00255    ADDTO_KILL(new_dblk->kl,new_dkptr) ;
00256 
00257    DBLK_unlock(new_dblk) ;
00258    THD_null_datablock_auxdata( new_dblk ) ;
00259 
00260    RETURN( new_dblk ) ;
00261 }
 

Powered by Plone

This site conforms to the following standards: