From c01306440aac9180942ff11d904acd4806e0cd8b Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 19 Nov 2013 18:11:46 +0100 Subject: [PATCH] + fix possible endless loop in mesh grid, allow to set an array of points to the kernel --- src/Mod/Mesh/App/Core/Grid.cpp | 21 +++++++++++---------- src/Mod/Points/App/Points.h | 2 ++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/Mod/Mesh/App/Core/Grid.cpp b/src/Mod/Mesh/App/Core/Grid.cpp index cb93d40e0..57f63280f 100644 --- a/src/Mod/Mesh/App/Core/Grid.cpp +++ b/src/Mod/Mesh/App/Core/Grid.cpp @@ -432,8 +432,9 @@ void MeshGrid::SearchNearestFromPoint (const Base::Vector3f &rclPt, std::set(_ulCtGridsX, std::max(_ulCtGridsY, _ulCtGridsZ)); unsigned long ulLevel = 0; - while (raclInd.size() == 0) + while (raclInd.empty() && ulLevel <= ulMaxLevel) GetHull(ulX, ulY, ulZ, ulLevel++, raclInd); GetHull(ulX, ulY, ulZ, ulLevel, raclInd); } @@ -444,8 +445,8 @@ void MeshGrid::SearchNearestFromPoint (const Base::Vector3f &rclPt, std::set= 0) { for (unsigned long i = 0; i < _ulCtGridsY; i++) { @@ -472,8 +473,8 @@ void MeshGrid::SearchNearestFromPoint (const Base::Vector3f &rclPt, std::set= 0) { for (unsigned long i = 0; i < _ulCtGridsX; i++) { @@ -500,8 +501,8 @@ void MeshGrid::SearchNearestFromPoint (const Base::Vector3f &rclPt, std::set= 0) { for (unsigned long i = 0; i < _ulCtGridsX; i++) { diff --git a/src/Mod/Points/App/Points.h b/src/Mod/Points/App/Points.h index b04257207..cdd62cd97 100644 --- a/src/Mod/Points/App/Points.h +++ b/src/Mod/Points/App/Points.h @@ -79,6 +79,8 @@ public: { return this->_Points; } const std::vector& getBasicPoints() const { return this->_Points; } + void setBasicPoints(const std::vector& pts) + { this->_Points = pts; } void getFaces(std::vector &Points,std::vector &Topo, float Accuracy, uint16_t flags=0) const;