Skip to content

Commit 95500ec

Browse files
committed
output all mesh in a single file for comparison
1 parent e5c64fd commit 95500ec

File tree

1 file changed

+34
-9
lines changed

1 file changed

+34
-9
lines changed

etc/output_comparison.jl

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,39 @@ using GeometryTypes
44
using LinearAlgebra: dot, norm
55
using FileIO
66

7-
f(v) = sqrt(sum(dot(v,v))) - 1
8-
sdf = SignedDistanceField(f,HyperRectangle(Vec(-1,-1,-1.), Vec(2,2,2.)))
7+
sphere(v) = sqrt(sum(v.^2)) - 1
98

10-
mc = HomogenousMesh(sdf, MarchingCubes())
11-
mt = HomogenousMesh(sdf, MarchingTetrahedra())
12-
ns = HomogenousMesh(sdf, NaiveSurfaceNets())
9+
sdf = SignedDistanceField(sphere, HyperRectangle(Vec(-1,-1,-1.), Vec(2,2,2.)))
1310

14-
# save the Sphere as a PLY file
15-
save("sphere_mc.ply",mc)
16-
save("sphere_mt.ply",mt)
17-
save("sphere_ns.ply",ns)
11+
mesh_type = HomogenousMesh{Point{3,Float64}, Face{3,Int}}
12+
13+
mc = mesh_type(sdf, MarchingCubes())
14+
mt = mesh_type(sdf, MarchingTetrahedra())
15+
ns = mesh_type(sdf, NaiveSurfaceNets())
16+
17+
mcf = mesh_type(sphere, sdf.bounds, MarchingCubes(), samples=size(sdf))
18+
mtf = mesh_type(sphere, sdf.bounds, MarchingTetrahedra(), samples=size(sdf))
19+
nsf = mesh_type(sphere, sdf.bounds, NaiveSurfaceNets(), samples=size(sdf))
20+
21+
# shift
22+
@assert length(mc.vertices) == length(mcf.vertices)
23+
@assert length(mt.vertices) == length(mtf.vertices)
24+
@assert length(ns.vertices) == length(nsf.vertices)
25+
26+
for i in eachindex(mt.vertices)
27+
mt.vertices[i] = mt.vertices[i] .+ Point(3,0,0)
28+
mtf.vertices[i] = mtf.vertices[i] .+ Point(3,3,0)
29+
end
30+
for i in eachindex(mc.vertices)
31+
mc.vertices[i] = mc.vertices[i] .+ Point(-3,0,0)
32+
mcf.vertices[i] = mcf.vertices[i] .+ Point(-3,3,0)
33+
end
34+
for i in eachindex(ns.vertices)
35+
#ns.vertices[i] = ns.vertices[i] .+ Point(0,0,0)
36+
nsf.vertices[i] = nsf.vertices[i] .+ Point(0,3,0)
37+
end
38+
39+
mesh = merge(mc,mt,ns,mcf,mtf,nsf)
40+
41+
# save all in one PLY file
42+
save("output_comparison.ply",mesh)

0 commit comments

Comments
 (0)