diff options
author | Hans Goudey <h.goudey@me.com> | 2022-01-24 07:25:29 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-01-24 07:25:29 +0300 |
commit | 05ef714edcf5282967a6c9451e6c9192c05a66e2 (patch) | |
tree | fd7103f1b910ff4574462239adaf4f136505a52f | |
parent | 47f02e1227af7aab01d41c3a7c0076e2de06aec8 (diff) |
Small cleanupstemp-geometry-nodes-extrude-mesh
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_extrude_mesh.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_extrude_mesh.cc b/source/blender/nodes/geometry/nodes/node_geo_extrude_mesh.cc index 97237030cbb..68a42943da5 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_extrude_mesh.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_extrude_mesh.cc @@ -39,7 +39,7 @@ static void node_declare(NodeDeclarationBuilder &b) b.add_input<decl::Geometry>("Mesh").supported_type(GEO_COMPONENT_TYPE_MESH); b.add_input<decl::Bool>(N_("Selection")).default_value(true).supports_field().hide_value(); b.add_input<decl::Vector>(N_("Offset")).subtype(PROP_TRANSLATION).implicit_field().hide_value(); - b.add_input<decl::Float>(N_("Offset Scale")).default_value(1.0f).supports_field(); + b.add_input<decl::Float>(N_("Offset Scale")).default_value(1.0f).min(0.0f).supports_field(); b.add_input<decl::Bool>(N_("Individual")).default_value(true); b.add_output<decl::Geometry>("Mesh"); b.add_output<decl::Bool>(N_("Top")).field_source(); @@ -157,10 +157,6 @@ static void expand_mesh(Mesh &mesh, CustomData_realloc(&mesh.ldata, mesh.totloop); } BKE_mesh_update_customdata_pointers(&mesh, false); - - for (MVert &vert : mesh_verts(mesh).take_back(vert_expand)) { - vert.flag = 0; - } } static MEdge new_edge(const int v1, const int v2) @@ -1035,6 +1031,8 @@ static void extrude_individual_mesh_faces(MeshComponent &component, Span<MPoly> orig_polys = mesh_polys(mesh); Span<MLoop> orig_loops = mesh_loops(mesh); + /* Use a mesh for the result of the evaluation because the mesh is reallocated before + * the vertices are moved, and the evaluated result might reference an attribute. */ Array<float3> poly_offset(orig_polys.size()); GeometryComponentFieldContext poly_context{component, ATTR_DOMAIN_FACE}; FieldEvaluator poly_evaluator{poly_context, mesh.totpoly}; |