[Bf-blender-cvs] [8bcd17be056] soc-2021-adaptive-cloth: adaptive_cloth: better debug print

ishbosamiya noreply at git.blender.org
Mon Jun 28 08:28:24 CEST 2021


Commit: 8bcd17be056947688e44851d066d0be886852afe
Author: ishbosamiya
Date:   Thu Jun 24 13:27:59 2021 +0530
Branches: soc-2021-adaptive-cloth
https://developer.blender.org/rB8bcd17be056947688e44851d066d0be886852afe

adaptive_cloth: better debug print

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

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 a5856a7e4dc..dc1495ffb84 100644
--- a/source/blender/blenkernel/BKE_cloth_remesh.hh
+++ b/source/blender/blenkernel/BKE_cloth_remesh.hh
@@ -87,6 +87,10 @@ using usize = uint64_t;
 
 template<typename T> std::ostream &operator<<(std::ostream &stream, const blender::Vector<T> &vec)
 {
+  if (vec.size() == 0) {
+    stream << "()";
+    return stream;
+  }
   stream << "(";
   for (const auto &i : vec) {
     stream << i << ", ";
@@ -95,10 +99,24 @@ template<typename T> std::ostream &operator<<(std::ostream &stream, const blende
   return stream;
 }
 
+template<typename T> std::ostream &operator<<(std::ostream &stream, const ga::Arena<T> &arena)
+{
+  if (arena.size() == 0) {
+    stream << "()";
+    return stream;
+  }
+  stream << "(";
+  for (const auto &i : arena) {
+    stream << i << ", ";
+  }
+  stream << "\b\b)";
+  return stream;
+}
+
 template<typename T> std::ostream &operator<<(std::ostream &stream, const std::optional<T> &option)
 {
   if (option) {
-    stream << "Some(" << option << ")";
+    stream << "Some(" << option.value() << ")";
   }
   else {
     stream << "None";
@@ -106,6 +124,23 @@ template<typename T> std::ostream &operator<<(std::ostream &stream, const std::o
   return stream;
 }
 
+template<typename... Types>
+constexpr std::ostream &operator<<(std::ostream &stream, const std::tuple<Types...> &tuple)
+{
+  auto tuple_size = std::tuple_size<std::tuple<Types...>>();
+
+  if (tuple_size == 0) {
+    stream << "()";
+    return stream;
+  }
+
+  stream << "(";
+  std::apply([&](const auto &... i) { ((stream << i << ", "), ...); }, tuple);
+  stream << "\b\b)";
+
+  return stream;
+}
+
 /**
  * `Node`: Stores the worldspace/localspace coordinates of the
  * `Mesh`. Commonly called the vertex of the mesh (note: in this mesh
@@ -134,8 +169,8 @@ template<typename T> class Node {
 
   friend std::ostream &operator<<(std::ostream &stream, const Node &node)
   {
-    stream << "(" << node.self_index << ", " << node.verts << ", " << node.pos << ","
-           << node.normal << ")";
+    stream << "(self_index: " << node.self_index << ", verts: " << node.verts
+           << ", pos: " << node.pos << ", normal: " << node.normal << ")";
     return stream;
   }
 
@@ -174,8 +209,8 @@ template<typename T> class Vert {
 
   friend std::ostream &operator<<(std::ostream &stream, const Vert &vert)
   {
-    stream << "(" << vert.self_index << ", " << vert.edges << ", " << vert.node << "," << vert.uv
-           << ")";
+    stream << "(self_index: " << vert.self_index << ", edges: " << vert.edges
+           << ", node: " << vert.node << ", uv: " << vert.uv << ")";
     return stream;
   }
 
@@ -232,7 +267,8 @@ template<typename T> class Edge {
 
   friend std::ostream &operator<<(std::ostream &stream, const Edge &edge)
   {
-    stream << "(" << edge.self_index << ", " << edge.faces << ", " << edge.verts << ")";
+    stream << "(self_index: " << edge.self_index << ", faces: " << edge.faces
+           << ", verts: " << edge.verts << ")";
     return stream;
   }
 
@@ -275,7 +311,8 @@ template<typename T> class Face {
 
   friend std::ostream &operator<<(std::ostream &stream, const Face &face)
   {
-    stream << "(" << face.self_index << ", " << face.verts << ", " << face.normal << ")";
+    stream << "(self_index: " << face.self_index << ", verts: " << face.verts
+           << ", normal: " << face.normal << ")";
     return stream;
   }



More information about the Bf-blender-cvs mailing list