diff --git a/.vscode/settings.json b/.vscode/settings.json index 66ad6a97..257ac4dd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -104,6 +104,7 @@ "cwctype": "cpp", "memory_resource": "cpp", "scoped_allocator": "cpp", - "strstream": "cpp" + "strstream": "cpp", + "core": "cpp" } } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 6802e8f0..2aaf3238 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,6 +148,7 @@ if (BUILD_PYTHON_MODULE) ) # get all the files -dlls in the bin directory and copy them one by one to the pypi directory + message(STATUS "Copying dlls to ${TARGET_DLL_PYPI_DIR}") file(GLOB files ${CMAKE_BINARY_DIR}/bin/Release/*.dll) foreach(file ${files}) message(STATUS "Copying ${file} to ${TARGET_DLL_PYPI_DIR}") diff --git a/deps/eigen b/deps/eigen index 02bcf9b5..d791d488 160000 --- a/deps/eigen +++ b/deps/eigen @@ -1 +1 @@ -Subproject commit 02bcf9b5918d46016bc88e5e9abebb6caa5a80b7 +Subproject commit d791d48859c6fc7850c9fd5270d2b236c818068d diff --git a/deps/pybind11 b/deps/pybind11 index ab955f15..186df220 160000 --- a/deps/pybind11 +++ b/deps/pybind11 @@ -1 +1 @@ -Subproject commit ab955f158c0f34320d0e65048459a6495f62978e +Subproject commit 186df220fd06381944ded2f2e65f346d209d648a diff --git a/src/diffCheck/geometry/DFPointCloud.cc b/src/diffCheck/geometry/DFPointCloud.cc index b361379f..be5b63bb 100644 --- a/src/diffCheck/geometry/DFPointCloud.cc +++ b/src/diffCheck/geometry/DFPointCloud.cc @@ -120,16 +120,13 @@ namespace diffCheck::geometry this->Normals = cloud->Normals; } - std::vector DFPointCloud::ComputeDistance(const diffCheck::geometry::DFPointCloud &targetCloud, bool useAbs) + std::vector DFPointCloud::ComputeDistance(const diffCheck::geometry::DFPointCloud &targetCloud) { auto O3DSourcePointCloud = this->Cvt2O3DPointCloud(); auto targetCloudCopy = targetCloud; auto O3DTargetPointCloud = targetCloudCopy.Cvt2O3DPointCloud(); std::vector distances; distances = O3DSourcePointCloud->ComputePointCloudDistance(*O3DTargetPointCloud); - if (useAbs) - for (auto &dist : distances) - dist = std::abs(dist); return distances; } } \ No newline at end of file diff --git a/src/diffCheck/geometry/DFPointCloud.hh b/src/diffCheck/geometry/DFPointCloud.hh index 911ead69..3284900c 100644 --- a/src/diffCheck/geometry/DFPointCloud.hh +++ b/src/diffCheck/geometry/DFPointCloud.hh @@ -116,12 +116,11 @@ namespace diffCheck::geometry * It returns a vector of distances, one for each point in the source point cloud. * * @param target the target point cloud in format df - * @param useAbs if true, the absolute value of the distance is returned * @return std::vector the distance between the two point clouds * * @see https://github.com/isl-org/Open3D/blob/main/cpp/open3d/geometry/PointCloud.cpp */ - std::vector ComputeDistance(const DFPointCloud &targetCloud, bool useAbs = true); + std::vector ComputeDistance(const DFPointCloud &targetCloud); public: ///< Getters /// @brief Number of points in the point cloud diff --git a/src/diffCheckBindings.cc b/src/diffCheckBindings.cc index bee45d93..66729926 100644 --- a/src/diffCheckBindings.cc +++ b/src/diffCheckBindings.cc @@ -30,8 +30,7 @@ PYBIND11_MODULE(diffcheck_bindings, m) { .def(py::init, std::vector, std::vector>()) .def("compute_distance", &diffCheck::geometry::DFPointCloud::ComputeDistance, - py::arg("target_cloud"), - py::arg("is_abs") = true) + py::arg("target_cloud")) .def("compute_BoundingBox", &diffCheck::geometry::DFPointCloud::ComputeBoundingBox) .def("voxel_downsample", &diffCheck::geometry::DFPointCloud::VoxelDownsample, diff --git a/src/gh/examples/compute_distance.ghx b/src/gh/examples/compute_distance.ghx index 0073321e..91830fbb 100644 --- a/src/gh/examples/compute_distance.ghx +++ b/src/gh/examples/compute_distance.ghx @@ -49,10 +49,10 @@ - 32 - 75 + 205 + 67 - 1.5 + 1.2750001 @@ -650,7 +650,7 @@ - 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