-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
The example in the README contains something like:
mesh!(ax1,normal_mesh(result),color=:blue, transparency=false, overdraw=false,shading = FastShading)Where use is made of normal_mesh. However this function does not correctly obtain the triangles.
Below is my first attempt at fixing this, i.e. to get the tetrahedra and then to create a face based mesh representation to correctly visualise the tetrahedral mesh.
function tetgen2facemesh(result)
E = faces(result) # Called "faces" but these are tetrahedral elements really
V = coordinates(result)
F = Vector{TriangleFace{Int64}}(undef,length(E)*4)
for q = eachindex(E)
e = E[q]
qf = 1 + (q-1)*4
F[qf] = TriangleFace{Int64}(e[1],e[2],e[3])
F[qf+1] = TriangleFace{Int64}(e[1],e[2],e[4])
F[qf+2] = TriangleFace{Int64}(e[2],e[3],e[4])
F[qf+3] = TriangleFace{Int64}(e[3],e[1],e[4])
end
return GeometryBasics.Mesh(V,F)
end
M = tetgen2facemesh(result)
# N,VN=meshnormal(M)
#Visualize mesh
GLMakie.activate!(inline=false) # To avoid plotting in plotpane as per: https://github.com/MakieOrg/Makie.jl/issues/2956
fig = Figure()
ax1=Axis3(fig[1, 1], aspect = :data, xlabel = "X", ylabel = "Y", zlabel = "Z", title = "Using normal_mesh")
mesh!(ax1,normal_mesh(result),color=:blue, transparency=false, overdraw=false,shading = FastShading)
wireframe!(result, linewidth=5, color=:black)
ax2=Axis3(fig[1, 2], aspect = :data, xlabel = "X", ylabel = "Y", zlabel = "Z", title = "Proper conversion to faces")
poly!(ax2,M,strokewidth=5, color=:blue, transparency=false, overdraw=false,shading = FastShading)
# arrows!(ax2,VN,N)
figMy guess is that normal_mesh does not create all 4 tetrahedron triangles. The below shows the issue, i.e. several "holes" exist in the mesh (sorry hard to see as shading for these is a mess too... not sure how to fix that @SimonDanisch) and the bottom corner for instance clearly misses triangles. The visualisation on the right is for my "fixed" visualisation using the above.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
