[Bf-blender-cvs] [e805bfc768f] geometry-nodes: Cleanup: Return early in edge split node
Hans Goudey
noreply at git.blender.org
Thu Oct 29 21:53:44 CET 2020
Commit: e805bfc768fb1a4540c705d7f7bfc08713a07e21
Author: Hans Goudey
Date: Thu Oct 29 15:53:32 2020 -0500
Branches: geometry-nodes
https://developer.blender.org/rBe805bfc768fb1a4540c705d7f7bfc08713a07e21
Cleanup: Return early in edge split node
===================================================================
M source/blender/nodes/geometry/nodes/node_geo_edge_split.cc
===================================================================
diff --git a/source/blender/nodes/geometry/nodes/node_geo_edge_split.cc b/source/blender/nodes/geometry/nodes/node_geo_edge_split.cc
index 7d668ef3bfd..0c7e62db06d 100644
--- a/source/blender/nodes/geometry/nodes/node_geo_edge_split.cc
+++ b/source/blender/nodes/geometry/nodes/node_geo_edge_split.cc
@@ -50,24 +50,28 @@ static void geo_edge_split_exec(bNode *UNUSED(node), GeoNodeInputs inputs, GeoNo
{
GeometryPtr geometry = inputs.extract<GeometryPtr>("Geometry");
- const Mesh *mesh_in = geometry->get_mesh_for_read();
- if (mesh_in != nullptr) {
- const float split_angle = inputs.extract<float>("Angle");
- const bool use_sharp_flag = inputs.extract<bool>("Sharp Edges");
+ if (!geometry.has_value() || !geometry->has_mesh()) {
+ outputs.set("Geometry", std::move(geometry));
+ return;
+ }
- /* Use modifier struct to pass arguments to the modifier code. */
- EdgeSplitModifierData emd = {0};
- emd.split_angle = split_angle;
- emd.flags = MOD_EDGESPLIT_FROMANGLE;
- if (use_sharp_flag) {
- emd.flags |= MOD_EDGESPLIT_FROMFLAG;
- }
+ const float split_angle = inputs.extract<float>("Angle");
+ const bool use_sharp_flag = inputs.extract<bool>("Sharp Edges");
- Mesh *mesh_out = doEdgeSplit(mesh_in, &emd);
- make_geometry_mutable(geometry);
- geometry->replace_mesh(mesh_out);
+ const Mesh *mesh_in = geometry->get_mesh_for_read();
+
+ /* Use modifier struct to pass arguments to the modifier code. */
+ EdgeSplitModifierData emd = {0};
+ emd.split_angle = split_angle;
+ emd.flags = MOD_EDGESPLIT_FROMANGLE;
+ if (use_sharp_flag) {
+ emd.flags |= MOD_EDGESPLIT_FROMFLAG;
}
+ Mesh *mesh_out = doEdgeSplit(mesh_in, &emd);
+ make_geometry_mutable(geometry);
+ geometry->replace_mesh(mesh_out);
+
outputs.set("Geometry", std::move(geometry));
}
} // namespace blender::nodes
More information about the Bf-blender-cvs
mailing list