Point Cloud Library (PCL)
1.3.1
|
GreedyProjectionTriangulation is an implementation of a greedy triangulation algorithm for 3D points based on local 2D projections. More...
#include <pcl/surface/gp3.h>
Classes | |
struct | doubleEdge |
Struct for storing the edges starting from a fringe point. More... | |
struct | nnAngle |
Struct for storing the angles to nearest neighbors. More... | |
Public Types | |
enum | { NONE = -1, FREE = 0, FRINGE = 1, BOUNDARY = 2, COMPLETED = 3 } |
typedef pcl::KdTree< PointInT > | KdTree |
typedef pcl::KdTree< PointInT > ::Ptr | KdTreePtr |
typedef pcl::PointCloud< PointInT > | PointCloudIn |
typedef PointCloudIn::Ptr | PointCloudInPtr |
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr |
Public Member Functions | |
GreedyProjectionTriangulation () | |
Empty constructor. | |
void | setMu (double mu) |
Set the multiplier of the nearest neighbor distance to obtain the final search radius for each point (this will make the algorithm adapt to different point densities in the cloud). | |
double | getMu () |
Get the nearest neighbor distance multiplier. | |
void | setMaximumNearestNeighbors (int nnn) |
Set the maximum number of nearest neighbors to be searched for. | |
int | getMaximumNearestNeighbors () |
Get the maximum number of nearest neighbors to be searched for. | |
void | setSearchRadius (double radius) |
Set the sphere radius that is to be used for determining the k-nearest neighbors used for triangulating. | |
double | getSearchRadius () |
Get the sphere radius used for determining the k-nearest neighbors. | |
void | setMinimumAngle (double minimum_angle) |
Set the minimum angle each triangle should have. | |
double | getMinimumAngle () |
Get the parameter for distance based weighting of neighbors. | |
void | setMaximumAngle (double maximum_angle) |
Set the maximum angle each triangle can have. | |
double | getMaximumAngle () |
Get the parameter for distance based weighting of neighbors. | |
void | setMaximumSurfaceAngle (double eps_angle) |
Don't consider points for triangulation if their normal deviates more than this value from the query point's normal. | |
double | getMaximumSurfaceAngle () |
Get the maximum surface angle. | |
void | setNormalConsistency (bool consistent) |
Set the flag for consistently oriented normals. | |
bool | getNormalConsistency () |
Get the flag for consistently oriented normals. | |
std::vector< int > | getPointStates () |
Get the state of each point after reconstruction. | |
std::vector< int > | getPartIDs () |
Get the ID of each point after reconstruction. | |
std::vector< int > | getSFN () |
Get the sfn list. | |
std::vector< int > | getFFN () |
Get the sfn list. | |
void | updateMesh (const PointCloudInConstPtr &update, pcl::PolygonMesh &output) |
update mesh when new point cloud is added without recreating mesh. | |
void | updateMesh (const PointCloudInConstPtr &update, pcl::PolygonMesh &output, pcl::TextureMesh &tex_mesh) |
update texture mesh when new point cloud is added without recreating mesh. | |
void | merge2Meshes (pcl::PolygonMesh &mesh1, pcl::PolygonMesh &mesh2, std::vector< int > state2, std::vector< int > sfn2, std::vector< int > ffn2) |
remove the triangles from the 1st mesh that have neighbors in the 2nd mesh | |
void | removeOverlapTriangles (pcl::PolygonMesh &mesh1, pcl::PolygonMesh &mesh2) |
remove the triangles from the 1st mesh that have neighbors in the 2nd mesh | |
void | reconstruct (pcl::PolygonMesh &output) |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()> | |
void | setSearchMethod (const KdTreePtr &tree) |
Provide a pointer to the search object. | |
KdTreePtr | getSearchMethod () |
Get a pointer to the search method used. |
GreedyProjectionTriangulation is an implementation of a greedy triangulation algorithm for 3D points based on local 2D projections.
It assumes locally smooth surfaces and relatively smooth transitions between areas with different point densities.
typedef pcl::KdTree<PointInT> pcl::GreedyProjectionTriangulation::KdTree |
Reimplemented from pcl::SurfaceReconstruction< PointInT >.
typedef pcl::KdTree<PointInT>::Ptr pcl::GreedyProjectionTriangulation::KdTreePtr |
Reimplemented from pcl::SurfaceReconstruction< PointInT >.
typedef pcl::PointCloud<PointInT> pcl::GreedyProjectionTriangulation::PointCloudIn |
anonymous enum |
pcl::GreedyProjectionTriangulation::GreedyProjectionTriangulation | ( | ) | [inline] |
std::vector<int> pcl::GreedyProjectionTriangulation::getFFN | ( | ) | [inline] |
double pcl::GreedyProjectionTriangulation::getMaximumAngle | ( | ) | [inline] |
int pcl::GreedyProjectionTriangulation::getMaximumNearestNeighbors | ( | ) | [inline] |
double pcl::GreedyProjectionTriangulation::getMaximumSurfaceAngle | ( | ) | [inline] |
double pcl::GreedyProjectionTriangulation::getMinimumAngle | ( | ) | [inline] |
double pcl::GreedyProjectionTriangulation::getMu | ( | ) | [inline] |
bool pcl::GreedyProjectionTriangulation::getNormalConsistency | ( | ) | [inline] |
std::vector<int> pcl::GreedyProjectionTriangulation::getPartIDs | ( | ) | [inline] |
std::vector<int> pcl::GreedyProjectionTriangulation::getPointStates | ( | ) | [inline] |
KdTreePtr pcl::SurfaceReconstruction::getSearchMethod | ( | ) | [inline, inherited] |
Get a pointer to the search method used.
Definition at line 86 of file reconstruction.h.
double pcl::GreedyProjectionTriangulation::getSearchRadius | ( | ) | [inline] |
std::vector<int> pcl::GreedyProjectionTriangulation::getSFN | ( | ) | [inline] |
void pcl::GreedyProjectionTriangulation::merge2Meshes | ( | pcl::PolygonMesh & | mesh1, |
pcl::PolygonMesh & | mesh2, | ||
std::vector< int > | state2, | ||
std::vector< int > | sfn2, | ||
std::vector< int > | ffn2 | ||
) |
void pcl::SurfaceReconstruction::reconstruct | ( | pcl::PolygonMesh & | output | ) | [inherited] |
Base method for surface reconstruction for all points given in <setInputCloud (), setIndices ()>
output | the resultant reconstructed surface model |
void pcl::GreedyProjectionTriangulation::removeOverlapTriangles | ( | pcl::PolygonMesh & | mesh1, |
pcl::PolygonMesh & | mesh2 | ||
) |
void pcl::GreedyProjectionTriangulation::setMaximumAngle | ( | double | maximum_angle | ) | [inline] |
void pcl::GreedyProjectionTriangulation::setMaximumNearestNeighbors | ( | int | nnn | ) | [inline] |
void pcl::GreedyProjectionTriangulation::setMaximumSurfaceAngle | ( | double | eps_angle | ) | [inline] |
Don't consider points for triangulation if their normal deviates more than this value from the query point's normal.
eps_angle | maximum surface angle |
void pcl::GreedyProjectionTriangulation::setMinimumAngle | ( | double | minimum_angle | ) | [inline] |
void pcl::GreedyProjectionTriangulation::setMu | ( | double | mu | ) | [inline] |
void pcl::GreedyProjectionTriangulation::setNormalConsistency | ( | bool | consistent | ) | [inline] |
void pcl::SurfaceReconstruction::setSearchMethod | ( | const KdTreePtr & | tree | ) | [inline, inherited] |
Provide a pointer to the search object.
tree | a pointer to the spatial search object. |
Definition at line 79 of file reconstruction.h.
void pcl::GreedyProjectionTriangulation::setSearchRadius | ( | double | radius | ) | [inline] |
void pcl::GreedyProjectionTriangulation::updateMesh | ( | const PointCloudInConstPtr & | update, |
pcl::PolygonMesh & | output | ||
) |
void pcl::GreedyProjectionTriangulation::updateMesh | ( | const PointCloudInConstPtr & | update, |
pcl::PolygonMesh & | output, | ||
pcl::TextureMesh & | tex_mesh | ||
) |