Created by: portnov
This node cuts edges of one mesh ("object") by intersecting them with faces of another mesh ("surface"). It can connect the new vertices by creating new faces, to produce a cut surface. It can also output the pieces of the object, that are the result of cutting. This is similar to "Cross Section" and "Bisect" nodes, but it operates with any surface, not just with plane. In a sense, this operation can be considered as a very simple analog of Boolean operations, but it finds intersections of edges, not intersections of volumes.
Implementation restriction: the node requires that of each face of "object" mesh, only two edges intersect the "surface" mesh. So, each face can be cut only in two pieces, not in three or more.
Faces made by this node at places of cut will be usually NGons, so they may be non-planar. It may be good idea to pass the output of this node through the Split faces node (in split non-planar faces mode), or maybe through Make faces planar node.
Note that this node outputs "cut pieces" mesh always as one merged object (not split into pieces). If you need these pieces in separate, you can pass the output of this node through the Separate Loose Parts node.
An example:
Here the intersection of eight cubes (green edges) with the icosphere (yellowish edges) is calculated. Red mesh is the "cut surface".
Preflight checklist
Put an x letter in each brackets when you're done this item:
-
Code changes complete. -
Code documentation complete. -
Documentation for users complete (or not required, if user never sees these changes). -
Manual testing done. -
Unit-tests implemented. -
Ready for merge.