Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate fast bool paper #97

Open
gkjohnson opened this issue Dec 20, 2022 · 3 comments
Open

Investigate fast bool paper #97

gkjohnson opened this issue Dec 20, 2022 · 3 comments
Milestone

Comments

@gkjohnson
Copy link
Owner

https://twitter.com/Xelatihy/status/1597995979105787905

@gkjohnson gkjohnson transferred this issue from gkjohnson/three-mesh-bvh Jan 5, 2023
@gkjohnson gkjohnson modified the milestones: v0.0.4, v0.0.5 Jan 13, 2023
@gkjohnson
Copy link
Owner Author

See this image specifically as it relates to #51

image

@gkjohnson gkjohnson modified the milestones: v0.0.5, v0.0.6 Mar 27, 2023
@gkjohnson gkjohnson modified the milestones: v0.0.8, v0.0.9 Jul 8, 2023
@gkjohnson gkjohnson modified the milestones: v0.0.9, v0.0.10 Aug 10, 2023
@gkjohnson gkjohnson modified the milestones: v0.0.10, v0.0.11 Aug 18, 2023
@gkjohnson gkjohnson modified the milestones: v0.0.12, v0.0.x Oct 14, 2023
@gkjohnson
Copy link
Owner Author

gkjohnson commented Oct 15, 2023

TODO

  • Project points into a z+ frame with horizontal planet at zero.
  • Insert all points (based on edge intersect with plane and triangle extension beyond tri edge) in the triangle set and set some kind of connectivity. Ensure close point intersections are deduped.
  • Store all "required" edges for triangle intersection edges. Split external triangle edges where needed - internal edges should not need to be split.
  • Find which triangle each new point is contained in and make new connections - preferring the "required" edge orientation if possible. Save which required edges can't be included.
  • If a required edge is crossing another we need to invert the crossing triangle edge.

Questions

  • Can we retain half edge connectivity here?
  • How do we deal with intersecting, co-planar triangles?
    • Triangle edges are just treated as edge and point values / intersection lines

@gkjohnson
Copy link
Owner Author

gkjohnson commented Mar 9, 2024

Using "Constrained Delaunay Triangulation" may be the simplest way to get this working. See js implementation:

https://github.com/savithru-j/cdt-js

Additionally - a more effective way to deal with coplanar patches is to just remove the unnecessary ones without having to perform raycasts. This may require matching the trimmed patches between the clipped triangles.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant