Dan. Sorry I didn't see this post for so long.
I would share any of my Manifoldlab code with you. But probably better to just share concepts. With regards to BOOLEANS ... my boolean plugin simply shells out to CarveCSG.
Will you be shelling out ? Or doing it all internal in Wings3D / Erlang if you have a go at Booleans ?
I think between you and I ... we have all the required 3D math background to get a nice Booleans done. And you have better optimizations experience.
I didn't try very hard to re-instantiate QUADS after having artificially triangulated as a pre-condition for Boolean. Boolean really really needs the triangles as you know. A lots of seemingly FLAT faces when passed to CarveCSG will come across as NON-FLAT.
I think you should create the code first to work on all triangles meshes with maybe only a little forward looking to QUADS.
There are so many issues ... CarveCSG ... did have a capacity to preserve color information (attributes) if you used the API correctly ... but I bet it is not highly used (guess). I looked for docs on that. But never went there.
I think maybe you could create a MESH-COMPARE tool / process that was used in post processing ... to re-assert QUADS and colors by comparing two meshes. Keep the Boolean process PURE. Just my thoughts.
I wish you good luck if you have a Go at booleans.
Dan ... I would try to adopt your basic intersect test ... to give it a workout. I have many many lines of code in manifoldlab and many functions that would use an intersect test.
The basic unit of work in MLAB is ray / triangle intersect test. Just FYI. Another things build out some there. I think Triangle / Trinagle intersect is a little higher level.
I would share any of my Manifoldlab code with you. But probably better to just share concepts. With regards to BOOLEANS ... my boolean plugin simply shells out to CarveCSG.
Will you be shelling out ? Or doing it all internal in Wings3D / Erlang if you have a go at Booleans ?
I think between you and I ... we have all the required 3D math background to get a nice Booleans done. And you have better optimizations experience.
I didn't try very hard to re-instantiate QUADS after having artificially triangulated as a pre-condition for Boolean. Boolean really really needs the triangles as you know. A lots of seemingly FLAT faces when passed to CarveCSG will come across as NON-FLAT.
I think you should create the code first to work on all triangles meshes with maybe only a little forward looking to QUADS.
There are so many issues ... CarveCSG ... did have a capacity to preserve color information (attributes) if you used the API correctly ... but I bet it is not highly used (guess). I looked for docs on that. But never went there.
I think maybe you could create a MESH-COMPARE tool / process that was used in post processing ... to re-assert QUADS and colors by comparing two meshes. Keep the Boolean process PURE. Just my thoughts.
I wish you good luck if you have a Go at booleans.
Dan ... I would try to adopt your basic intersect test ... to give it a workout. I have many many lines of code in manifoldlab and many functions that would use an intersect test.
The basic unit of work in MLAB is ray / triangle intersect test. Just FYI. Another things build out some there. I think Triangle / Trinagle intersect is a little higher level.