From 1301b582965eb543d68cdea6eec40af35d7adbee Mon Sep 17 00:00:00 2001 From: Benjamin Nauck Date: Thu, 27 Mar 2025 19:01:33 +0100 Subject: [PATCH] MeshPart: Use std::numeric_limits and std::numbers instead of defines --- src/Mod/MeshPart/App/CurveProjector.cpp | 14 +++++++------- src/Mod/MeshPart/App/CurveProjector.h | 3 ++- src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp | 9 +++------ src/Mod/MeshPart/App/PreCompiled.h | 1 + src/Mod/MeshPart/Gui/CrossSections.cpp | 6 +++--- src/Mod/MeshPart/Gui/PreCompiled.h | 1 - src/Mod/MeshPart/Gui/Tessellation.cpp | 4 ++-- 7 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/Mod/MeshPart/App/CurveProjector.cpp b/src/Mod/MeshPart/App/CurveProjector.cpp index ceab83bff4..db9926b50d 100644 --- a/src/Mod/MeshPart/App/CurveProjector.cpp +++ b/src/Mod/MeshPart/App/CurveProjector.cpp @@ -180,7 +180,7 @@ void CurveProjectorShape::projectCurve(const TopoDS_Edge& aEdge, / ((cP1 - cP0) * (cP1 - cP0)); // is the Point on the Edge of the facet? if (l < 0.0 || l > 1.0) { - PointOnEdge[i] = Base::Vector3f(FLOAT_MAX, 0, 0); + PointOnEdge[i] = Base::Vector3f(std::numeric_limits::max(), 0, 0); } else { cSplitPoint = (1 - l) * cP0 + l * cP1; @@ -191,11 +191,11 @@ void CurveProjectorShape::projectCurve(const TopoDS_Edge& aEdge, // no intersection } else if (Alg.NbPoints() == 0) { - PointOnEdge[i] = Base::Vector3f(FLOAT_MAX, 0, 0); + PointOnEdge[i] = Base::Vector3f(std::numeric_limits::max(), 0, 0); // more the one intersection (@ToDo) } else if (Alg.NbPoints() > 1) { - PointOnEdge[i] = Base::Vector3f(FLOAT_MAX, 0, 0); + PointOnEdge[i] = Base::Vector3f(std::numeric_limits::max(), 0, 0); Base::Console().Log("MeshAlgos::projectCurve(): More then one intersection in " "Facet %lu, Edge %d\n", uCurFacetIdx, @@ -234,7 +234,7 @@ bool CurveProjectorShape::findStartPoint(const MeshKernel& MeshK, MeshCore::FacetIndex& FaceIndex) { Base::Vector3f TempResultPoint; - float MinLength = FLOAT_MAX; + float MinLength = std::numeric_limits::max(); bool bHit = false; // go through the whole Mesh @@ -363,7 +363,7 @@ bool CurveProjectorSimple::findStartPoint(const MeshKernel& MeshK, MeshCore::FacetIndex& FaceIndex) { Base::Vector3f TempResultPoint; - float MinLength = FLOAT_MAX; + float MinLength = std::numeric_limits::max(); bool bHit = false; // go through the whole Mesh @@ -465,11 +465,11 @@ void CurveProjectorWithToolMesh::makeToolMesh(const TopoDS_Edge& aEdge, // build up the new mesh - Base::Vector3f lp(FLOAT_MAX, 0, 0), ln, p1, p2, p3, p4, p5, p6; + Base::Vector3f lp(std::numeric_limits::max(), 0, 0), ln, p1, p2, p3, p4, p5, p6; float ToolSize = 0.2f; for (const auto& It2 : LineSegs) { - if (lp.x != FLOAT_MAX) { + if (lp.x != std::numeric_limits::max()) { p1 = lp + (ln * (-ToolSize)); p2 = lp + (ln * ToolSize); p3 = lp; diff --git a/src/Mod/MeshPart/App/CurveProjector.h b/src/Mod/MeshPart/App/CurveProjector.h index f2c84e4c2b..d8fd6386d1 100644 --- a/src/Mod/MeshPart/App/CurveProjector.h +++ b/src/Mod/MeshPart/App/CurveProjector.h @@ -66,7 +66,8 @@ public: std::hash hasher; return hasher(x) < hasher(y); #else - return x.HashCode(INT_MAX - 1) < y.HashCode(INT_MAX - 1); + constexpr int max = std::numeric_limits::max(); + return x.HashCode(max - 1) < y.HashCode(max - 1); #endif } }; diff --git a/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp b/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp index 1071e0c9c8..4c73f3f651 100644 --- a/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp +++ b/src/Mod/MeshPart/App/MeshFlatteningLscmRelax.cpp @@ -26,14 +26,11 @@ #include #include #include +#include #include #include #endif -#ifndef M_PI -#define M_PI 3.14159265358979323846f -#endif - #include #include "MeshFlatteningLscmRelax.h" @@ -649,7 +646,7 @@ void LscmRelax::rotate_by_min_bound_area() // rotate vector by 90 degree and find min area for (int i = 0; i < n + 1; i++ ) { - phi = i * M_PI / n; + phi = i * std::numbers::pi / n; Eigen::VectorXd x_proj = this->flat_vertices.transpose() * Vector2(std::cos(phi), std::sin(phi)); Eigen::VectorXd y_proj = this->flat_vertices.transpose() * Vector2(-std::sin(phi), std::cos(phi)); double x_distance = x_proj.maxCoeff() - x_proj.minCoeff(); @@ -663,7 +660,7 @@ void LscmRelax::rotate_by_min_bound_area() } } Eigen::Matrix rot; - min_phi += x_dominant * M_PI / 2; + min_phi += x_dominant * std::numbers::pi / 2; rot << std::cos(min_phi), std::sin(min_phi), -std::sin(min_phi), std::cos(min_phi); this->flat_vertices = rot * this->flat_vertices; } diff --git a/src/Mod/MeshPart/App/PreCompiled.h b/src/Mod/MeshPart/App/PreCompiled.h index 7c1101f012..6b867c5e80 100644 --- a/src/Mod/MeshPart/App/PreCompiled.h +++ b/src/Mod/MeshPart/App/PreCompiled.h @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include diff --git a/src/Mod/MeshPart/Gui/CrossSections.cpp b/src/Mod/MeshPart/Gui/CrossSections.cpp index 01ba18888e..2ba73eeeac 100644 --- a/src/Mod/MeshPart/Gui/CrossSections.cpp +++ b/src/Mod/MeshPart/Gui/CrossSections.cpp @@ -22,7 +22,6 @@ #include "PreCompiled.h" #ifndef _PreComp_ -#include #include #include @@ -179,9 +178,10 @@ CrossSections::CrossSections(const Base::BoundBox3d& bb, QWidget* parent, Qt::Wi ui->setupUi(this); setupConnections(); - ui->position->setRange(-DBL_MAX, DBL_MAX); + constexpr double max = std::numeric_limits::max(); + ui->position->setRange(-max, max); ui->position->setUnit(Base::Unit::Length); - ui->distance->setRange(0, DBL_MAX); + ui->distance->setRange(0, max); ui->distance->setUnit(Base::Unit::Length); ui->spinEpsilon->setMinimum(0.0001); vp = new ViewProviderCrossSections(); diff --git a/src/Mod/MeshPart/Gui/PreCompiled.h b/src/Mod/MeshPart/Gui/PreCompiled.h index 7b8b8dda80..408fcd88ed 100644 --- a/src/Mod/MeshPart/Gui/PreCompiled.h +++ b/src/Mod/MeshPart/Gui/PreCompiled.h @@ -34,7 +34,6 @@ #ifdef _PreComp_ // STL -#include #include // Qt Toolkit diff --git a/src/Mod/MeshPart/Gui/Tessellation.cpp b/src/Mod/MeshPart/Gui/Tessellation.cpp index f063bd91be..c726659bbe 100644 --- a/src/Mod/MeshPart/Gui/Tessellation.cpp +++ b/src/Mod/MeshPart/Gui/Tessellation.cpp @@ -71,11 +71,11 @@ Tessellation::Tessellation(QWidget* parent) relative = handle->GetBool("RelativeLinearDeflection", relative); ui->relativeDeviation->setChecked(relative); - ui->spinSurfaceDeviation->setMaximum(INT_MAX); + ui->spinSurfaceDeviation->setMaximum(std::numeric_limits::max()); ui->spinSurfaceDeviation->setValue(value); ui->spinAngularDeviation->setValue(angle); - ui->spinMaximumEdgeLength->setRange(0, INT_MAX); + ui->spinMaximumEdgeLength->setRange(0, std::numeric_limits::max()); ui->comboFineness->setCurrentIndex(2); onComboFinenessCurrentIndexChanged(2);