[Bf-blender-cvs] [8926ac9c6bf] soc-2021-adaptive-cloth: adaptive_cloth: Mesh: get_checked_other_vert()

ishbosamiya noreply at git.blender.org
Mon Jul 12 08:23:48 CEST 2021


Commit: 8926ac9c6bf1ede0bb4dd69a6c306ef79c403498
Author: ishbosamiya
Date:   Wed Jul 7 19:18:34 2021 +0530
Branches: soc-2021-adaptive-cloth
https://developer.blender.org/rB8926ac9c6bf1ede0bb4dd69a6c306ef79c403498

adaptive_cloth: Mesh: get_checked_other_vert()

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

M	source/blender/blenkernel/BKE_cloth_remesh.hh

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

diff --git a/source/blender/blenkernel/BKE_cloth_remesh.hh b/source/blender/blenkernel/BKE_cloth_remesh.hh
index e9d8d6ca4d7..cab4c2c93c8 100644
--- a/source/blender/blenkernel/BKE_cloth_remesh.hh
+++ b/source/blender/blenkernel/BKE_cloth_remesh.hh
@@ -1607,6 +1607,32 @@ template<typename END, typename EVD, typename EED, typename EFD> class Mesh {
     BLI_assert(vert.node);
     return this->get_checked_node(vert.node.value());
   }
+
+  /**
+   * Gives first vert index of a triangulated face that is not part of edge.
+   *
+   * Will abort in debug mode if face is not triangulated or edge is
+   * not part of the face.
+   * Will have undefined behaviour in release mode.
+   **/
+  inline Vert<EVD> &get_checked_other_vert(const Edge<EED> &edge, const Face<EFD> &face)
+  {
+    BLI_assert(face.verts.size() == 3);
+    BLI_assert(face.has_edge(edge));
+
+    const auto vert_1_index = face.verts[0];
+    const auto vert_2_index = face.verts[1];
+    const auto vert_3_index = face.verts[2];
+
+    if (edge.has_vert(vert_1_index) == false) {
+      return this->get_checked_vert(vert_1_index);
+    }
+    if (edge.has_vert(vert_2_index) == false) {
+      return this->get_checked_vert(vert_2_index);
+    }
+
+    return this->get_checked_vert(vert_3_index);
+  }
 };
 
 template<typename END, typename EVD, typename EED, typename EFD> class MeshDiff {



More information about the Bf-blender-cvs mailing list