Commit: 344c53561aa8bc76091f5587e2d467f58d09ff23
Author: Hans Goudey
Date:   Sun Aug 7 14:38:17 2022 -0500
Branches: blender-v3.3-release
https://developer.blender.org/rB344c53561aa8bc76091f5587e2d467f58d09ff23

Fix: Incorrect field node deduplication for shortest path nodes

Mistake in c8ae1fce6024556b72c.

===================================================================

M       source/blender/nodes/geometry/nodes/node_geo_edge_paths_to_selection.cc
M       
source/blender/nodes/geometry/nodes/node_geo_input_shortest_edge_paths.cc

===================================================================

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;
   }
 };

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to