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.

Post History

60%
+4 −2
Q&A Watertight Mesh Representation

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...

0 answers  ·  posted 2y ago by Josh Hyatt‭  ·  edited 2y ago by Josh Hyatt‭

#2: Post edited by user avatar Josh Hyatt‭ · 2022-05-13T18:08:59Z (almost 2 years ago)
#1: Initial revision by user avatar Josh Hyatt‭ · 2022-05-08T07:17:48Z (almost 2 years ago)
Watertight Mesh Representation
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.