Doxygen Source Code Documentation
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