Skip to content

Commit cb7eacf

Browse files
committed
Add missing handling of neighbor list (-n flag)
1 parent 04dd571 commit cb7eacf

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "Triangulate"
22
uuid = "f7e6ffb2-c36d-4f8f-a77e-16e897189344"
33
authors = ["Juergen Fuhrmann <[email protected]>"]
4-
version = "2.1.2"
4+
version = "2.1.3"
55

66
[deps]
77
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"

src/triangulateio.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,10 @@ function TriangulateIO(ctio::CTriangulateIO)
337337
tio.trianglearealist=convert(Array{Cdouble,1}, Base.unsafe_wrap(Array, ctio.trianglearealist, (Int(ctio.numberoftriangles)), own=true))
338338
end
339339

340+
if ctio.numberoftriangles>0 && ctio.neighborlist!=C_NULL
341+
tio.neighborlist=convert(Array{Cint,2}, Base.unsafe_wrap(Array, ctio.neighborlist, (3,Int(ctio.numberoftriangles)), own=true))
342+
end
343+
340344
if ctio.numberofsegments>0 && ctio.segmentlist!=C_NULL && ctio.segmentmarkerlist!=C_NULL
341345
tio.segmentlist=convert(Array{Cint,2}, Base.unsafe_wrap(Array, ctio.segmentlist, (2,Int(ctio.numberofsegments)), own=true))
342346
tio.segmentmarkerlist=convert(Array{Cint,1}, Base.unsafe_wrap(Array, ctio.segmentmarkerlist, (Int(ctio.numberofsegments)), own=true))

test/test_neighbors.jl

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# thanks @tduretz
2+
module test_neighbors
3+
4+
# Test correct handling of second order points
5+
6+
using Triangulate
7+
8+
function test()
9+
triin=Triangulate.TriangulateIO()
10+
triin.pointlist=Cdouble[0.0 0.0 ; 1.0 0.0 ; 1.0 1.0; 0.0 1.0]'
11+
triin.segmentlist=Cint[1 2 ; 2 3 ; 3 4 ; 4 1 ]'
12+
triin.segmentmarkerlist=Cint[1, 2, 3, 4]
13+
14+
15+
(triout, vorout)=triangulate("pqQn", triin)
16+
test1 = triout.pointlist==[0.0 1.0 1.0 0.0;
17+
0.0 0.0 1.0 1.0]
18+
19+
test1 = test1 && triout.trianglelist==[4 2;
20+
1 3;
21+
2 4]
22+
23+
test2=triout.neighborlist==[-1 -1;
24+
2 1;
25+
-1 -1]
26+
test1&&test2
27+
end
28+
29+
end

0 commit comments

Comments
 (0)