Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

SUMA_SphericalMapping.h

Go to the documentation of this file.
00001 #ifndef SUMA_SPHERICALMAPPING_INCLUDED
00002 #define SUMA_SPHERICALMAPPING_INCLUDED
00003 
00004 typedef struct {
00005   char format[100];
00006   char type[100];
00007   char fileToRead[SUMA_MAX_NAME_LENGTH];
00008   char mapRef[SUMA_MAX_NAME_LENGTH];
00009   char state[100];
00010   char dim[100];
00011 } SUMA_SpecSurfInfo;
00012 
00013 typedef struct {
00014   int* IDcode;
00015   int N_Node;
00016   int N_FaceSet;
00017   float *Weight;
00018   int *ClsNodes;
00019   int *FaceSetList;
00020 } SUMA_MorphInfo;
00021 
00022 typedef struct {
00023    int N_elem;
00024    int* nd_list;
00025    int* vxl_list;
00026    int* ijk_list;
00027    int* nvox_list;
00028    float* valArray;
00029 } SUMA_1dData;
00030 /*
00031 typedef struct {
00032    char fileNm[SUMA_MAX_DIR_LENGTH+SUMA_MAX_NAME_LENGTH];
00033 } SUMA_FileNm;
00034 */
00035 SUMA_MorphInfo * SUMA_Create_MorphInfo (void);
00036 SUMA_Boolean SUMA_Free_MorphInfo (SUMA_MorphInfo *MI);
00037 SUMA_1dData *SUMA_Create_1dData (void);
00038 SUMA_Boolean SUMA_Free_1dData (SUMA_1dData *data); 
00039 
00040 SUMA_SurfaceObject * SUMA_morphToStd (SUMA_SurfaceObject *SO, SUMA_MorphInfo *MI, SUMA_Boolean nodeChk);
00041 float *SUMA_readColor (int numNodes, char* colFileNm);
00042 void SUMA_writeColorFile (float *array, int numNode, int *index, char fileNm[]);   
00043 void SUMA_writeFSfile (SUMA_SurfaceObject *SO, char firstLine[], char fileNm[]);
00044 void SUMA_writeSpecFile (SUMA_SpecSurfInfo *surfaces, int numSurf, char program[], char group[], char specFileNm[]);
00045 void SUMA_read1D (char* fileNm, int* i_colm, int* i_locInfo, SUMA_1dData* data);
00046 void SUMA_write1D ( int *num, float *vals, int *index, char firstline[], char outFileNm[]);
00047 float * SUMA_createColGradient( float *col, int numSeg, SUMA_Boolean allGvn );
00048 float * SUMA_assignColors( float *vals, float *cols, int numVal, int numCol, float *colRng, float *valDiv );
00049 
00050 SUMA_Boolean SUMA_binSearch( float *nodeList, float target, int *seg);
00051 float intersection_map(float a, float b, float c, float d, float val);
00052 float * SUMA_detWeight (float node0[], float node1[], float node2[], float ptHit[]);
00053 SUMA_Boolean SUMA_inNodeNeighb( SUMA_SurfaceObject *surf, float *nodeList, int *node, float *P0, float *P1);
00054 SUMA_SurfaceObject * SUMA_CreateIcosahedron (float r, int recDepth, float ctr[3], char rec[], int ToSphere);
00055 SUMA_MorphInfo * SUMA_MapSurface (SUMA_SurfaceObject *surf1, SUMA_SurfaceObject *surf2);
00056 void SUMA_Search_Min_Dist( float* pt, float* nodeList, int* seg, float restr, float *dist, int *i_dist );
00057 void SUMA_binTesselate(float *nodeList, int *triList, int *nCtr, int *tCtr, int recDepth, int depth, int n1, int n2, int n3);
00058 void SUMA_tesselate( float *nodeList, int *triList, int *nCtr, int *tCtr, int N_Div, int n0, int n1, int n2);
00059 int * SUMA_divEdge( float *nodeList, int *nCtr, int node1, int node2, int N_Div);
00060 void SUMA_triangulateRow( float *nodeList, int *triList, int *nCtr, int *tCtr, int N_Div, int *currFloor, int node1, int node2);
00061 void SUMA_addNode(float *nodeList, int *ctr, float x, float y, float z);
00062 void SUMA_addTri(int *triList, int *ctr, int n1, int n2, int n3);
00063 
00064 SUMA_SO_map *SUMA_Create_SO_map (void);
00065 SUMA_Boolean SUMA_Free_SO_map (SUMA_SO_map *SOM); 
00066 SUMA_Boolean SUMA_Show_SO_map  (SUMA_SO_map *SOM, FILE *out); 
00067 SUMA_Boolean SUMA_SphereQuality(SUMA_SurfaceObject *SO, char *Froot, char *shist);
00068 
00069 #define SUMA_ICOSAHEDRON_DIMENSIONS(r, a, b, lgth){ /* r is the radius parameter passed to SUMA_CreateIcosahedron or the -rad option in CreateIcosahedron*/ \
00070    a = r*(1+sqrt(5)) / (sqrt(10+2*sqrt(5))); \
00071    b = 2*r / (sqrt(10+2*sqrt(5)));  \
00072    lgth = sqrt( pow(0-b,2) + pow(b-a,2) + pow(-a-0,2) );  /*determine length of edge by dist node0->node1*/ \
00073 }
00074 
00075 #endif
 

Powered by Plone

This site conforms to the following standards: