Blender Git Commit Log

Git Commits -> Revision d54a08c

Revision d54a08c by Wannes Malfait (master)
December 1, 2021, 16:11 (GMT)
Geometry Nodes: Dual Mesh Node

This node calculates the dual of the input mesh. This means that faces
get replaced with vertices and vertices with faces. In principle this
only makes sense when the mesh in manifold, but there is an option to
keep the (non-manifold) boundaries of the mesh intact.

Attributes are propagated:
- Point domain goes to face domain and vice versa
- Edge domain and Face corner domain gets mapped to itself
Because of the duality, when the mesh is manifold, the attributes get
mapped to themselves when applying the node twice.

Thanks to Leul Mulugeta (@Leul) for help with the
ascii diagrams in the code comments.

Note that this does not work well with some non-manifold geometry,
like an edge connected to more than 2 faces, or a vertex connected to
only two faces, while not being in the boundary. This is because there
is no good way to define the dual at some of those points. This type
of non-manifold vertices are just removed for this reason.

Differential Revision: https://developer.blender.org/D12949

Commit Details:

Full Hash: d54a08c8af12514a976be8996ebbad64682f54cc
Parent Commit: 1757840
Committed By: Hans Goudey
Lines Changed: +849, -0

1 Added Path:

/source/blender/nodes/geometry/nodes/node_geo_dual_mesh.cc (+843, -0) (View)

6 Modified Paths:

/release/scripts/startup/nodeitems_builtins.py (+1, -0) (Diff)
/source/blender/blenkernel/BKE_node.h (+1, -0) (Diff)
/source/blender/blenkernel/intern/node.cc (+1, -0) (Diff)
/source/blender/nodes/geometry/CMakeLists.txt (+1, -0) (Diff)
/source/blender/nodes/NOD_geometry.h (+1, -0) (Diff)
/source/blender/nodes/NOD_static_types.h (+1, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021