1 #ifndef SUMA_VOLUME_INCLUDED
2 #define SUMA_VOLUME_INCLUDED
3 
4 typedef enum {
5    SUMA_ERR_VARIANT = -1,
6    SUMA_AX_VARIANT,
7    SUMA_SA_VARIANT,
8    SUMA_CO_VARIANT,
9    SUMA_VR_VARIANT,
10    SUMA_N_VARIANTS } SUMA_VOL_REN_VARIANTS;
11 
12 
13 
14 SUMA_Boolean SUMA_Draw3DTextureNIDOnel(  NI_element *nel,
15                                     SUMA_SurfaceObject *SO,
16                                     SUMA_DO_CoordUnits default_coord_type,
17                                     float *default_txcol,
18                                     void *default_font, int default_node,
19                                     SUMA_SurfaceViewer *sv) ;
20 SUMA_Boolean SUMA_VE_LoadTexture(SUMA_VolumeElement **VE, int n);
21 SUMA_Boolean SUMA_VO_InitCutPlanes(SUMA_VolumeObject *VO);
22 SUMA_Boolean SUMA_CreateGL3DTexture(SUMA_VolumeObject *VO);
23 SUMA_Boolean SUMA_Load3DTextureNIDOnel (NI_element *nel,
24                                  SUMA_DO_CoordUnits coordtype);
25 SUMA_Boolean SUMA_VO_set_slices_XYZ(SUMA_VolumeObject *VOu, float *xyz);
26 void SUMA_RecordEnablingState(SUMA_EnablingRecord *SER, char *Label);
27 void SUMA_RestoreEnablingState(SUMA_EnablingRecord *SER);
28 void SUMA_ShowEnablingState(SUMA_EnablingRecord *SER, FILE *out, char *preamble);
29 void SUMA_DiffEnablingState(SUMA_EnablingRecord *SERnew,
30                             SUMA_EnablingRecord *SERref,  FILE *out,
31                             char *preamble);
32 int SUMA_CopyEnablingState(SUMA_EnablingRecord *SERnew,
33                            SUMA_EnablingRecord *SERref);
34 char *SUMA_DiffEnablingState_Info(SUMA_EnablingRecord *SERnew,
35                                   SUMA_EnablingRecord *SERref);
36 char *SUMA_EnablingState_Info(SUMA_EnablingRecord *SER);
37 SUMA_Boolean SUMA_dset_box_corners( SUMA_DSET *dset,
38                                     float * corners, int voxcen);
39 void SUMA_dset_extreme_corners( SUMA_DSET *dset,
40                                 float * mincorner, float *maxcorner,
41                                 int voxcen);
42 int SUMA_dset_gui_slice_from_tex_slice_d(SUMA_VolumeElement **VE, int ive,
43                      double *PlEq, int voxcen,
44                      char *variant,int *slider);
45 int SUMA_dset_gui_slice_from_tex_slice(SUMA_VolumeElement **VE, int ive,
46                      float *PlEq, int voxcen,
47                      char *variant,int *slider);
48 int SUMA_dset_tex_slice_corners_gui(SUMA_VolumeElement **VE, int ive,
49                                              char *variant,int slider,
50                           GLfloat *tcorners, GLfloat *corners, GLfloat *slc_cen,
51                           float *PlEq, int voxcen );
52 float* SUMA_XYZ_to_gui_slices(SUMA_VolumeElement **VE, int ive,
53                                     float *xyz, float *here);
54 SUMA_Boolean SUMA_GET_VR_Slice_Pack(SUMA_VolumeObject *VO,
55                                     SUMA_SurfaceViewer *sv);
56 SUMA_Boolean SUMA_Get_Slice_Pack(SUMA_VolumeObject *VO,
57                                  char *variant, SUMA_SurfaceViewer *sv);
58 void SUMA_dset_tex_slice_corners( int slc, SUMA_DSET *dset,
59                               GLfloat *tcorners, GLfloat *corners,
60                               GLfloat *slccen, int dim,int voxcen);
61 void SUMA_dset_tex_slice_corners_card( int slc, THD_3dim_dataset *dset,
62                               GLfloat *tcorners, GLfloat *corners, int dim,
63                               int voxcen);
64 int SUMA_VO_SelectedSlice(SUMA_VolumeObject *vo, char *variant, float *scorners);
65 SUMA_Boolean SUMA_SetTextureClipPlaneSurface(
66                         SUMA_VolumeObject *VO, int iplane );
67 SUMA_SurfaceObject **SUMA_TextureClipPlaneSurfaces(int *N_SOlist);
68 SUMA_VolumeObject *SUMA_VolumeObjectOfClipPlaneSurface(SUMA_SurfaceObject *SO);
69 SUMA_DSET *SUMA_adset_to_VE(SUMA_VolumeObject *VO, THD_3dim_dataset **dsetp);
70 GLubyte * SUMA_VE_to_tex3d(SUMA_VolumeElement **VE, int iVE, byte col);
71 int SUMA_MoveCutplane (SUMA_VolumeObject *VO, int iplane, float d);
72 SUMA_Boolean SUMA_SV_Mark_Textures_Status(SUMA_SurfaceViewer *sv, char *MarkAs,
73                                           SUMA_VolumeObject *VO, int j,
74                                           int callloader);
75 SUMA_Boolean SUMA_SV_isTextureLoaded(SUMA_SurfaceViewer *sv,
76                                      GLuint texName, int *N_tex);
77 int SUMA_Count_All_VO_Textures(void);
78 SUMA_Boolean SUMA_DrawVolumeDO(SUMA_VolumeObject *VO, SUMA_SurfaceViewer *sv);
79 SUMA_Boolean SUMA_Draw_CIFTI_DO(SUMA_CIFTI_DO *CO,
80                                SUMA_SurfaceViewer *sv);
81 SUMA_Boolean SUMA_DrawVolumeDO_slices(SUMA_VolumeObject *VO,
82                                     SUMA_SurfaceViewer *sv);
83 SUMA_Boolean SUMA_DrawVolumeDO_3D(SUMA_VolumeObject *VO,
84                                     SUMA_SurfaceViewer *sv);
85 SUMA_Boolean SUMA_DrawVolumeDO_exp(SUMA_VolumeObject *VO,
86                                    SUMA_SurfaceViewer *sv);
87 NI_element *SUMA_3DTextureNIDOnelofVO(SUMA_VolumeObject *VO) ;
88 SUMA_VolumeObject *SUMA_VOof3DTextureNIDOnel(NI_element *nel);
89 SUMA_Boolean SUMA_Colorize_dset(SUMA_DSET *dset,
90                                  byte *tex3ddata, byte colopt);
91 int iPlane2Dim(int iplane);
92 int SUMA_VO_SlicesAtCrosshair(SUMA_VolumeObject *VO);
93 void SUMA_SlcCodeToVariant(SUMA_VOL_REN_VARIANTS v, char *variant);
94 SUMA_VOL_REN_VARIANTS SUMA_SlcVariantToCode(char *variant);
95 
96 #endif
97