Stream: brlcad

Topic: tessellation of plate mode bots


view this post on Zulip Daniel Rossberg (Apr 11 2025 at 12:22):

I wonder, why there is no tessellation for plate mode bots implemented. Okay, a reason could be that there is no perfect boundary representation for these primitives, because the shape of the boundary depends on the viewing direction. But, the BREP is very important for the exchange with other CAD software, and there are so many models with plate mode bots out there, what creates the urge to do at least something.

However, to start a discussion, I drafted an idea: https://github.com/BRL-CAD/brlcad/pull/181
It's not perfect, but better than nothing?

view this post on Zulip Sean (Apr 21 2025 at 07:00):

@Daniel Rossberg no tessellation for the reason you mentioned, but also just because it's not been tried outside of starseeker's extrusion method that he mentioned.

Personally, I think a good default is to simply ignore the directionality issue and presume centering (i.e., bidirectional half-extrusion in each dir). That's nominally what I'd typically expect on something randomly imported. There's of course also value in extruding inwards/outwards so that the original triangle data is preserved exactly, in cases where the thickness is supposed to go in one direction.

view this post on Zulip Daniel Rossberg (Apr 21 2025 at 17:24):

Sean said:

..., in cases where the thickness is supposed to go in one direction.

But, in which direction? It depends on the shooting direction. How do you make a BREP of it?

As I said, there is no perfect solution. For every plate mode bot, the resulting solid depends always on the shooting direction. Therefore, I gave up searching for the perfect solution and was looking for something feasible.

view this post on Zulip Sean (Apr 23 2025 at 17:09):

Daniel Rossberg said:

But, in which direction? It depends on the shooting direction. How do you make a BREP of it?

Right, we wouldn't know which direction (which is why I'd default to centering), so I'd think we'd just present a toggle for --dir=o|i|c or similar.

It's impossible to actually represent what the ray is doing because it isn't even bidirectionally invariant. Approach from left, it extends to right, approach from right, it extends to left.

That's why I think centering makes for an "okay" compromise default, but then have an option in case they new the plate mode was a shell, for example, and the resulting behavior would be an inward extrusion. Or maybe we test solidity and for solid manifolds we go inwards, otherwise it centers.


Last updated: Apr 26 2025 at 00:51 UTC