Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
SUMA_CreateDO.h
Go to the documentation of this file.00001 #ifndef SUMA_CREATEDO_INCLUDED
00002 #define SUMA_CREATEDO_INCLUDED
00003 typedef struct {
00004 char *idcode_str;
00005 char *LocalDomainParentID;
00006 SUMA_SO_File_Format FileFormat;
00007 SUMA_SO_File_Type FileType;
00008 byte DoNormals;
00009 byte DoMetrics;
00010 byte DoCenter;
00011 } SUMA_NEW_SO_OPT;
00012
00013 SUMA_NEW_SO_OPT *SUMA_NewNewSOOpt(void);
00014 SUMA_NEW_SO_OPT *SUMA_FreeNewSOOpt(SUMA_NEW_SO_OPT *nsopt);
00015 SUMA_SurfaceObject *SUMA_NewSO(float **NodeList, int N_Node, int **FaceSetList, int N_FaceSet, SUMA_NEW_SO_OPT *nsooptu);
00016 SUMA_SurfaceObject *SUMA_CreateChildSO(SUMA_SurfaceObject * SO,
00017 float *NodeList, int N_Node,
00018 int *FaceSetList, int N_FaceSet,
00019 SUMA_Boolean replace);
00020 SUMA_Axis* SUMA_Alloc_Axis (const char *Name);
00021 void SUMA_Free_Axis (SUMA_Axis *Ax);
00022 SUMA_Boolean SUMA_DrawAxis (SUMA_Axis* Ax, SUMA_SurfaceViewer *csv);
00023 void SUMA_MeshAxisStandard (SUMA_Axis* Ax, SUMA_SurfaceObject *cso);
00024 void SUMA_EyeAxisStandard (SUMA_Axis* Ax, SUMA_SurfaceViewer *csv);
00025 void SUMA_Free_CrossHair (SUMA_CrossHair *Ch);
00026 SUMA_CrossHair* SUMA_Alloc_CrossHair (void);
00027 SUMA_Boolean SUMA_DrawCrossHair (SUMA_CrossHair* Ch);
00028 void SUMA_Free_SphereMarker (SUMA_SphereMarker *SM);
00029 SUMA_SphereMarker* SUMA_Alloc_SphereMarker (void);
00030 SUMA_Boolean SUMA_DrawFaceSetMarker (SUMA_FaceSetMarker* FM);
00031 SUMA_FaceSetMarker* SUMA_Alloc_FaceSetMarker (void);
00032 void SUMA_Free_FaceSetMarker (SUMA_FaceSetMarker* FM);
00033 void SUMA_DrawMesh(SUMA_SurfaceObject *SurfObj, SUMA_SurfaceViewer *csv);
00034 SUMA_Boolean SUMA_Free_Surface_Object (SUMA_SurfaceObject *SO);
00035 void SUMA_Print_Surface_Object(SUMA_SurfaceObject *SO, FILE *Out);
00036 char *SUMA_SurfaceObject_Info (SUMA_SurfaceObject *SO, DList *DsetList);
00037 SUMA_SurfaceObject *SUMA_Alloc_SurfObject_Struct(int N);
00038 SUMA_DRAWN_ROI * SUMA_AllocateDrawnROI (char *Parent_idcode_str, SUMA_ROI_DRAWING_STATUS DrawStatus,
00039 SUMA_ROI_DRAWING_TYPE Type, char * label, int ilabel);
00040 SUMA_ROI * SUMA_AllocateROI (char *Parent_idcode_str, SUMA_ROI_TYPE Type, char * label, int N_ElInd, int *ElInd);
00041 SUMA_Boolean SUMA_freeDrawnROI (SUMA_DRAWN_ROI *D_ROI);
00042 SUMA_Boolean SUMA_freeROI (SUMA_ROI *ROI);
00043 SUMA_Boolean SUMA_Draw_SO_ROI (SUMA_SurfaceObject *SO, SUMA_DO* dov, int N_dov);
00044 SUMA_SegmentDO * SUMA_Alloc_SegmentDO (int N_n, char *Label);
00045 void SUMA_free_SegmentDO (SUMA_SegmentDO * SDO);
00046 SUMA_Boolean SUMA_DrawSegmentDO (SUMA_SegmentDO *SDO);
00047 SUMA_Boolean SUMA_isROIdequal (SUMA_ROI_DATUM *ROId1, SUMA_ROI_DATUM *ROId2);
00048 void SUMA_FreeROIDatum (void * data);
00049 SUMA_ROI_DATUM * SUMA_AllocROIDatum (void);
00050 SUMA_Boolean SUMA_PrependToROIdatum (SUMA_ROI_DATUM *ROId1, SUMA_ROI_DATUM *ROId2);
00051 void SUMA_ShowDrawnROI (SUMA_DRAWN_ROI *D_ROI, FILE *out, SUMA_Boolean ShortVersion);
00052 void SUMA_ShowDrawnROIDatum (SUMA_ROI_DATUM *ROId, FILE *out, SUMA_Boolean ShortVersion);
00053 SUMA_Boolean SUMA_AppendToROIdatum (SUMA_ROI_DATUM *ROId1, SUMA_ROI_DATUM *ROId2);
00054 SUMA_ROI_DATUM * SUMA_FillToMask(SUMA_SurfaceObject *SO, int *ROI_Mask, int FirstSurfNode);
00055 void SUMA_FillToMask_Engine (SUMA_NODE_FIRST_NEIGHB *FN, int *Visited, int *ROI_mask, int seed, int *N_Visited, int N_Node);
00056 void SUMA_FillToMask_Engine_old (SUMA_NODE_FIRST_NEIGHB *FN, int *Visited, int *ROI_mask, int seed, int *N_Visited);
00057 SUMA_DRAWN_ROI **SUMA_Find_ROIrelatedtoSO (SUMA_SurfaceObject *SO, SUMA_DO* dov, int N_do, int *N_ROI);
00058 SUMA_DRAWN_ROI **SUMA_Find_ROIonSO (SUMA_SurfaceObject *SO, SUMA_DO* dov, int N_do, int *N_ROI);
00059 SUMA_Boolean SUMA_Paint_SO_ROIplanes (SUMA_SurfaceObject *SO,
00060 SUMA_DO* dov, int N_do,
00061 SUMA_Boolean *MakeNel,
00062 NI_element ***nelvp, int *N_nelv);
00063 SUMA_Boolean SUMA_Paint_SO_ROIplanes_w (SUMA_SurfaceObject *SO,
00064 SUMA_DO* dov, int N_do);
00065 void SUMA_Free_ROI_PlaneData (void *da);
00066 DList * SUMA_Addto_ROIplane_List (DList *ROIplaneListIn, SUMA_DO *dov, int idov);
00067 int * SUMA_NodesInROI (SUMA_DRAWN_ROI *D_ROI, int *N_Nodes, SUMA_Boolean Unique);
00068 SUMA_DRAWN_ROI * SUMA_1DROI_to_DrawnROI ( int *Node, int N_Node, int Value, char *Parent_idcode_str,
00069 char *Label, char *ColPlaneName,
00070 float *FillColor, float *EdgeColor, int EdgeThickness ,
00071 SUMA_DO *dov, int N_dov, SUMA_Boolean ForDisplay);
00072 SUMA_SegmentDO * SUMA_ReadSegDO (char *s);
00073 SUMA_SurfaceObject *SUMA_Cmap_To_SO (SUMA_COLOR_MAP *Cmap, float orig[3], float topright[3], int verb);
00074 SUMA_Boolean SUMA_DrawLineAxis ( SUMA_AxisSegmentInfo *ASIp, SUMA_Axis *Ax, SUMA_Boolean AddText);
00075 DList *SUMA_SortedAxisSegmentList ( SUMA_SurfaceViewer *sv, SUMA_Axis *Ax,
00076 SUMA_SORT_BOX_AXIS_OPTION opt);
00077 void SUMA_WorldAxisStandard (SUMA_Axis* Ax, SUMA_SurfaceViewer *sv);
00078 SUMA_Boolean SUMA_AxisText(SUMA_AxisSegmentInfo *ASIp, double *Ps);
00079 void SUMA_ReportDrawnROIDatumLength(SUMA_SurfaceObject *SO, SUMA_ROI_DATUM *ROId, FILE *out, SUMA_WIDGET_INDEX_DRAWROI_WHATDIST option);
00080
00081
00082
00083
00084
00085
00086 #define SUMA_ROI_CRUDE_COUNT_NODES(m_D_ROI, m_N_max) \
00087 { \
00088 DListElmt *m_NextElm = NULL; \
00089 SUMA_ROI_DATUM *m_ROId = NULL; \
00090 int m_LastOfPreSeg = -1; \
00091 \
00092 m_N_max = 0;\
00093 m_NextElm = NULL;\
00094 m_LastOfPreSeg = -1; \
00095 do { \
00096 if (!m_NextElm) m_NextElm = dlist_head(m_D_ROI->ROIstrokelist); \
00097 else m_NextElm = dlist_next(m_NextElm); \
00098 m_ROId = (SUMA_ROI_DATUM *)m_NextElm->data; \
00099 if (m_ROId->nPath[0] == m_LastOfPreSeg) { \
00100 m_N_max += m_ROId->N_n - 1; \
00101 } else { \
00102 m_N_max += m_ROId->N_n; \
00103 } \
00104 m_LastOfPreSeg = m_ROId->nPath[m_ROId->N_n - 1]; \
00105 }while (m_NextElm != dlist_tail(m_D_ROI->ROIstrokelist)); \
00106 \
00107 }
00108
00109 #endif
00110