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