-
Notifications
You must be signed in to change notification settings - Fork 1
l1yefeng/MeshSimpl
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Mesh simplification implementation - Restriction on input: - No non-manifold edge: will throw an exception - No non-manifold vertex: undefined behavior - To-do-next: 1. Use OOP better to improve program - neighborhood Naming class: Erasable typedef: Indices member: Faces.replaceSide(1) private member: _indices file name: lowercase.{hpp,cpp} Terms faces incident to some edge are its wings edges around a face are its sides vertices of an edge are its endpoints vertices of a face are its corners ===== How was topology changed during simplification? ===== After initial edge collapse operation on edge (d, k), two endpoints merge into one, say k. Here it is possible that (a, d) and (a, k) two edges become coincide which will introduce non-manifold edges in output. This implementation eliminate non-manifold edges immediately after such coincide edges appear. The method is *forking*, which separate the two edges by attaching the forks of endpoints to one of the two coincide edges. E.g., two edges ek, ed both have endpoints (k, a) but they have different wings. First create new vertices k' and a' as forks. One of ed and ek will become (k', a') instead of (k, a). Second, exchange one wing between the ed and ek to consolidate the connectivity.
About
Triangle mesh simplification using Quadric Error Metrics
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published