Extract a mesh of general polytopes
- Dominant language
- Julia
- Stars
- 18
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
The `subtriangulation()` procedure returns a set of simplex meshes. However, for some applications it may be convenient to return a mesh of `GeneralPolytope`.
The result of `compute_polyhedra!` are arrays of general polytopes (Kin,Kout,Γk),. Then, inside `save_cell_submesh!`, these polytopes are simplexified and appended to the submesh. Instead, we need to merge these arrays of polytopes into a single polytope per background cell. Then, the merged polytopes compose a mesh.
Therefore, the main task is to merge arrays of `GeneralPolytope` with the following considerations.
- The polytope nodes contain metadata about the background mesh and STL
- It is convenient to keep polytope faces (vertex,edges,facets) linked to background faces
- We can remove all the interior edges and vertices
- We can generate a polytope from the interior array Kin, and another for Kout.
One possible approach is the following:
1. Extract the polytope edges on the background cell edges
2. Merge nodes not touching STL surface (Nk)
3. Merge edges that share nodes (Ek)
4. Glue cut surface Γk with merged edges Ek to generate a new `GeneralPolytope`
Here, one of the main complication is that an edge can be cut more than once by the STL surface. Thus, the glue is not straight forward. E.g., we need a process of sorting nodes over the background edge.
It important to note that the `GenaralPolytope` is represented by an oriented edge graph; see more information in the reference publication.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with subtriangulation(), compute_polyhedra!, and save_cell_submesh! to trace how GeneralPolytope arrays are currently simplexified and appended. Review the oriented edge-graph representation and the reference publication, then define merging for background edges with multiple STL cuts; done means returning one merged GeneralPolytope mesh per background cell while preserving the relevant metadata and face links.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100