Changeset 13225
- Timestamp:
- 09/04/12 08:23:27 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/modules/TriMeshProcessRifts/TriMeshProcessRifts.cpp
r13038 r13225 5 5 #include "./TriMeshProcessRifts.h" 6 6 7 void mexFunction( int nlhs, mxArray* plhs[], 8 int nrhs, const mxArray* prhs[] ) { 9 7 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[] ){ 10 8 11 9 /*Matlab arrays: */ 12 mxArray * pmxa_array=NULL;13 mxArray * pmxa_array2=NULL;14 mxArray * pmxa_array3=NULL;10 mxArray *pmxa_array = NULL; 11 mxArray *pmxa_array2 = NULL; 12 mxArray *pmxa_array3 = NULL; 15 13 int i,j,k,counter; 16 14 17 15 /* returned quantities: */ 18 16 int out_numrifts; 19 int * out_riftsnumsegments=NULL;20 double ** out_riftssegments=NULL;21 int * out_riftsnumpairs=NULL;22 double ** out_riftspairs=NULL;23 double * out_riftstips=NULL;24 double ** out_riftspenaltypairs=NULL;25 int * out_riftsnumpenaltypairs=NULL;17 int *out_riftsnumsegments = NULL; 18 double **out_riftssegments = NULL; 19 int *out_riftsnumpairs = NULL; 20 double **out_riftspairs = NULL; 21 double *out_riftstips = NULL; 22 double **out_riftspenaltypairs = NULL; 23 int *out_riftsnumpenaltypairs = NULL; 26 24 27 25 /*empty rifts structure: */ … … 34 32 35 33 /* input: */ 36 double * tindex_in=NULL;37 double * index_in=NULL;34 double *tindex_in = NULL; 35 double *index_in = NULL; 38 36 int nel; 39 double * x_inm=NULL; //matlab vector40 double * x_in=NULL; //copy of matlab vector37 double *x_inm = NULL; //matlab vector 38 double *x_in = NULL; //copy of matlab vector 41 39 int nods; 42 double * y_inm=NULL;//matlab vector43 double * y_in=NULL;//copy of matlab vector44 double * tsegments_in=NULL;45 double * segments_in=NULL;46 double * tsegmentmarkers_in=NULL;47 double * segmentmarkers_in=NULL;40 double *y_inm = NULL; //matlab vector 41 double *y_in = NULL; //copy of matlab vector 42 double *tsegments_in = NULL; 43 double *segments_in = NULL; 44 double *tsegmentmarkers_in = NULL; 45 double *segmentmarkers_in = NULL; 48 46 49 47 /* state: */ 50 double* state=NULL; 51 48 double *state = NULL; 52 49 int num_seg; 53 50 … … 57 54 58 55 /* verify correct usage: */ 59 if (nlhs==0 && nrhs==0) 56 if (nlhs==0 && nrhs==0){ 60 57 /* special case: */ 61 58 TriMeshProcessRiftsUsage(); … … 169 166 /*Output : */ 170 167 WriteData(&plhs[0],index_in,nel,3); 171 //pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);172 //mxSetM(pmxa_array,3);173 //mxSetN(pmxa_array,nel);174 //mxSetPr(pmxa_array,index_in);175 //mexCallMATLAB( 1, &plhs[0], 1, &pmxa_array, "transpose");176 177 168 WriteData(&plhs[1],x_in,nods,1); 178 //pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);179 //mxSetM(pmxa_array,1);180 //mxSetN(pmxa_array,nods);181 //mxSetPr(pmxa_array,x_in);182 //mexCallMATLAB( 1, &plhs[1], 1, &pmxa_array, "transpose");183 184 169 WriteData(&plhs[2],y_in,nods,1); 185 //pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);186 //mxSetM(pmxa_array,1);187 //mxSetN(pmxa_array,nods);188 //mxSetPr(pmxa_array,y_in);189 //mexCallMATLAB( 1, &plhs[2], 1, &pmxa_array, "transpose");190 191 170 WriteData(&plhs[3],segments_in,num_seg,3); 192 //pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);193 //mxSetM(pmxa_array,3);194 //mxSetN(pmxa_array,num_seg);195 //mxSetPr(pmxa_array,segments_in);196 //mexCallMATLAB( 1, &plhs[3], 1, &pmxa_array, "transpose");197 198 171 WriteData(&plhs[4],segmentmarkers_in,num_seg,1); 199 //pmxa_array= mxCreateDoubleMatrix(0,0,mxREAL);200 //mxSetM(pmxa_array,1);201 //mxSetN(pmxa_array,num_seg);202 //mxSetPr(pmxa_array,segmentmarkers_in);203 //mexCallMATLAB( 1, &plhs[4], 1, &pmxa_array, "transpose");204 172 205 173 if(riftflag){ 206 174 /*Create a structure rifts where if i is a rift number, we have the following fields rifts(i).segments and rifts(i).numsegs: */ 207 208 175 fnames[0] = "numsegs"; 209 176 fnames[1] = "segments"; … … 225 192 /*Segments: */ 226 193 WriteData(&pmxa_array3,out_riftssegments[i],out_riftsnumsegments[i],3); 227 //pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);228 //mxSetM(pmxa_array2,3);229 //mxSetN(pmxa_array2,out_riftsnumsegments[i]);230 //mxSetPr(pmxa_array2,out_riftssegments[i]);231 //mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");232 194 mxSetField(pmxa_array,i,"segments",pmxa_array3); 233 195 mxSetField(pmxa_array,i,"numsegs",mxCreateDoubleScalar((double)out_riftsnumsegments[i])); … … 235 197 /*Element pairs: */ 236 198 WriteData(&pmxa_array3,out_riftspairs[i],out_riftsnumpairs[i],2); 237 //pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);238 //mxSetM(pmxa_array2,2);239 //mxSetN(pmxa_array2,out_riftsnumpairs[i]);240 //mxSetPr(pmxa_array2,out_riftspairs[i]);241 //mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");242 199 mxSetField(pmxa_array,i,"pairs",pmxa_array3); 243 200 … … 254 211 /*Penalty pairs: */ 255 212 WriteData(&pmxa_array3,out_riftspenaltypairs[i],out_riftsnumpenaltypairs[i],7); 256 //pmxa_array2= mxCreateDoubleMatrix(0,0,mxREAL);257 //mxSetM(pmxa_array2,7);258 //mxSetN(pmxa_array2,out_riftsnumpenaltypairs[i]);259 //mxSetPr(pmxa_array2,out_riftspenaltypairs[i]);260 //mexCallMATLAB( 1, &pmxa_array3, 1, &pmxa_array2, "transpose");261 213 mxSetField(pmxa_array,i,"penaltypairs",pmxa_array3); 262 214 … … 294 246 } 295 247 296 297 void TriMeshProcessRiftsUsage(void) 298 { 248 void TriMeshProcessRiftsUsage(void){ 299 249 _printLine_(""); 300 250 _printLine_(" usage: [index2,x2,y2,segments2,segmentmarkers2,rifts2]=TriMeshProcessrifts(index1,x1,y1,segments1,segmentmarkers1) ");
Note:
See TracChangeset
for help on using the changeset viewer.