1 #ifndef SUMA_SVMANIP_INCLUDED 2 #define SUMA_SVMANIP_INCLUDED 3 4 #define UPDATE_NO_VIEWING_PARAMS_MASK (1<<1) 5 #define UPDATE_ROT_MASK (1<<2) 6 #define UPDATE_VIEW_POINT_MASK (1<<3) 7 #define UPDATE_EYE_AXIS_STD_MASK (1<<4) 8 #define UPDATE_STANDARD_VIEW_MASK (1<<5) 9 #define UPDATE_ALL_VIEWING_PARAMS_MASK ( UPDATE_ROT_MASK | UPDATE_VIEW_POINT_MASK | UPDATE_EYE_AXIS_STD_MASK | UPDATE_STANDARD_VIEW_MASK ) 10 11 #define ROI_MODE(sv) ( SUMAg_CF->ROI_mode ) 12 #define MASK_MANIP_MODE(sv) ( sv->MouseMode == SUMA_MASK_MANIP_MMODE ) 13 typedef enum { 14 SUMA_DEF_MMODE=0, 15 SUMA_ROI_MMODE, 16 SUMA_MASK_MANIP_MMODE, 17 18 SUMA_N_MMODES 19 } SUMA_MOUSE_MODES; 20 21 /*! functions defined in SUMA_SVmanip.c */ 22 SUMA_Boolean SUMA_LockEnum_LockType (SUMA_LINK_TYPES i, char *Name); 23 SUMA_Boolean SUMA_DiffGeomViewStruct(SUMA_GEOMVIEW_STRUCT gvs1, 24 SUMA_GEOMVIEW_STRUCT gvs2, 25 int level); 26 SUMA_Boolean SUMA_CopyGeomViewStruct(SUMA_GEOMVIEW_STRUCT *gvs1, 27 SUMA_GEOMVIEW_STRUCT *gvs2); 28 SUMA_SurfaceViewer *SUMA_Alloc_SurfaceViewer_Struct (int N); 29 SUMA_PICK_RESULT *SUMA_Get_From_PickResult_List(SUMA_SurfaceViewer *sv, 30 SUMA_ALL_DO *ado, char *variant); 31 SUMA_Boolean SUMA_Add_To_PickResult_List(SUMA_SurfaceViewer *sv, 32 SUMA_ALL_DO *ado, char *variant, SUMA_PICK_RESULT **PR); 33 void SUMA_Show_PickList(DList *SelAdo, int detail, char *headstring, FILE *out); 34 char *SUMA_PickList_Info(DList *SelAdo, int detail); 35 SUMA_Boolean SUMA_Process_Selected_ADO(SUMA_SurfaceViewer *sv, int deepfirst); 36 void SUMA_Free_SelectedDO_Datum(void *data); 37 void SUMA_Show_SurfaceViewer_Struct (SUMA_SurfaceViewer *SV, FILE *Out, 38 int detail); 39 SUMA_Boolean SUMA_isViewerStateAnatomical(SUMA_SurfaceViewer *sv); 40 char *SUMA_SurfaceViewer_StructInfo (SUMA_SurfaceViewer *SV, int detail); 41 SUMA_Boolean SUMA_SetViewerLightsForSO(SUMA_SurfaceViewer *cSV, 42 SUMA_SurfaceObject *SO); 43 44 SUMA_Boolean SUMA_UpdateRotaCenter (SUMA_SurfaceViewer *SV, 45 SUMA_DO *dov, int N_dov); 46 SUMA_Boolean SUMA_Apply_VisX_Chain(float *xyz, int N, DList *dl, int inv); 47 DListElmt *SUMA_Fetch_VisX_Element(char *label, DList *dl); 48 SUMA_VIS_XFORM_DATUM *SUMA_Fetch_VisX_Datum (char *label, DList *dl, 49 SUMA_VISX_ADD_POSITIONS add, char *ref_label); 50 SUMA_Boolean SUMA_UpdateViewPoint (SUMA_SurfaceViewer *SV, 51 SUMA_DO *dov, int N_dov, byte keepzoom); 52 SUMA_Boolean SUMA_UpdateViewPoint_RegisteredADO(SUMA_ALL_DO *ado, byte keepzoom); 53 SUMA_Boolean SUMA_SetGLHome(SUMA_SurfaceViewer *sv); 54 SUMA_Boolean SUMA_Free_SurfaceViewer_Struct (SUMA_SurfaceViewer *SV); 55 SUMA_Boolean SUMA_Free_SurfaceViewer_Struct_Vect (SUMA_SurfaceViewer *SVv, 56 int N); 57 SUMA_Boolean SUMA_Free_ViewState (SUMA_ViewState *vs); 58 SUMA_ViewState *SUMA_Alloc_ViewState (int N); 59 SUMA_Boolean SUMA_New_ViewState (SUMA_SurfaceViewer *csv); 60 SUMA_Boolean SUMA_Free_ViewState_Hist (SUMA_ViewState_Hist *vsh); 61 SUMA_ViewState_Hist *SUMA_Alloc_ViewState_Hist (void); 62 SUMA_Boolean SUMA_Show_ViewState(SUMA_ViewState *VS, FILE *Out, int detail); 63 SUMA_Boolean SUMA_ViewState_MembsRefresh(SUMA_ViewState *VS); 64 SUMA_Boolean SUMA_AllViewState_MembsRefresh(void); 65 int *SUMA_ViewState_Membs(SUMA_ViewState *VS, SUMA_DO_Types *tt, 66 int *uN_MembSOs); 67 char *SUMA_ViewStateInfo(SUMA_ViewState *VS, int detail); 68 int SUMA_SV_GetShowSelectedDatum(SUMA_SurfaceViewer *sv); 69 SUMA_Boolean SUMA_SV_SetShowSelectedDatum(SUMA_SurfaceViewer *sv, 70 int act, int callback); 71 int SUMA_SV_GetShowSelectedFaceSet(SUMA_SurfaceViewer *sv); 72 SUMA_Boolean SUMA_SV_SetShowSelectedFaceSet(SUMA_SurfaceViewer *sv, 73 int act, int callback); 74 SUMA_Boolean SUMA_AdoptSurfGroup(SUMA_SurfaceViewer *csv, 75 SUMA_SurfaceObject *SO); 76 SUMA_Boolean SUMA_RegisterSpecSO (SUMA_SurfSpecFile *Spec, 77 SUMA_SurfaceViewer *csv, 78 SUMA_DO* dov, int N_dov, int viewopt); 79 int SUMA_WhichState (char *state, SUMA_SurfaceViewer *csv, char *ForceGroup); 80 int SUMA_Which_iDO_State(int dov_id, SUMA_SurfaceViewer *cSV, int addifmissing); 81 SUMA_Boolean SUMA_Free_CommonFields (SUMA_CommonFields *cf); 82 SUMA_CommonFields * SUMA_Create_CommonFields (void); 83 void SUMA_Show_CommonFields (SUMA_CommonFields *cf, FILE *out); 84 char * SUMA_CommonFieldsInfo (SUMA_CommonFields *cf, int detail); 85 SUMA_STANDARD_VIEWS SUMA_BestStandardView (SUMA_SurfaceViewer *sv, SUMA_DO *dov, int N_dov); 86 SUMA_Boolean SUMA_SetupSVforDOs (SUMA_SurfSpecFile *Spec, SUMA_DO *DOv, 87 int N_DOv, SUMA_SurfaceViewer *cSV, int viewopt); 88 SUMA_Boolean SUMA_ADO_FillColorList_Params(SUMA_ALL_DO *ADO, 89 int *N_points, char **idcode); 90 SUMA_Boolean SUMA_FillColorList (SUMA_SurfaceViewer *sv, SUMA_ALL_DO *SO); 91 SUMA_Boolean SUMA_Free_ColorList (SUMA_COLORLIST_STRUCT *cl); 92 SUMA_Boolean SUMA_EmptyColorList (SUMA_SurfaceViewer *sv, char *DO_idstr); 93 GLfloat * SUMA_GetColorList (SUMA_SurfaceViewer *sv, char *DO_idstr); 94 GLfloat * SUMA_GetColorListPtr (SUMA_COLORLIST_STRUCT *cl); 95 SUMA_Boolean SUMA_SetRemixFlag (char *SO_idcode_str, SUMA_SurfaceViewer *SVv, 96 int N_SVv); 97 SUMA_COLORLIST_STRUCT * SUMA_GetColorListStruct (SUMA_SurfaceViewer *sv, 98 char *DO_idstr); 99 SUMA_Boolean SUMA_BlankColorListStruct(SUMA_COLORLIST_STRUCT *cl); 100 SUMA_Boolean SUMA_SetShownLocalRemixFlag (SUMA_SurfaceViewer *sv); 101 SUMA_Boolean SUMA_SetLocalRemixFlag(char *SO_idcode_str, SUMA_SurfaceViewer *sv); 102 SUMA_Boolean SUMA_SetAllRemixFlag (SUMA_SurfaceViewer *SVv, int N_SVv); 103 int SUMA_WhichSVg(SUMA_SurfaceViewer *sv); 104 int SUMA_WhichSV (SUMA_SurfaceViewer *sv, SUMA_SurfaceViewer *SVv, int N_SVv); 105 char SUMA_WhichSVc(SUMA_SurfaceViewer *sv, SUMA_SurfaceViewer *SVv, int N_SVv); 106 SUMA_X_SumaCont *SUMA_CreateSumaContStruct (void); 107 void *SUMA_FreeSumaContStruct (SUMA_X_SumaCont *SumaCont); 108 SUMA_X_ViewCont *SUMA_CreateViewContStruct (void); 109 void *SUMA_FreeViewContStruct (SUMA_X_ViewCont *ViewCont); 110 SUMA_X_SurfCont *SUMA_CreateSurfContStruct (char *idcode_str, SUMA_DO_Types dd); 111 void *SUMA_FreeSurfContStruct (SUMA_X_SurfCont *SurfCont); 112 SUMA_X_SurfCont *SUMA_GlobalMaskContStruct(char *idcode); 113 SUMA_MENU_WIDGET *SUMA_Free_Menu_Widget(SUMA_MENU_WIDGET *smw); 114 SUMA_MENU_WIDGET *SUMA_Alloc_Menu_Widget(int nw); 115 SUMA_rb_group *SUMA_CreateLock_rb (int N_rb_group, int N_but); 116 void * SUMA_FreeLock_rb (SUMA_rb_group *Lock_rb); 117 SUMA_X_DrawROI *SUMA_CreateDrawROIStruct (void); 118 void *SUMA_FreeDrawROIStruct (SUMA_X_DrawROI *DrawROI); 119 void SUMA_UpdateViewerTitle(SUMA_SurfaceViewer *sv); 120 void SUMA_UpdateAllViewerCursor(void); 121 void SUMA_UpdateViewerCursor(SUMA_SurfaceViewer *sv); 122 float SUMA_DimSclFac(char *units, char *specie); 123 int SUMA_WhichViewerInMomentum(SUMA_SurfaceViewer *SVv, 124 int N_SV, SUMA_SurfaceViewer *sv); 125 int SUMA_WhichGroup (SUMA_CommonFields *cf, char *nm); 126 SUMA_Boolean SUMA_RegisterGroup (SUMA_CommonFields *cf, char *gname); 127 SUMA_Boolean SUMA_RegisterSpecGroup (SUMA_CommonFields *cf, 128 SUMA_SurfSpecFile *spec); 129 SUMA_ASSEMBLE_LIST_STRUCT * SUMA_AssembleGroupList (SUMA_SurfaceViewer *sv); 130 SUMA_Boolean SUMA_SwitchGroups (SUMA_SurfaceViewer *sv, char *group); 131 SUMA_Boolean SUMA_AdoptGroup(SUMA_SurfaceViewer *csv, char *group); 132 const char * SUMA_Clip_Type_to_Clip_Name (SUMA_CLIP_PLANE_TYPES tp); 133 char * SUMA_Show_Clip_Planes_Info (SUMA_CommonFields *cf); 134 void SUMA_Show_Clip_Planes (SUMA_CommonFields *cf, FILE *out); 135 float SUMA_sv_auto_fov(SUMA_SurfaceViewer *sv); 136 SUMA_SurfaceViewer *SUMA_OneViewerWithADORegistered(SUMA_ALL_DO *ADO); 137 SUMA_SurfaceViewer *SUMA_OneViewerWithADOVisible(SUMA_ALL_DO *ADO); 138 SUMA_SurfaceViewer *SUMA_OneViewerWithADOinFocus(SUMA_ALL_DO *ADO); 139 SUMA_SurfaceViewer *SUMA_OneViewerWithSOinFocus( 140 SUMA_SurfaceObject *curSO); 141 SUMA_SurfaceViewer *SUMA_OneViewerWithSOVisible( 142 SUMA_SurfaceObject *curSO); 143 SUMA_SurfaceViewer *SUMA_OneViewerWithSORegistered( 144 SUMA_SurfaceObject *curSO); 145 int SUMA_UpdateCrossHairNodeLabelFieldForDO(SUMA_ALL_DO *ado); 146 SUMA_SurfaceViewer *SUMA_BestViewerForADO(SUMA_ALL_DO *ado); 147 SUMA_PARSED_NAME *SUMA_SetAutoRecord(char *pref); 148 SUMA_SurfaceObject *SUMA_SV_Focus_SO(SUMA_SurfaceViewer *sv); 149 SUMA_SurfaceObject *SUMA_SV_Focus_any_SO(SUMA_SurfaceViewer *sv, int *dov_id); 150 SUMA_ALL_DO *SUMA_SV_Focus_ADO(SUMA_SurfaceViewer *sv); 151 SUMA_ALL_DO *SUMA_findanyFocusable_ADO(int *dov_id); 152 SUMA_ALL_DO *SUMA_SV_Focus_any_ADO(SUMA_SurfaceViewer *sv, int *dov_id); 153 SUMA_ALL_DO *SUMA_findany_ADO_WithSurfContWidget(int *dov_id, 154 SUMA_DO_Types thisdotp); 155 SUMA_ALL_DO *SUMA_SV_any_ADO_WithSurfContWidget(SUMA_SurfaceViewer *sv, 156 int *dov_id, SUMA_DO_Types thisdotp); 157 SUMA_Boolean SUMA_SurfCont_SetcurDOp(SUMA_X_SurfCont *SurfCont, 158 SUMA_ALL_DO *ado); 159 SUMA_ALL_DO *SUMA_SurfCont_GetcurDOp(SUMA_X_SurfCont *SurfCont); 160 SUMA_Boolean SUMA_SetMouseMode(SUMA_SurfaceViewer *sv, 161 SUMA_MOUSE_MODES mmode, void *val); 162 char *SUMA_ADO_ContName(SUMA_ALL_DO *ado); 163 int SUMA_SetObjectDisplayOrder(char *ord, int *otseq); 164 int SUMA_VerifyRenderOrder(char *ord, void *unused); 165 166 167 #endif 168