[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