Doxygen Source Code Documentation
edt_emptycopy.c File Reference
#include "mrilib.h"
Go to the source code of this file.
Defines | |
#define | DUMMY_NAME "zyxt" |
Functions | |
THD_3dim_dataset * | EDIT_empty_copy (THD_3dim_dataset *old_dset) |
THD_datablock * | EDIT_empty_datablock (void) |
Define Documentation
|
Definition at line 11 of file edt_emptycopy.c. Referenced by EDIT_empty_copy(), and EDIT_empty_datablock(). |
Function Documentation
|
----------------------- 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 } |
|