Ice Sheet System Model  4.18
Code documentation
Functions
OrderSegments.cpp File Reference
#include "./triangle.h"

Go to the source code of this file.

Functions

int OrderSegments (int **psegments, int nseg, int *index, int nel)
 

Function Documentation

◆ OrderSegments()

int OrderSegments ( int **  psegments,
int  nseg,
int *  index,
int  nel 
)

Definition at line 7 of file OrderSegments.cpp.

7  {
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 }