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

Last change on this file since 11202 was 11202, checked in by Mathieu Morlighem, 13 years ago

Fixed some g++ warnings: deprecated conversion from string constant to ‘char*’

File size: 959 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(double** psegments,int nseg, double* index,int nel){
8
9 /*Error management: */
10 int i;
11 int noerr=1;
12
13 /*Input: */
14 double* segments=NULL;
15
16 /*vertex indices: */
17 double A,B;
18 /*element indices: */
19 int el;
20
21
22 /*Recover segments: */
23 segments=*psegments;
24
25 for (i=0;i<nseg;i++){
26 A=segments[3*i+0];
27 B=segments[3*i+1];
28 el=(int)segments[3*i+2]-1; //after AssociateSegmentToElement, el was a matlab index, we need the c index now.
29
30 if (index[3*el+0]==A){
31 if (index[3*el+2]==B){
32 segments[3*i+0]=B;
33 segments[3*i+1]=A;
34 }
35 }
36 else if (index[3*el+1]==A){
37 if (index[3*el+0]==B){
38 segments[3*i+0]=B;
39 segments[3*i+1]=A;
40 }
41 }
42 else{
43 if (index[3*el+1]==B){
44 segments[3*i+0]=B;
45 segments[3*i+1]=A;
46 }
47 }
48 }
49
50 /*Assign output pointers: */
51 *psegments=segments;
52 return noerr;
53}
Note: See TracBrowser for help on using the repository browser.