diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2022-05-21 01:06:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-21 01:06:21 +0200 |
commit | 8adf04804550957f43c810b13fcce66dd76e5fd8 (patch) | |
tree | 2ee58365f1092587277770ceaedfc1e35454acfd /editor/plugins/mesh_instance_3d_editor_plugin.cpp | |
parent | f4126cc902b0cbb100bcf1b37ee15df5a8430d21 (diff) | |
parent | 45af29da8095af16729955117a165d23e77cd740 (diff) | |
download | redot-engine-8adf04804550957f43c810b13fcce66dd76e5fd8.tar.gz |
Merge pull request #61194 from reduz/new-hash-set
Add a new HashSet template
Diffstat (limited to 'editor/plugins/mesh_instance_3d_editor_plugin.cpp')
-rw-r--r-- | editor/plugins/mesh_instance_3d_editor_plugin.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp index 3094e24659..d85087b5ea 100644 --- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp +++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp @@ -349,12 +349,13 @@ struct MeshInstance3DEditorEdgeSort { Vector2 a; Vector2 b; - bool operator<(const MeshInstance3DEditorEdgeSort &p_b) const { - if (a == p_b.a) { - return b < p_b.b; - } else { - return a < p_b.a; - } + static uint32_t hash(const MeshInstance3DEditorEdgeSort &p_edge) { + uint32_t h = hash_djb2_one_32(HashMapHasherDefault::hash(p_edge.a)); + return hash_djb2_one_32(HashMapHasherDefault::hash(p_edge.b), h); + } + + bool operator==(const MeshInstance3DEditorEdgeSort &p_b) const { + return a == p_b.a && b == p_b.b; } MeshInstance3DEditorEdgeSort() {} @@ -373,7 +374,7 @@ void MeshInstance3DEditor::_create_uv_lines(int p_layer) { Ref<Mesh> mesh = node->get_mesh(); ERR_FAIL_COND(!mesh.is_valid()); - RBSet<MeshInstance3DEditorEdgeSort> edges; + HashSet<MeshInstance3DEditorEdgeSort, MeshInstance3DEditorEdgeSort> edges; uv_lines.clear(); for (int i = 0; i < mesh->get_surface_count(); i++) { if (mesh->surface_get_primitive_type(i) != Mesh::PRIMITIVE_TRIANGLES) { |