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_SurfaceToSurface.h

Go to the documentation of this file.
00001 #ifndef SUMA_SURFACE_TO_SURFACE_INCLUDED
00002 #define SUMA_SURFACE_TO_SURFACE_INCLUDED
00003 
00004 typedef struct {
00005   char* M1_IDcode;  
00006   char* M2_IDcode;
00007   
00008   int M1Nn; /*!< number of node considered on M1 */
00009   int *M1n; /*!< vector of node indices on M1 
00010                M1n[j] is the index of node j (nj) on mesh M1
00011                j goes from 0 to M1Nn*/
00012   int *M2t_M1n; /*!< (M1_N_NodeIndex x 1) index of triangle in M2 hosting node in M1 
00013                   M2t_M1n[j] is the index of the triangle on M2 that hosts node nj on M1
00014                   Hosting means that node nj, projected along*/ 
00015   float *M2pb_M1n; /*!< Barycentric coordinates (u, v) of the projection of node nj of M1 on triangle M2t_M1n[j] 
00016                         M2pb_M1n[2*j+0] = uj; M2pb_M1n[2*j+1] = vj; where uj and vj are the barycentric coordinates
00017                         of the projection of node j*/
00018   float *M2p_M1n; /*!<  coordinates (x y z) of the projection of node nj of M1 on triangle M2t_M1n[j] 
00019                         M2pb_M1n[3*j+0] =x, M2pb_M1n[3*j+1] = y;  M2pb_M1n[3*j+2] = z; */
00020   double *PD; /*!< signed projection distance from node nj on M1 to closest triangle on M2 */
00021   int *M2Nne_M1n; /*!< (M1_N_NodeIndex x 1) number of nodes on M2 considered to neighbor nodes in M1 
00022                        M2Nne_M1n[j] is the number of nodes on M2 that neighbor node nj on M1 */
00023   int **M2ne_M1n; /*!< (M1_N_NodeIndex x 1) vectors of node indices 
00024                         M2ne_M1n[j][k] is the kth node neighbor on M2 of node nj on M1 
00025                         The 1st node M2ne_M1n[j][0] is the closest neigbor and the other two, if specified
00026                         form the triangle on M2 hosting that node.
00027                         k goes from 0 to M2Nne_M1n[j]*/
00028   double **M2we_M1n; /*!< (M1_N_NodeIndex x 1) vectors of weights.
00029                         M2we_M1n[j][k] is the weight of the kth neighbor on M2 of node nj on M1.
00030                         */
00031 } SUMA_M2M_STRUCT;
00032 
00033 char *SUMA_M2M_node_Info (SUMA_M2M_STRUCT *M2M, int node);
00034 SUMA_M2M_STRUCT *SUMA_FreeM2M(SUMA_M2M_STRUCT *M2M);
00035 SUMA_M2M_STRUCT *SUMA_NewM2M(char *SO1_id, int N_SO1_nodes, char *SO2_id);
00036 SUMA_M2M_STRUCT *SUMA_GetM2M_NN( SUMA_SurfaceObject *SO1, SUMA_SurfaceObject *SO2,
00037                                  int *oNL_1, int N_NL_1, float *PD_1, float dlim,
00038                                  int NodeDbg);
00039 float *SUMA_M2M_interpolate(SUMA_M2M_STRUCT *M2M, float *far_data, int ncol, int nrow,  SUMA_INDEXING_ORDER d_order, int useClosest );
00040 
00041 
00042 #endif
 

Powered by Plone

This site conforms to the following standards: