1 #include "mrilib.h"
2 
3 /*-------------------------------------------------------------------*/
4 /*! Make a warp-on-demand "duplicate" of a dataset.
5 ---------------------------------------------------------------------*/
6 
EDIT_wod_copy(THD_3dim_dataset * dset_in)7 THD_3dim_dataset * EDIT_wod_copy( THD_3dim_dataset *dset_in )
8 {
9    THD_3dim_dataset *dset_out ;
10    THD_warp * warp ;
11 
12 ENTRY("EDIT_wod_copy") ;
13 
14    if( !ISVALID_DSET(dset_in) ) RETURN(NULL) ;
15 
16    /*** copy header info ***/
17 
18    dset_out = EDIT_empty_copy( dset_in ) ;
19    if( !ISVALID_3DIM_DATASET(dset_out) ) RETURN(NULL) ;
20 
21    warp = myRwcNew( THD_warp ) ; *warp = IDENTITY_WARP ;
22 
23    EDIT_dset_items( dset_out ,
24                       ADN_prefix      , "dup" ,
25                       ADN_type        , HEAD_ANAT_TYPE ,
26                       ADN_func_type   , ANAT_BUCK_TYPE ,
27                       ADN_warp        , warp    ,
28                       ADN_warp_parent , dset_in ,
29                     ADN_none ) ;
30 
31    dset_out->dblk->diskptr->storage_mode = STORAGE_UNDEFINED ;
32    dset_out->dblk->malloc_type           = DATABLOCK_MEM_UNDEFINED ;
33 
34    RETURN(dset_out) ;
35 }
36