This project aims to implement efficient online queries on given triangular mesh.
Note that all the following queries can be done on the fly.
-
Adding triangles to a mesh.
-
Finding the type of the mesh.
-
Finding all the boundary edges of a mesh.
-
Finding the number of connected components in a mesh.
-
Finding the points, edges, edge neighbours, and vertex neighbours of triangles.
-
Finding the incident triangles, incident edges and adjacent points of a point.
-
Finding the triangles incident to an edge.
-
Finding whether two triangles are connected in the mesh.
-
Finding the maximum diameter of any component (maximum number of triangles on a shortest path between two triangles)
-
Finding the centroid of the largest component which contains a given point.
-
Finding the closest component to the largest component which contains a given point.