Skip to content
Snippets Groups Projects
Commit 9e07f64e authored by Tom Fischer's avatar Tom Fischer
Browse files

Prevent creating temporary object for calling grid.getNearestPoint().

parent beffa1ce
No related branches found
No related tags found
No related merge requests found
...@@ -153,8 +153,7 @@ float GeoMapper::getDemElevation(GeoLib::Point const& pnt) const ...@@ -153,8 +153,7 @@ float GeoMapper::getDemElevation(GeoLib::Point const& pnt) const
double GeoMapper::getMeshElevation(double x, double y, double min_val, double max_val) const double GeoMapper::getMeshElevation(double x, double y, double min_val, double max_val) const
{ {
double coords[3] = {x,y,0}; const MeshLib::Node* pnt = _grid->getNearestPoint(MathLib::Point3d{{{x,y,0}}});
const MeshLib::Node* pnt = _grid->getNearestPoint(coords);
const std::vector<MeshLib::Element*> elements (_mesh->getNode(pnt->getID())->getElements()); const std::vector<MeshLib::Element*> elements (_mesh->getNode(pnt->getID())->getElements());
GeoLib::Point* intersection (nullptr); GeoLib::Point* intersection (nullptr);
......
...@@ -74,7 +74,7 @@ std::vector<std::size_t> MeshNodeSearcher::getMeshNodeIDs(GeoLib::GeoObject cons ...@@ -74,7 +74,7 @@ std::vector<std::size_t> MeshNodeSearcher::getMeshNodeIDs(GeoLib::GeoObject cons
boost::optional<std::size_t> MeshNodeSearcher::getMeshNodeIDForPoint(GeoLib::Point const& pnt) const boost::optional<std::size_t> MeshNodeSearcher::getMeshNodeIDForPoint(GeoLib::Point const& pnt) const
{ {
const MeshLib::Node* found = _mesh_grid.getNearestPoint(pnt.getCoords()); const MeshLib::Node* found = _mesh_grid.getNearestPoint(pnt);
if (found) if (found)
return found->getID(); return found->getID();
else else
......
...@@ -59,7 +59,7 @@ void testMeshGridAlgorithm(MeshLib::Mesh const*const mesh, ...@@ -59,7 +59,7 @@ void testMeshGridAlgorithm(MeshLib::Mesh const*const mesh,
INFO ("[MeshGridAlgorithm] searching %d points ...", pnts_for_search.size()); INFO ("[MeshGridAlgorithm] searching %d points ...", pnts_for_search.size());
clock_t start = clock(); clock_t start = clock();
for (size_t k(0); k<n_pnts_for_search; k++) { for (size_t k(0); k<n_pnts_for_search; k++) {
MeshLib::Node const* node(mesh_grid.getNearestPoint(pnts_for_search[k]->getCoords())); MeshLib::Node const* node(mesh_grid.getNearestPoint(*pnts_for_search[k]));
idx_found_nodes.push_back(node->getID()); idx_found_nodes.push_back(node->getID());
} }
clock_t stop = clock(); clock_t stop = clock();
...@@ -83,7 +83,7 @@ void testMeshGridAlgorithm(MeshLib::Mesh const*const mesh, ...@@ -83,7 +83,7 @@ void testMeshGridAlgorithm(MeshLib::Mesh const*const mesh,
INFO ("[MeshGridAlgorithm] searching %d points ...", pnts_for_search.size()); INFO ("[MeshGridAlgorithm] searching %d points ...", pnts_for_search.size());
clock_t start = clock(); clock_t start = clock();
for (size_t k(0); k<n_pnts_for_search; k++) { for (size_t k(0); k<n_pnts_for_search; k++) {
MeshLib::Node const* node(mesh_grid.getNearestPoint(pnts_for_search[k]->getCoords())); MeshLib::Node const* node(mesh_grid.getNearestPoint(pnts_for_search[k]));
idx_found_nodes.push_back(node->getID()); idx_found_nodes.push_back(node->getID());
} }
clock_t stop = clock(); clock_t stop = clock();
...@@ -138,7 +138,7 @@ int main(int argc, char *argv[]) ...@@ -138,7 +138,7 @@ int main(int argc, char *argv[])
std::vector<GeoLib::Point*> pnts_for_search; std::vector<GeoLib::Point*> pnts_for_search;
unsigned n(std::min(static_cast<unsigned>(nodes.size()), number_arg.getValue())); unsigned n(std::min(static_cast<unsigned>(nodes.size()), number_arg.getValue()));
for (size_t k(0); k<n; k++) { for (size_t k(0); k<n; k++) {
pnts_for_search.push_back(new GeoLib::Point(nodes[k]->getCoords())); pnts_for_search.push_back(new GeoLib::Point(nodes[k]));
} }
std::vector<size_t> idx_found_nodes; std::vector<size_t> idx_found_nodes;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment