Ice Sheet System Model
4.18
Code documentation
src
c
shared
Triangle
OrderSegments.cpp
Go to the documentation of this file.
1
/*
2
* OrderSegments.c:
3
* reorder segments so that their normals point outside the domain outline.
4
*/
5
#include "
./triangle.h
"
6
7
int
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
}
triangle.h
OrderSegments
int OrderSegments(int **psegments, int nseg, int *index, int nel)
Definition:
OrderSegments.cpp:7
Generated on Thu Jul 2 2020 08:09:22 for Ice Sheet System Model by
1.8.19