diff options
author | Hans Goudey <h.goudey@me.com> | 2022-08-07 22:38:17 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-08-07 22:38:17 +0300 |
commit | 344c53561aa8bc76091f5587e2d467f58d09ff23 (patch) | |
tree | 5f40f68b8d9164b2d610b1c0e038130abbd168b5 /source/blender/nodes/geometry | |
parent | 800c7dbf41a2d1f79ce7517c5a5e9a69a51ac4cf (diff) |
Fix: Incorrect field node deduplication for shortest path nodes
Mistake in c8ae1fce6024556b72c.
Diffstat (limited to 'source/blender/nodes/geometry')
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_edge_paths_to_selection.cc | 7 | ||||
-rw-r--r-- | source/blender/nodes/geometry/nodes/node_geo_input_shortest_edge_paths.cc | 12 |
2 files changed, 16 insertions, 3 deletions
diff --git a/source/blender/nodes/geometry/nodes/node_geo_edge_paths_to_selection.cc b/source/blender/nodes/geometry/nodes/node_geo_edge_paths_to_selection.cc index efdf0911ec9..53cbd691fdb 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_edge_paths_to_selection.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_edge_paths_to_selection.cc @@ -110,7 +110,12 @@ class PathToEdgeSelectionFieldInput final : public GeometryFieldInput { bool is_equal_to(const fn::FieldNode &other) const override { - return dynamic_cast<const PathToEdgeSelectionFieldInput *>(&other) != nullptr; + if (const PathToEdgeSelectionFieldInput *other_field = + dynamic_cast<const PathToEdgeSelectionFieldInput *>(&other)) { + return other_field->start_vertices_ == start_vertices_ && + other_field->next_vertex_ == next_vertex_; + } + return false; } }; diff --git a/source/blender/nodes/geometry/nodes/node_geo_input_shortest_edge_paths.cc b/source/blender/nodes/geometry/nodes/node_geo_input_shortest_edge_paths.cc index 89abaca3c66..ca6406d2810 100644 --- a/source/blender/nodes/geometry/nodes/node_geo_input_shortest_edge_paths.cc +++ b/source/blender/nodes/geometry/nodes/node_geo_input_shortest_edge_paths.cc @@ -148,7 +148,11 @@ class ShortestEdgePathsNextVertFieldInput final : public GeometryFieldInput { bool is_equal_to(const fn::FieldNode &other) const override { - return dynamic_cast<const ShortestEdgePathsNextVertFieldInput *>(&other) != nullptr; + if (const ShortestEdgePathsNextVertFieldInput *other_field = + dynamic_cast<const ShortestEdgePathsNextVertFieldInput *>(&other)) { + return other_field->end_selection_ == end_selection_ && other_field->cost_ == cost_; + } + return false; } }; @@ -215,7 +219,11 @@ class ShortestEdgePathsCostFieldInput final : public GeometryFieldInput { bool is_equal_to(const fn::FieldNode &other) const override { - return dynamic_cast<const ShortestEdgePathsCostFieldInput *>(&other) != nullptr; + if (const ShortestEdgePathsCostFieldInput *other_field = + dynamic_cast<const ShortestEdgePathsCostFieldInput *>(&other)) { + return other_field->end_selection_ == end_selection_ && other_field->cost_ == cost_; + } + return false; } }; |