[Bf-blender-cvs] [53309357dfe] soc-2021-adaptive-cloth: adaptive_cloth: MeshDiff: initial

ishbosamiya noreply at git.blender.org
Mon Jul 5 17:33:40 CEST 2021


Commit: 53309357dfee64f8e795bec66762d415ab5b5a51
Author: ishbosamiya
Date:   Sun Jul 4 17:46:34 2021 +0530
Branches: soc-2021-adaptive-cloth
https://developer.blender.org/rB53309357dfee64f8e795bec66762d415ab5b5a51

adaptive_cloth: MeshDiff: initial

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

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 03fb4704629..efcf73a7009 100644
--- a/source/blender/blenkernel/BKE_cloth_remesh.hh
+++ b/source/blender/blenkernel/BKE_cloth_remesh.hh
@@ -83,6 +83,7 @@ template<typename> class Edge;
 template<typename> class Face;
 template<typename, typename, typename, typename> class Mesh;
 class MeshIO;
+template<typename, typename, typename, typename> class MeshDiff;
 
 namespace ga = blender::generational_arena;
 namespace fs = std::filesystem;
@@ -1251,6 +1252,82 @@ template<typename END, typename EVD, typename EED, typename EFD> class Mesh {
   }
 };
 
+template<typename END, typename EVD, typename EED, typename EFD> class MeshDiff {
+  blender::Vector<NodeIndex> added_nodes;
+  blender::Vector<VertIndex> added_verts;
+  blender::Vector<EdgeIndex> added_edges;
+  blender::Vector<FaceIndex> added_faces;
+
+  blender::Vector<Node<END>> deleted_nodes;
+  blender::Vector<Vert<EVD>> deleted_verts;
+  blender::Vector<Edge<EED>> deleted_edges;
+  blender::Vector<Face<EFD>> deleted_faces;
+
+ public:
+  MeshDiff() = default;
+
+  /* Move based constructor */
+  MeshDiff(blender::Vector<NodeIndex> &&added_nodes,
+           blender::Vector<VertIndex> &&added_verts,
+           blender::Vector<EdgeIndex> &&added_edges,
+           blender::Vector<FaceIndex> &&added_faces,
+
+           blender::Vector<Node<END>> &&deleted_nodes,
+           blender::Vector<Vert<EVD>> &&deleted_verts,
+           blender::Vector<Edge<EED>> &&deleted_edges,
+           blender::Vector<Face<EFD>> &&deleted_faces)
+      : added_nodes(std::move(added_nodes)),
+        added_verts(std::move(added_verts)),
+        added_edges(std::move(added_edges)),
+        added_faces(std::move(added_faces)),
+        deleted_nodes(std::move(deleted_nodes)),
+        deleted_verts(std::move(deleted_verts)),
+        deleted_edges(std::move(deleted_edges)),
+        deleted_faces(std::move(deleted_faces))
+  {
+  }
+
+  const auto &get_added_nodes() const
+  {
+    return this->added_nodes;
+  }
+
+  const auto &get_added_verts() const
+  {
+    return this->added_verts;
+  }
+
+  const auto &get_added_edges() const
+  {
+    return this->added_edges;
+  }
+
+  const auto &get_added_faces() const
+  {
+    return this->added_faces;
+  }
+
+  const auto &get_deleted_nodes() const
+  {
+    return this->deleted_nodes;
+  }
+
+  const auto &get_deleted_verts() const
+  {
+    return this->deleted_verts;
+  }
+
+  const auto &get_deleted_edges() const
+  {
+    return this->deleted_edges;
+  }
+
+  const auto &get_deleted_faces() const
+  {
+    return this->deleted_faces;
+  }
+};
+
 } /* namespace blender::bke::internal */
 
 #endif /* __cplusplus */



More information about the Bf-blender-cvs mailing list