[1] | 1 | /*!\file: TriMeshProcessRifts.cpp
|
---|
| 2 | * \brief split a mesh where a rift (or fault) is present
|
---|
| 3 | */
|
---|
| 4 |
|
---|
| 5 | #include "./TriMeshProcessRifts.h"
|
---|
| 6 |
|
---|
[13236] | 7 | void TriMeshProcessRiftsUsage(void){/*{{{*/
|
---|
[15396] | 8 | _printf_("\n");
|
---|
| 9 | _printf_(" usage: [index2,x2,y2,segments2,segmentmarkers2,rifts2]=TriMeshProcessrifts(index1,x1,y1,segments1,segmentmarkers1) \n");
|
---|
| 10 | _printf_(" where: (index1,x1,y1,segments1,segmentmarkers1) is an initial triangulation.\n");
|
---|
| 11 | _printf_(" index2,x2,y2,segments2,segmentmarkers2,rifts2 is the resulting triangulation where rifts have been processed.\n");
|
---|
[13236] | 12 | }/*}}}*/
|
---|
| 13 | WRAPPER(TriMeshProcessRifts){
|
---|
[1] | 14 |
|
---|
| 15 | /* returned quantities: */
|
---|
[13634] | 16 | RiftStruct *riftstruct = NULL;
|
---|
[1] | 17 |
|
---|
| 18 | /* input: */
|
---|
[13588] | 19 | int nel,nods;
|
---|
[14310] | 20 | int *index = NULL;
|
---|
[13588] | 21 | double *x = NULL;
|
---|
| 22 | double *y = NULL;
|
---|
[14310] | 23 | int *segments = NULL;
|
---|
| 24 | int *segmentmarkers = NULL;
|
---|
[1] | 25 | int num_seg;
|
---|
| 26 |
|
---|
[13586] | 27 | /*Boot module*/
|
---|
| 28 | MODULEBOOT();
|
---|
[1] | 29 |
|
---|
[13586] | 30 | /*checks on arguments on the matlab side: */
|
---|
| 31 | CHECKARGUMENTS(NLHS,NRHS,&TriMeshProcessRiftsUsage);
|
---|
[1] | 32 |
|
---|
[13586] | 33 | /*Fetch data */
|
---|
[13588] | 34 | FetchData(&index,&nel,NULL,INDEXIN);
|
---|
| 35 | FetchData(&x,&nods,XIN);
|
---|
| 36 | FetchData(&y,NULL,YIN);
|
---|
| 37 | FetchData(&segments,&num_seg,NULL,SEGMENTSIN);
|
---|
| 38 | FetchData(&segmentmarkers,NULL,SEGMENTMARKERSIN);
|
---|
[1] | 39 |
|
---|
[13588] | 40 | /*call x layer*/
|
---|
[13639] | 41 | TriMeshProcessRiftsx(&index,&nel,&x,&y,&nods,&segments,&segmentmarkers,&num_seg,&riftstruct);
|
---|
[1] | 42 |
|
---|
[13588] | 43 | /*Output : */
|
---|
| 44 | WriteData(INDEXOUT,index,nel,3);
|
---|
| 45 | WriteData(XOUT,x,nods,1);
|
---|
| 46 | WriteData(YOUT,y,nods,1);
|
---|
| 47 | WriteData(SEGMENTSOUT,segments,num_seg,3);
|
---|
| 48 | WriteData(SEGMENTMARKERSOUT,segmentmarkers,num_seg,1);
|
---|
[13639] | 49 | WriteData(RIFTSTRUCT,riftstruct);
|
---|
[1] | 50 |
|
---|
[13586] | 51 | /*end module: */
|
---|
| 52 | MODULEEND();
|
---|
[1] | 53 | }
|
---|