#include <QHull.h>
Public Types | |
typedef MeshType::Point | Point |
typedef MeshType::Scalar | Scalar |
typedef MeshType::FaceHandle | FaceHandle |
typedef MeshType::VertexHandle | VertexHandle |
typedef MeshType::HalfedgeHandle | HalfedgeHandle |
Public Member Functions | |
QHull (const std::vector< Vector3< real_t > > &pointCloud, const shared_ptr< MeshType > &mesh=make_shared< MeshType >()) | |
QHull (const std::vector< Point > &pointCloud, const shared_ptr< MeshType > &mesh=make_shared< MeshType >()) | |
uint_t | run () |
const shared_ptr< MeshType > & | meshPtr () const |
const MeshType & | mesh () const |
const std::vector< Point > & | getVisiblePoints (const FaceHandle fh) const |
void | enableDebugVTKOutput (const std::string &identifierPrefix="QHull", const std::string &baseFolder="vtk_out") |
void | disableDebugVTKOutput () |
Private Types | |
typedef OpenMesh::FPropHandleT< std::vector< Point > > | VisiblePointsPropertyHandle |
The generated convex mesh. More... | |
Private Member Functions | |
void | initMesh () |
bool | pointIsVisible (const FaceHandle fh, const Point &p) const |
Scalar | pointDistance (const FaceHandle fh, const Point &p) const |
void | createInitialSimplex () |
void | iteration () |
void | deleteVisibleFaces (const FaceHandle startFaceHandle, const Point &p) |
void | addNewFaces (const Point &p) |
template<typename InputIterator > | |
void | assignPointsToFaces (const std::vector< Point > &points, InputIterator facesBegin, InputIterator facesEnd) |
Private Attributes | |
std::vector< Point > | pointCloud_ |
shared_ptr< MeshType > | mesh_ |
The initial point cloud. More... | |
OpenMesh::PropertyManager< VisiblePointsPropertyHandle, MeshType > | visiblePoints_ |
std::priority_queue< FaceHandle, std::vector< FaceHandle >, QHullFaceSorter< MeshType > > | queue_ |
Property storing the points of a certain face. More... | |
std::vector< Point > | orphanPoints_ |
queue to prioritize faces More... | |
std::vector< HalfedgeHandle > | horizon_ |
Points getting orphaned during face removal. More... | |
std::vector< FaceHandle > | newFaces_ |
the new horizon More... | |
bool | writeDebugOutput_ |
new faces created in an iteration replacing the removed ones More... | |
shared_ptr< VTKMeshWriter< MeshType > > | meshWriter_ |
Should debug ouput be written? More... | |
shared_ptr< vtk::VTKOutput > | remainingPointsWriter_ |
Writes the current state of the mesh. More... | |
typedef MeshType::FaceHandle walberla::mesh::QHull< MeshType >::FaceHandle |
typedef MeshType::HalfedgeHandle walberla::mesh::QHull< MeshType >::HalfedgeHandle |
typedef MeshType::Point walberla::mesh::QHull< MeshType >::Point |
typedef MeshType::Scalar walberla::mesh::QHull< MeshType >::Scalar |
typedef MeshType::VertexHandle walberla::mesh::QHull< MeshType >::VertexHandle |
|
private |
The generated convex mesh.
walberla::mesh::QHull< MeshType >::QHull | ( | const std::vector< Vector3< real_t > > & | pointCloud, |
const shared_ptr< MeshType > & | mesh = make_shared< MeshType >() |
||
) |
walberla::mesh::QHull< MeshType >::QHull | ( | const std::vector< Point > & | pointCloud, |
const shared_ptr< MeshType > & | mesh = make_shared< MeshType >() |
||
) |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
void walberla::mesh::QHull< MeshType >::disableDebugVTKOutput |
void walberla::mesh::QHull< MeshType >::enableDebugVTKOutput | ( | const std::string & | identifierPrefix = "QHull< MeshType >" , |
const std::string & | baseFolder = "vtk_out" |
||
) |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inline |
|
inline |
|
inlineprivate |
|
inlineprivate |
uint_t walberla::mesh::QHull< MeshType >::run |
|
private |
Points getting orphaned during face removal.
|
private |
The initial point cloud.
|
private |
Should debug ouput be written?
|
private |
the new horizon
|
private |
queue to prioritize faces
|
private |
|
private |
Property storing the points of a certain face.
|
private |
Writes the current state of the mesh.
|
private |
|
private |
new faces created in an iteration replacing the removed ones