[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