Fix: Incorrect field node deduplication for shortest path nodes

Mistake in c8ae1fce60.
This commit is contained in:
Hans Goudey 2022-08-07 14:38:17 -05:00
parent 800c7dbf41
commit 344c53561a
2 changed files with 16 additions and 3 deletions

View File

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

View File

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