-
-
Notifications
You must be signed in to change notification settings - Fork 119
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
Rename fj::Union
to fj::Group
#219
Comments
As a general note, none of the nomenclature used right now is meant to be the last word. It all just reflects a current state, that is meant to be improved upon iteratively. As for the specific question: I haven't much thought about this before I read your question just now. This definition of union matches the one used in OpenSCAD, hence probably why it seemed natural to me. From a technical perspective, implementing the union operation involves checking for intersections between the different bodies, and adding/removing vertices/edges/faces along these intersections as required. A union of disjoint objects is just one case that this algorithm handles naturally: No intersections detected, no removals/additions required. (I've added two notes with additional context below.) I see no reason to call disjoint unions something different, when it's really the same thing under the hood. Does that make sense to you, given my explanation? In any case, it wouldn't hurt to mention this in the documentation of Additional notes on the implementation of disjoint unions:
|
fj::Union
documentation
You explanation makes sense but I'm still wondering on whether that will not prevent the addition of proper model checking since there's not way to figure out whether the disjoint bodies happen to not be touching (or overlapping) by accident or on purpose. |
Hmm, that's a good point. It probably makes sense to have a split between the implementation side, and the semantic meaning that reflects the user's intent. So a solution could be to have Is that along the lines of what you had in mind? |
Yes, that's exactly what I was thinking of. |
Okay, let's do that then 😄 So, the list of action items for this issue would be something like this: Labeling https://github.com/hannobraun/Fornjot/labels/good%20first%20issue, as we've already determined what needs to be done, and doing it doesn't require any deep insight into Fornjot (but can serve as an introduction to the |
fj::Union
documentationfj::Union
to fj::Group
I've started looking into this. |
I noticed that there's an example
csg-union-disjoint
which (as implied by the name) creates a union of two disjoint objects. In my mental model aunion
in CAD CSG implies that the union members are overlapping or at least touching to form one combined solid body. "Disjoint objects" sound more like a group to me.Edit (@hannobraun):
Adding the list of action items that I originally included in the comment below. That way, they should show up in the issue list view.
fj::Union
tofj::Group
The text was updated successfully, but these errors were encountered: