[Bf-blender-cvs] [ad3dcb7bb97] newboolean: Got rid of clang-tidy errors.

Howard Trickey noreply at git.blender.org
Fri Jul 3 19:31:40 CEST 2020


Commit: ad3dcb7bb97c6b680dcb1c780a49d53e740b0293
Author: Howard Trickey
Date:   Fri Jul 3 13:31:01 2020 -0400
Branches: newboolean
https://developer.blender.org/rBad3dcb7bb97c6b680dcb1c780a49d53e740b0293

Got rid of clang-tidy errors.

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

M	release/scripts/addons
M	source/blender/blenlib/intern/boolean.cc
M	source/blender/blenlib/intern/delaunay_2d.cc
M	source/blender/blenlib/intern/mesh_intersect.cc
M	tests/gtests/blenlib/BLI_boolean_test.cc
M	tests/gtests/blenlib/BLI_delaunay_2d_test.cc
M	tests/gtests/blenlib/BLI_mesh_intersect_test.cc

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

diff --git a/release/scripts/addons b/release/scripts/addons
index 9128155de32..969e77eda1f 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 9128155de32592d84b08426a54ae1e56f02d4635
+Subproject commit 969e77eda1fe42088db5198d8fc18281ce5efb2b
diff --git a/source/blender/blenlib/intern/boolean.cc b/source/blender/blenlib/intern/boolean.cc
index 9589bec766e..aad80ccb5ec 100644
--- a/source/blender/blenlib/intern/boolean.cc
+++ b/source/blender/blenlib/intern/boolean.cc
@@ -74,9 +74,10 @@ class Edge {
 
   uint32_t hash() const
   {
+    constexpr uint32_t h1 = 33;
     uint32_t v0hash = DefaultHash<int>{}(v_[0]);
     uint32_t v1hash = DefaultHash<int>{}(v_[1]);
-    return v0hash ^ (v1hash * 33);
+    return v0hash ^ (v1hash * h1);
   }
 };
 
@@ -123,17 +124,12 @@ class TriMeshTopology {
   int other_tri_if_manifold(Edge e, int t) const
   {
     if (edge_tri_.contains(e)) {
-      auto p = edge_tri_.lookup(e);
+      auto *p = edge_tri_.lookup(e);
       if (p->size() == 2) {
         return ((*p)[0] == t) ? (*p)[1] : (*p)[0];
       }
-      else {
-        return -1;
-      }
-    }
-    else {
-      return -1;
     }
+    return -1;
   }
   const Vector<int> *edge_tris(Edge e) const
   {
@@ -178,7 +174,8 @@ TriMeshTopology::TriMeshTopology(const TriMesh *tm)
     std::cout << "After TriMeshTopology construction\n";
     for (auto item : edge_tri_.items()) {
       std::cout << "tris for edge " << item.key << ": " << *item.value << "\n";
-      if (false) {
+      constexpr bool print_stats = false;
+      if (print_stats) {
         edge_tri_.print_stats();
       }
     }
@@ -246,8 +243,9 @@ class PatchesInfo {
  public:
   explicit PatchesInfo(int ntri)
   {
+    constexpr int max_expected_patch_patch_incidences = 100;
     tri_patch_ = Array<int>(ntri, -1);
-    pp_edge_.reserve(30);
+    pp_edge_.reserve(max_expected_patch_patch_incidences);
   }
   int tri_patch(int t) const
   {
@@ -445,7 +443,7 @@ static PatchesInfo find_patches(const TriMesh &tm, const TriMeshTopology &tmtopo
               std::cout << "    e non-manifold case\n";
             }
             const Vector<int> *etris = tmtopo.edge_tris(e);
-            if (etris) {
+            if (etris != nullptr) {
               for (uint i = 0; i < etris->size(); ++i) {
                 int t_other = (*etris)[i];
                 if (t_other != tcand && pinfo.tri_is_assigned(t_other)) {
@@ -574,7 +572,8 @@ static int sort_tris_class(const IndexedTriangle &tri,
   mpq3 a0 = tm.vert[tri0.v0()];
   mpq3 a1 = tm.vert[tri0.v1()];
   mpq3 a2 = tm.vert[tri0.v2()];
-  bool rev, rev0;
+  bool rev;
+  bool rev0;
   int flapv0 = find_flap_vert(tri0, e, &rev0);
   int flapv = find_flap_vert(tri, e, &rev);
   if (dbg_level > 0) {
@@ -778,7 +777,8 @@ static void find_cells_from_edge(const TriMesh &tm,
     int rnext_index = edge_patches[inext];
     Patch &r = pinfo.patch(r_index);
     Patch &rnext = pinfo.patch(rnext_index);
-    bool r_flipped, rnext_flipped;
+    bool r_flipped;
+    bool rnext_flipped;
     find_flap_vert(tm.tri[sorted_tris[i]], e, &r_flipped);
     find_flap_vert(tm.tri[sorted_tris[inext]], e, &rnext_flipped);
     int *r_follow_cell = r_flipped ? &r.cell_below : &r.cell_above;
@@ -941,7 +941,7 @@ static int find_ambient_cell(const TriMesh &tm,
   }
   int *p_sorted_dummy = std::find(sorted_tris.begin(), sorted_tris.end(), dummy_tri);
   BLI_assert(p_sorted_dummy != sorted_tris.end());
-  int dummy_index = p_sorted_dummy - sorted_tris.begin();
+  int dummy_index = static_cast<int>(p_sorted_dummy - sorted_tris.begin());
   int prev_tri = (dummy_index == 0) ? sorted_tris[sorted_tris.size() - 1] :
                                       sorted_tris[dummy_index - 1];
   int next_tri = (dummy_index == static_cast<int>(sorted_tris.size() - 1)) ?
@@ -1414,10 +1414,8 @@ static bool segs_overlap(const mpq3 av1, const mpq3 av2, const mpq3 bv1, const m
     if (r >= 1 || s <= 0) {
       return false;
     }
-    else {
-      /* We know intersection interval starts strictly before av2 and ends strictly after av1. */
-      return r != s;
-    }
+    /* We know intersection interval starts strictly before av2 and ends strictly after av1. */
+    return r != s;
   }
   return false;
 }
@@ -1765,7 +1763,7 @@ static Array<bool> find_dissolve_verts(const PolyMesh &pm_out,
       }
     }
   }
-  if (r_count_dissolve) {
+  if (r_count_dissolve != nullptr) {
     *r_count_dissolve = count;
   }
   return dissolve;
diff --git a/source/blender/blenlib/intern/delaunay_2d.cc b/source/blender/blenlib/intern/delaunay_2d.cc
index 090c0bb0447..f646412a25a 100644
--- a/source/blender/blenlib/intern/delaunay_2d.cc
+++ b/source/blender/blenlib/intern/delaunay_2d.cc
@@ -36,12 +36,7 @@ namespace blender::meshintersect {
 
 template<typename T> T math_abs(const T v)
 {
-  if (v < 0) {
-    return -v;
-  }
-  else {
-    return v;
-  }
+  return (v < 0) ? -v : v;
 }
 
 template<> mpq_class math_abs<mpq_class>(const mpq_class v)
@@ -218,10 +213,7 @@ template<typename T> class CDT_state {
   int face_edge_offset; /* Input edge id where we start numbering the face edges. */
   T epsilon;            /* How close before coords considered equal. */
 
-  explicit CDT_state(int num_input_verts,
-                     int num_input_edges,
-                     int num_input_faces,
-                     const T epsilon);
+  explicit CDT_state(int num_input_verts, int num_input_edges, int num_input_faces, T epsilon);
   ~CDT_state()
   {
   }
@@ -252,7 +244,7 @@ template<typename T> CDTArrangement<T>::~CDTArrangement()
 #define DEBUG_CDT
 #ifdef DEBUG_CDT
 /* Some functions to aid in debugging. */
-template<typename T> const std::string vertname(const CDTVert<T> *v)
+template<typename T> std::string vertname(const CDTVert<T> *v)
 {
   std::stringstream ss;
   ss << "[" << v->index << "]";
@@ -260,14 +252,15 @@ template<typename T> const std::string vertname(const CDTVert<T> *v)
 }
 
 /* Abbreviated pointer value is easier to read in dumps. */
-static const std::string trunc_ptr(const void *p)
+static std::string trunc_ptr(const void *p)
 {
+  constexpr int TRUNC_PTR_MASK = 0xFFFF;
   std::stringstream ss;
-  ss << std::hex << (POINTER_AS_INT(p) & 0xFFFF);
+  ss << std::hex << (POINTER_AS_INT(p) & TRUNC_PTR_MASK);
   return ss.str();
 }
 
-template<typename T> const std::string sename(const SymEdge<T> *se)
+template<typename T> std::string sename(const SymEdge<T> *se)
 {
   std::stringstream ss;
   ss << "{" << trunc_ptr(se) << "}";
@@ -292,15 +285,13 @@ template<typename T> std::ostream &operator<<(std::ostream &os, const SymEdge<T>
   return os;
 }
 
-template<typename T> const std::string short_se_dump(const SymEdge<T> *se)
+template<typename T> std::string short_se_dump(const SymEdge<T> *se)
 {
   if (se == nullptr) {
     return std::string("NULL");
   }
-  else {
-    return vertname(se->vert) +
-           (se->next == nullptr ? std::string("[NULL]") : vertname(se->next->vert));
-  }
+  return vertname(se->vert) +
+         (se->next == nullptr ? std::string("[NULL]") : vertname(se->next->vert));
 }
 
 template<typename T> std::ostream &operator<<(std::ostream &os, const CDT_state<T> &cdt_state)
@@ -317,6 +308,7 @@ template<typename T> std::ostream &operator<<(std::ostream &os, const CDT_state<
     }
     const SymEdge<T> *se = v->symedge;
     int cnt = 0;
+    constexpr int print_count_limit = 25;
     if (se) {
       os << "  edges out:\n";
       do {
@@ -333,7 +325,7 @@ template<typename T> std::ostream &operator<<(std::ostream &os, const CDT_state<
            << ", se=" << trunc_ptr(se) << ")\n";
         se = se->rot;
         cnt++;
-      } while (se != v->symedge && cnt < 25);
+      } while (se != v->symedge && cnt < print_count_limit);
       os << "\n";
     }
   }
@@ -370,6 +362,7 @@ template<typename T> void cdt_draw(const std::string &label, const CDTArrangemen
   constexpr const char *drawfile = "/tmp/debug_draw.html";
   constexpr int max_draw_width = 1800;
   constexpr int max_draw_height = 1600;
+  constexpr double margin_expand = 0.05;
   constexpr int thin_line = 1;
   constexpr int thick_line = 4;
   constexpr int vert_radius = 3;
@@ -379,8 +372,8 @@ template<typename T> void cdt_draw(const std::string &label, const CDTArrangemen
   if (cdt.verts.size() == 0) {
     return;
   }
-  vec2<double> vmin(1e10, 1e10);
-  vec2<double> vmax(-1e10, -1e10);
+  vec2<double> vmin(DBL_MAX, DBL_MAX);
+  vec2<double> vmax(-DBL_MAX, -DBL_MAX);
   for (const CDTVert<T> *v : cdt.verts) {
     for (int i = 0; i < 2; ++i) {
       double dvi = math_to_double(v->co[i]);
@@ -392,7 +385,7 @@ template<typename T> void cdt_draw(const std::string &label, const CDTArrangemen
       }
     }
   }
-  double draw_margin = ((vmax.x - vmin.x) + (vmax.y - vmin.y)) * 0.05;
+  double draw_margin = ((vmax.x - vmin.x) + (vmax.y - vmin.y)) * margin_expand;
   double minx = vmin.x - draw_margin;
   double maxx = vmax.x + draw_margin;
   double miny = vmin.y - draw_margin;
@@ -446,7 +439,7 @@ template<typename T> void cdt_draw(const std::string &label, const CDTArrangemen
     f << "  <title>" << vertname(u) << vertname(v) << "</title>\n";
     f << "</line>\n";
     if (draw_edge_labels) {
-      f << "<text x=\"" << SX(0.5 * (uco[0] + vco[0])) << "\" y=\"" << SY(0.5 * (uco[1] + vco[1]))
+      f << "<text x=\"" << SX((uco[0] + vco[0]) / 2) << "\" y=\"" << SY((uco[1] + vco[1]) / 2)
         << "\" font-size=\"small\">";
       f << vertname(u) << vertname(v) << sename(&e->symedges[0]) << sename(&e->symedges[1])
         << "</text>\n";
@@ -541,15 +534,12 @@ template<typename T> void CDTArrangement<T>::reserve(int num_verts, int num_edge
 {
   /* These reserves are just guesses; OK if they aren't exactly right since vectors will resize. */
   this->verts.reserve(2 * num_verts);
-  this->edges.reserve(3 * num_verts + 2 * num_edges + 5 * num_faces);
+  this->edges.reserve(3 * num_verts + 2 * num_edges + 3 * 2 * num_faces);
   this->faces.reserve(2 * num_verts + 2 * num_edges + 2 * num_faces);
 }
 
 template<typename T>
-CDT_state<T>::CDT_state(int num_input_verts,
-                        int num_input_edges,
-                        int num_input_faces,
-                      

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list