Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Comments on Watertight Mesh Representation

Post

Watertight Mesh Representation

+4
−2

A watertight mesh is one which does not have holes, and for which each face has a designated inside and outside. Such a mesh can be "tetrahedralized", has a defined volume, and can be an operand in a polyhedral boolean operation.

I'm looking for a method to represent such watertight meshes that reduces the amount of invalid states or singularities. As an example of what I mean, consider a simple mesh of vertex positions and triplets of indices that represent triangles. This is a poor way to represent a watertight mesh because the set of representable meshes largely does not intersect the set of watertight meshes. As a somewhat opposite example, consider a convex hull described by a set of points. This representation has the opposite problem: while every representable mesh is watertight (for now overlooking singularities like a hull defined exclusively by points lying within the same plane), watertight meshes with concavity are not representable.

One possible solution would be to store a set of points, then a set of indices into these points that describe a convex hull that completely encloses the watertight mesh. In addition to these, store zero or more sets of indices that describe convex hulls to be subtracted from the first convex hull to add concavity. This would, with a few singularities, restrict representable meshes to the set of watertight meshes. Requiring each set of indices to contain at least 4 vertices would further reduce the number of singularities in this system.

Are there other ways to represent watertight meshes and operate on them? Possibly a more commonly used, better-researched, or more intuitive way? Common useful operations would include boolean operations or tetrahedralization/triangulation of the resulting mesh.

History
Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

5 comment threads

Winged edge (2 comments)
XY Problem? (1 comment)
Do you really just mean closed polyhedron? (4 comments)
Implicit Methods (2 comments)
2 days and no response, so -1 for the dump and run. (2 comments)
XY Problem?
Someone‭ wrote almost 2 years ago

I think your question approaches this from the wrong angle. Why do you want to have a watertight mesh in the first place? The reason might give better guidance to the answers.

To throw something else into the fray: A good solid modelling abstraction that I have used, relies on binary space partitioning. Each surface of your mesh will be represented by a plane and planes are organized in a tree. One disadvantage of this approach is that you might get more vertices than intended and that the surfaces are not restricted to be triangles.