source: issm/trunk-jpl/src/c/shared/TriMesh/OrderSegments.cpp@ 14222

Last change on this file since 14222 was 14222, checked in by Mathieu Morlighem, 12 years ago

CHG: index and segments are now integers

File size: 858 bytes
Line 
1/*
2 * OrderSegments.c:
3 * reorder segments so that their normals point outside the domain outline.
4 */
5#include "./trimesh.h"
6
7int OrderSegments(int** psegments,int nseg,int* index,int nel){
8
9 /*vertex indices: */
10 int A,B;
11
12 /*element index*/
13 int el;
14
15 /*Recover segments: */
16 int* segments=*psegments;
17
18 for(int i=0;i<nseg;i++){
19 A=segments[3*i+0];
20 B=segments[3*i+1];
21 el=segments[3*i+2]-1; //after AssociateSegmentToElement, el was a matlab index, we need the c index now.
22
23 if (index[3*el+0]==A){
24 if (index[3*el+2]==B){
25 segments[3*i+0]=B;
26 segments[3*i+1]=A;
27 }
28 }
29 else if (index[3*el+1]==A){
30 if (index[3*el+0]==B){
31 segments[3*i+0]=B;
32 segments[3*i+1]=A;
33 }
34 }
35 else{
36 if (index[3*el+1]==B){
37 segments[3*i+0]=B;
38 segments[3*i+1]=A;
39 }
40 }
41 }
42
43 /*Assign output pointers: */
44 *psegments=segments;
45 return 1;
46}
Note: See TracBrowser for help on using the repository browser.