Point Cloud Library (PCL)
1.7.0
|
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.
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().