#include <convex_hull.h>
Public Types | |
typedef CHMesh::FaceIterator | CHFaceIterator |
typedef CHMesh::FacePointer | CHFacePointer |
typedef CHMesh::VertexIterator | CHVertexIterator |
typedef CHMesh::VertexPointer | CHVertexPointer |
typedef InputMesh::CoordType | CoordType |
typedef InputMesh::VertexIterator | InputVertexIterator |
typedef InputMesh::VertexPointer | InputVertexPointer |
typedef InputMesh::ScalarType | ScalarType |
Static Public Member Functions | |
static bool | ComputeConvexHull (InputMesh &mesh, CHMesh &convexHull) |
static void | ComputePointVisibility (InputMesh &m, CHMesh &visible, CoordType viewpoint, ScalarType logR=2) |
ComputePointVisibility Select the visible points in a point cloud, as viewed from a given viewpoint. It uses the Qhull implementation of che convex hull in the vcglibrary The algorithm used (Katz, Tal and Basri 2007) determines visibility without reconstructing a surface or estimating normals. A point is considered visible if its transformed point lies on the convex hull of a trasformed points cloud from the original mesh points. | |
Private Types | |
typedef std::pair < InputVertexPointer, ScalarType > | Pair |
Static Private Member Functions | |
static void | InitConvexHull (InputMesh &mesh, CHMesh &convexHull) |
Definition at line 39 of file convex_hull.h.
typedef CHMesh::FaceIterator vcg::tri::ConvexHull< InputMesh, CHMesh >::CHFaceIterator |
Definition at line 50 of file convex_hull.h.
typedef CHMesh::FacePointer vcg::tri::ConvexHull< InputMesh, CHMesh >::CHFacePointer |
Definition at line 51 of file convex_hull.h.
typedef CHMesh::VertexIterator vcg::tri::ConvexHull< InputMesh, CHMesh >::CHVertexIterator |
Definition at line 48 of file convex_hull.h.
typedef CHMesh::VertexPointer vcg::tri::ConvexHull< InputMesh, CHMesh >::CHVertexPointer |
Definition at line 49 of file convex_hull.h.
typedef InputMesh::CoordType vcg::tri::ConvexHull< InputMesh, CHMesh >::CoordType |
Definition at line 45 of file convex_hull.h.
typedef InputMesh::VertexIterator vcg::tri::ConvexHull< InputMesh, CHMesh >::InputVertexIterator |
Definition at line 47 of file convex_hull.h.
typedef InputMesh::VertexPointer vcg::tri::ConvexHull< InputMesh, CHMesh >::InputVertexPointer |
Definition at line 46 of file convex_hull.h.
typedef std::pair<InputVertexPointer, ScalarType> vcg::tri::ConvexHull< InputMesh, CHMesh >::Pair [private] |
Definition at line 55 of file convex_hull.h.
typedef InputMesh::ScalarType vcg::tri::ConvexHull< InputMesh, CHMesh >::ScalarType |
Definition at line 44 of file convex_hull.h.
static bool vcg::tri::ConvexHull< InputMesh, CHMesh >::ComputeConvexHull | ( | InputMesh & | mesh, |
CHMesh & | convexHull | ||
) | [inline, static] |
Return the convex hull of the input mesh using the Quickhull algorithm. For each vertex of the convex hull the algorithm stores the vertex index of the original mesh in attribute "indexInput".
"The quickhull algorithm for convex hulls" by C. Bradford Barber et al. ACM Transactions on Mathematical Software, Volume 22 Issue 4, Dec. 1996
Definition at line 170 of file convex_hull.h.
static void vcg::tri::ConvexHull< InputMesh, CHMesh >::ComputePointVisibility | ( | InputMesh & | m, |
CHMesh & | visible, | ||
CoordType | viewpoint, | ||
ScalarType | logR = 2 |
||
) | [inline, static] |
ComputePointVisibility Select the visible points in a point cloud, as viewed from a given viewpoint. It uses the Qhull implementation of che convex hull in the vcglibrary The algorithm used (Katz, Tal and Basri 2007) determines visibility without reconstructing a surface or estimating normals. A point is considered visible if its transformed point lies on the convex hull of a trasformed points cloud from the original mesh points.
m | The point cloud |
visible | The mesh that will contain the visible hull |
viewpoint | |
logR | Bounds the radius of the sphere used to select visible points. It is used to adjust the radius of the sphere (calculated as distance between the center and the farthest point from it) according to the following equation: radius = radius * pow(10,threshold); As the radius increases more points are marked as visible. Use a big threshold for dense point clouds, a small one for sparse clouds. |
Definition at line 361 of file convex_hull.h.
static void vcg::tri::ConvexHull< InputMesh, CHMesh >::InitConvexHull | ( | InputMesh & | mesh, |
CHMesh & | convexHull | ||
) | [inline, static, private] |
Definition at line 59 of file convex_hull.h.