1 /***************************************************************************** 2 Major portions of this software are copyrighted by the Medical College 3 of Wisconsin, 1994-2000, and are released under the Gnu General Public 4 License, Version 2. See the file README.Copyright for details. 5 ******************************************************************************/ 6 7 #ifndef _AFNI_WARP_HEADER_ 8 #define _AFNI_WARP_HEADER_ 9 10 #include "mrilib.h" 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 /** external routine for freeing memory in THD_load_datablock **/ 17 18 extern MRI_IMAGE * AFNI_dataset_slice( THD_3dim_dataset * , int,int,int,int ) ; 19 extern MRI_IMAGE * FD_warp_to_mri( int,int , FD_brick * ) ; 20 extern void AFNI_set_ignore_vedit( int ) ; /* 28 Jan 2008 */ 21 22 extern MRI_IMAGE * AFNI_dataset_displayim( THD_3dim_dataset *dset , int ival ) ; 23 24 extern MRI_IMAGE * AFNI_slice_flip(int,int,int,int,int,int, THD_3dim_dataset *); 25 26 /***********************************************************************/ 27 /* Prototypes for the template routines in afni_slice.c */ 28 29 /* macro to test data type for OK-ness with slicing and dicing routines */ 30 31 #define AFNI_GOOD_DTYPE(dt) ((dt)==MRI_short || (dt)==MRI_float || \ 32 (dt)==MRI_byte || (dt)==MRI_complex || \ 33 (dt)==MRI_rgb || (dt)==MRI_double ) 34 35 /* macro to test data type for OK-ness with functional processing routines */ 36 37 #define AFNI_GOOD_FUNC_DTYPE(dt) ((dt)==MRI_short || (dt)==MRI_rgb || \ 38 (dt)==MRI_float || (dt)==MRI_byte || \ 39 (dt)==MRI_double ) 40 41 /*---------------------------------------------------------------------*/ 42 /* There should be one set of routines for each legal datum type above */ 43 /*---------------------------------------------------------------------*/ 44 #undef WTYPE 45 #undef LMAP_XNAME 46 #undef LMAP_YNAME 47 #undef LMAP_ZNAME 48 #undef B2SL_NAME 49 #define WTYPE short 50 #define LMAP_XNAME TWO_TWO(AFNI_lmap_to_xslice_,WTYPE) 51 #define LMAP_YNAME TWO_TWO(AFNI_lmap_to_yslice_,WTYPE) 52 #define LMAP_ZNAME TWO_TWO(AFNI_lmap_to_zslice_,WTYPE) 53 #define B2SL_NAME TWO_TWO(AFNI_br2sl_,WTYPE) 54 55 extern void LMAP_XNAME( THD_linear_mapping * , int , 56 THD_dataxes * , WTYPE * , 57 THD_dataxes * new_daxes , int , WTYPE * ) ; 58 59 extern void LMAP_YNAME( THD_linear_mapping * , int , 60 THD_dataxes * , WTYPE * , 61 THD_dataxes * new_daxes , int , WTYPE * ) ; 62 63 extern void LMAP_ZNAME( THD_linear_mapping * , int , 64 THD_dataxes * , WTYPE * , 65 THD_dataxes * new_daxes , int , WTYPE * ) ; 66 67 extern void B2SL_NAME( int nxx, int nyy, int nzz , 68 int fixed_axis , int fixed_index , 69 WTYPE * bold , WTYPE * bslice ) ; 70 /*------------------------------------------------------------------*/ 71 #undef WTYPE 72 #undef LMAP_XNAME 73 #undef LMAP_YNAME 74 #undef LMAP_ZNAME 75 #undef B2SL_NAME 76 #define WTYPE float 77 #define LMAP_XNAME TWO_TWO(AFNI_lmap_to_xslice_,WTYPE) 78 #define LMAP_YNAME TWO_TWO(AFNI_lmap_to_yslice_,WTYPE) 79 #define LMAP_ZNAME TWO_TWO(AFNI_lmap_to_zslice_,WTYPE) 80 #define B2SL_NAME TWO_TWO(AFNI_br2sl_,WTYPE) 81 82 extern void LMAP_XNAME( THD_linear_mapping * , int , 83 THD_dataxes * , WTYPE * , 84 THD_dataxes * new_daxes , int , WTYPE * ) ; 85 86 extern void LMAP_YNAME( THD_linear_mapping * , int , 87 THD_dataxes * , WTYPE * , 88 THD_dataxes * new_daxes , int , WTYPE * ) ; 89 90 extern void LMAP_ZNAME( THD_linear_mapping * , int , 91 THD_dataxes * , WTYPE * , 92 THD_dataxes * new_daxes , int , WTYPE * ) ; 93 94 extern void B2SL_NAME( int nxx, int nyy, int nzz , 95 int fixed_axis , int fixed_index , 96 WTYPE * bold , WTYPE * bslice ) ; 97 /*---------------------------------------------------------------------*/ 98 #undef WTYPE 99 #undef LMAP_XNAME 100 #undef LMAP_YNAME 101 #undef LMAP_ZNAME 102 #undef B2SL_NAME 103 #define WTYPE byte 104 #define LMAP_XNAME TWO_TWO(AFNI_lmap_to_xslice_,WTYPE) 105 #define LMAP_YNAME TWO_TWO(AFNI_lmap_to_yslice_,WTYPE) 106 #define LMAP_ZNAME TWO_TWO(AFNI_lmap_to_zslice_,WTYPE) 107 #define B2SL_NAME TWO_TWO(AFNI_br2sl_,WTYPE) 108 109 extern void LMAP_XNAME( THD_linear_mapping * , int , 110 THD_dataxes * , WTYPE * , 111 THD_dataxes * new_daxes , int , WTYPE * ) ; 112 113 extern void LMAP_YNAME( THD_linear_mapping * , int , 114 THD_dataxes * , WTYPE * , 115 THD_dataxes * new_daxes , int , WTYPE * ) ; 116 117 extern void LMAP_ZNAME( THD_linear_mapping * , int , 118 THD_dataxes * , WTYPE * , 119 THD_dataxes * new_daxes , int , WTYPE * ) ; 120 121 extern void B2SL_NAME( int nxx, int nyy, int nzz , 122 int fixed_axis , int fixed_index , 123 WTYPE * bold , WTYPE * bslice ) ; 124 /*---------------------------------------------------------------------*/ 125 #undef WTYPE 126 #undef LMAP_XNAME 127 #undef LMAP_YNAME 128 #undef LMAP_ZNAME 129 #undef B2SL_NAME 130 #define WTYPE complex 131 #define LMAP_XNAME TWO_TWO(AFNI_lmap_to_xslice_,WTYPE) 132 #define LMAP_YNAME TWO_TWO(AFNI_lmap_to_yslice_,WTYPE) 133 #define LMAP_ZNAME TWO_TWO(AFNI_lmap_to_zslice_,WTYPE) 134 #define B2SL_NAME TWO_TWO(AFNI_br2sl_,WTYPE) 135 136 extern void LMAP_XNAME( THD_linear_mapping * , int , 137 THD_dataxes * , WTYPE * , 138 THD_dataxes * new_daxes , int , WTYPE * ) ; 139 140 extern void LMAP_YNAME( THD_linear_mapping * , int , 141 THD_dataxes * , WTYPE * , 142 THD_dataxes * new_daxes , int , WTYPE * ) ; 143 144 extern void LMAP_ZNAME( THD_linear_mapping * , int , 145 THD_dataxes * , WTYPE * , 146 THD_dataxes * new_daxes , int , WTYPE * ) ; 147 148 extern void B2SL_NAME( int nxx, int nyy, int nzz , 149 int fixed_axis , int fixed_index , 150 WTYPE * bold , WTYPE * bslice ) ; 151 /*---------------------------------------------------------------------*/ 152 #undef WTYPE 153 #undef LMAP_XNAME 154 #undef LMAP_YNAME 155 #undef LMAP_ZNAME 156 #undef B2SL_NAME 157 #define WTYPE rgbyte 158 #define LMAP_XNAME TWO_TWO(AFNI_lmap_to_xslice_,WTYPE) 159 #define LMAP_YNAME TWO_TWO(AFNI_lmap_to_yslice_,WTYPE) 160 #define LMAP_ZNAME TWO_TWO(AFNI_lmap_to_zslice_,WTYPE) 161 #define B2SL_NAME TWO_TWO(AFNI_br2sl_,WTYPE) 162 163 extern void LMAP_XNAME( THD_linear_mapping * , int , 164 THD_dataxes * , WTYPE * , 165 THD_dataxes * new_daxes , int , WTYPE * ) ; 166 167 extern void LMAP_YNAME( THD_linear_mapping * , int , 168 THD_dataxes * , WTYPE * , 169 THD_dataxes * new_daxes , int , WTYPE * ) ; 170 171 extern void LMAP_ZNAME( THD_linear_mapping * , int , 172 THD_dataxes * , WTYPE * , 173 THD_dataxes * new_daxes , int , WTYPE * ) ; 174 175 extern void B2SL_NAME( int nxx, int nyy, int nzz , 176 int fixed_axis , int fixed_index , 177 WTYPE * bold , WTYPE * bslice ) ; 178 /*------------------------------------------------------------------*/ 179 #undef WTYPE 180 #undef LMAP_XNAME 181 #undef LMAP_YNAME 182 #undef LMAP_ZNAME 183 #undef B2SL_NAME 184 /********************************************************************/ 185 186 #ifdef __cplusplus 187 } 188 #endif 189 190 #endif /* _AFNI_WARP_HEADER_ */ 191