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. | |
| struct | nnAngle |
| Struct for storing the angles to nearest neighbors. | |
Public Types | |
| enum | GP3Type { NONE = -1, FREE = 0, FRINGE = 1, BOUNDARY = 2, COMPLETED = 3 } |
| typedef boost::shared_ptr < GreedyProjectionTriangulation < PointInT > > | Ptr |
| typedef boost::shared_ptr < const GreedyProjectionTriangulation < PointInT > > | ConstPtr |
| 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 () const |
| Get the nearest neighbor distance multiplier. | |
| void | setMaximumNearestNeighbors (int nnn) |
| Set the maximum number of nearest neighbors to be searched for. | |
| int | getMaximumNearestNeighbors () const |
| 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 () const |
| 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 () const |
| Get the parameter for distance based weighting of neighbors. | |
| void | setMaximumAngle (double maximum_angle) |
| Set the maximum angle each triangle can have. | |
| double | getMaximumAngle () const |
| 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 () const |
| Get the maximum surface angle. | |
| void | setNormalConsistency (bool consistent) |
| Set the flag if the input normals are oriented consistently. | |
| bool | getNormalConsistency () const |
| Get the flag for consistently oriented normals. | |
| void | setConsistentVertexOrdering (bool consistent_ordering) |
| Set the flag to order the resulting triangle vertices consistently (positive direction around normal). | |
| bool | getConsistentVertexOrdering () const |
| Get the flag signaling consistently ordered triangle vertices. | |
| std::vector< int > | getPointStates () const |
| Get the state of each point after reconstruction. | |
| std::vector< int > | getPartIDs () const |
| Get the ID of each point after reconstruction. | |
| std::vector< int > | getSFN () const |
| Get the sfn list. | |
| std::vector< int > | getFFN () const |
| Get the ffn list. | |
Protected Attributes | |
| double | mu_ |
| The nearest neighbor distance multiplier to obtain the final search radius. | |
| double | search_radius_ |
| The nearest neighbors search radius for each point and the maximum edge length. | |
| int | nnn_ |
| The maximum number of nearest neighbors accepted by searching. | |
| double | minimum_angle_ |
| The preferred minimum angle for the triangles. | |
| double | maximum_angle_ |
| The maximum angle for the triangles. | |
| double | eps_angle_ |
| Maximum surface angle. | |
| bool | consistent_ |
| Set this to true if the normals of the input are consistently oriented. | |
| bool | consistent_ordering_ |
| Set this to true if the output triangle vertices should be consistently oriented. | |
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.
Definition at line 138 of file gp3.h.
| typedef boost::shared_ptr<const GreedyProjectionTriangulation<PointInT> > pcl::GreedyProjectionTriangulation< PointInT >::ConstPtr |
Reimplemented from pcl::MeshConstruction< PointInT >.
| typedef pcl::KdTree<PointInT> pcl::GreedyProjectionTriangulation< PointInT >::KdTree |
Reimplemented from pcl::PCLSurfaceBase< PointInT >.
| typedef pcl::KdTree<PointInT>::Ptr pcl::GreedyProjectionTriangulation< PointInT >::KdTreePtr |
Reimplemented from pcl::PCLSurfaceBase< PointInT >.
| typedef pcl::PointCloud<PointInT> pcl::GreedyProjectionTriangulation< PointInT >::PointCloudIn |
| typedef PointCloudIn::ConstPtr pcl::GreedyProjectionTriangulation< PointInT >::PointCloudInConstPtr |
| typedef PointCloudIn::Ptr pcl::GreedyProjectionTriangulation< PointInT >::PointCloudInPtr |
| typedef boost::shared_ptr<GreedyProjectionTriangulation<PointInT> > pcl::GreedyProjectionTriangulation< PointInT >::Ptr |
Reimplemented from pcl::MeshConstruction< PointInT >.
| enum pcl::GreedyProjectionTriangulation::GP3Type |
| pcl::GreedyProjectionTriangulation< PointInT >::GreedyProjectionTriangulation | ( | ) | [inline] |
| bool pcl::GreedyProjectionTriangulation< PointInT >::getConsistentVertexOrdering | ( | ) | const [inline] |
Get the flag signaling consistently ordered triangle vertices.
Definition at line 289 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::consistent_ordering_.
| std::vector<int> pcl::GreedyProjectionTriangulation< PointInT >::getFFN | ( | ) | const [inline] |
| double pcl::GreedyProjectionTriangulation< PointInT >::getMaximumAngle | ( | ) | const [inline] |
Get the parameter for distance based weighting of neighbors.
Definition at line 256 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::maximum_angle_.
| int pcl::GreedyProjectionTriangulation< PointInT >::getMaximumNearestNeighbors | ( | ) | const [inline] |
Get the maximum number of nearest neighbors to be searched for.
Definition at line 223 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::nnn_.
| double pcl::GreedyProjectionTriangulation< PointInT >::getMaximumSurfaceAngle | ( | ) | const [inline] |
Get the maximum surface angle.
Definition at line 268 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::eps_angle_.
| double pcl::GreedyProjectionTriangulation< PointInT >::getMinimumAngle | ( | ) | const [inline] |
Get the parameter for distance based weighting of neighbors.
Definition at line 245 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::minimum_angle_.
| double pcl::GreedyProjectionTriangulation< PointInT >::getMu | ( | ) | const [inline] |
Get the nearest neighbor distance multiplier.
Definition at line 213 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::mu_.
| bool pcl::GreedyProjectionTriangulation< PointInT >::getNormalConsistency | ( | ) | const [inline] |
Get the flag for consistently oriented normals.
Definition at line 278 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::consistent_.
| std::vector<int> pcl::GreedyProjectionTriangulation< PointInT >::getPartIDs | ( | ) | const [inline] |
| std::vector<int> pcl::GreedyProjectionTriangulation< PointInT >::getPointStates | ( | ) | const [inline] |
| double pcl::GreedyProjectionTriangulation< PointInT >::getSearchRadius | ( | ) | const [inline] |
Get the sphere radius used for determining the k-nearest neighbors.
Definition at line 234 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::search_radius_.
| std::vector<int> pcl::GreedyProjectionTriangulation< PointInT >::getSFN | ( | ) | const [inline] |
| void pcl::GreedyProjectionTriangulation< PointInT >::setConsistentVertexOrdering | ( | bool | consistent_ordering | ) | [inline] |
Set the flag to order the resulting triangle vertices consistently (positive direction around normal).
| [in] | consistent_ordering | set it to true if triangle vertices should be ordered consistently |
Definition at line 285 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::consistent_ordering_.
| void pcl::GreedyProjectionTriangulation< PointInT >::setMaximumAngle | ( | double | maximum_angle | ) | [inline] |
Set the maximum angle each triangle can have.
| [in] | maximum_angle | the maximum angle each triangle can have |
Definition at line 252 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::maximum_angle_.
| void pcl::GreedyProjectionTriangulation< PointInT >::setMaximumNearestNeighbors | ( | int | nnn | ) | [inline] |
Set the maximum number of nearest neighbors to be searched for.
| [in] | nnn | the maximum number of nearest neighbors |
Definition at line 219 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::nnn_.
| void pcl::GreedyProjectionTriangulation< PointInT >::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.
| [in] | eps_angle | maximum surface angle |
Definition at line 264 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::eps_angle_.
| void pcl::GreedyProjectionTriangulation< PointInT >::setMinimumAngle | ( | double | minimum_angle | ) | [inline] |
Set the minimum angle each triangle should have.
| [in] | minimum_angle | the minimum angle each triangle should have |
Definition at line 241 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::minimum_angle_.
| void pcl::GreedyProjectionTriangulation< PointInT >::setMu | ( | double | mu | ) | [inline] |
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).
| [in] | mu | the multiplier |
Definition at line 209 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::mu_.
| void pcl::GreedyProjectionTriangulation< PointInT >::setNormalConsistency | ( | bool | consistent | ) | [inline] |
Set the flag if the input normals are oriented consistently.
| [in] | consistent | set it to true if the normals are consistently oriented |
Definition at line 274 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::consistent_.
| void pcl::GreedyProjectionTriangulation< PointInT >::setSearchRadius | ( | double | radius | ) | [inline] |
Set the sphere radius that is to be used for determining the k-nearest neighbors used for triangulating.
| [in] | radius | the sphere radius that is to contain all k-nearest neighbors |
Definition at line 230 of file gp3.h.
References pcl::GreedyProjectionTriangulation< PointInT >::search_radius_.
bool pcl::GreedyProjectionTriangulation< PointInT >::consistent_ [protected] |
Set this to true if the normals of the input are consistently oriented.
Definition at line 332 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getNormalConsistency(), and pcl::GreedyProjectionTriangulation< PointInT >::setNormalConsistency().
bool pcl::GreedyProjectionTriangulation< PointInT >::consistent_ordering_ [protected] |
Set this to true if the output triangle vertices should be consistently oriented.
Definition at line 335 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getConsistentVertexOrdering(), and pcl::GreedyProjectionTriangulation< PointInT >::setConsistentVertexOrdering().
double pcl::GreedyProjectionTriangulation< PointInT >::eps_angle_ [protected] |
Maximum surface angle.
Definition at line 329 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getMaximumSurfaceAngle(), and pcl::GreedyProjectionTriangulation< PointInT >::setMaximumSurfaceAngle().
double pcl::GreedyProjectionTriangulation< PointInT >::maximum_angle_ [protected] |
The maximum angle for the triangles.
Definition at line 326 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getMaximumAngle(), and pcl::GreedyProjectionTriangulation< PointInT >::setMaximumAngle().
double pcl::GreedyProjectionTriangulation< PointInT >::minimum_angle_ [protected] |
The preferred minimum angle for the triangles.
Definition at line 323 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getMinimumAngle(), and pcl::GreedyProjectionTriangulation< PointInT >::setMinimumAngle().
double pcl::GreedyProjectionTriangulation< PointInT >::mu_ [protected] |
The nearest neighbor distance multiplier to obtain the final search radius.
Definition at line 314 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getMu(), and pcl::GreedyProjectionTriangulation< PointInT >::setMu().
int pcl::GreedyProjectionTriangulation< PointInT >::nnn_ [protected] |
The maximum number of nearest neighbors accepted by searching.
Definition at line 320 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getMaximumNearestNeighbors(), and pcl::GreedyProjectionTriangulation< PointInT >::setMaximumNearestNeighbors().
double pcl::GreedyProjectionTriangulation< PointInT >::search_radius_ [protected] |
The nearest neighbors search radius for each point and the maximum edge length.
Definition at line 317 of file gp3.h.
Referenced by pcl::GreedyProjectionTriangulation< PointInT >::getSearchRadius(), and pcl::GreedyProjectionTriangulation< PointInT >::setSearchRadius().