Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 1.64 KB

File metadata and controls

32 lines (24 loc) · 1.64 KB

\mainpage

This is a minimal and simple implementation of finding closest point to a Polygonmesh.

We are using native format for storing polygonmesh data. A simple vector to store all the vertices and then another vector to store polygon data. For simplicity we are using triangle based mesh.

Libraries used:

  • Eigen3 is used as maths library.
  • r-tree implementation is taken from Boost.
  • Tbb can be used for parallizing few of the operations.
  • Additionally we are using googletests frameworks for unit testing.
  • DOxygen for generating documentation.

To build the project, you might need to install [CMake] and Boost first. While building, CMake downloads googletest repo and build it. So you will need active internet connection.

Then build steps are:

  • cd into build directory located inside root directory of project ClosestPoint.
  • Run> cmake .. && make -j4 install
  • It should build and put all the binaries in build/bin folder.
  • You can simply run the executable> ./ClosestPoint and you can run tests with command> ./ClosestPointTests
  • Documentation is here> ClosestPoint/build/docs/html/index.html

The project use Boost's r-tree implementation as a acceleration structure for closest point queries. We first find some closest triangles to the query point using the r-tree, then we check these triangles to locate the actual closest point.

Location of closest point is being stored as three items: [Polygon index, vertex indices inside this polygon, barycentric coordinates with respect to these vertices], which can be used as required to evaluate actual point position, surface normal etc.