Point Cloud Library (PCL)  1.14.0-dev
Classes | Typedefs | Functions
pcl::geometry Namespace Reference

Classes

class  MeshIO
 Read / write the half-edge mesh from / to a file. More...
 
class  MeshBase
 Base class for the half-edge mesh. More...
 
class  VertexAroundVertexCirculator
 Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the outgoing half-edge (the target). More...
 
class  OutgoingHalfEdgeAroundVertexCirculator
 Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the target). More...
 
class  IncomingHalfEdgeAroundVertexCirculator
 Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the target). More...
 
class  FaceAroundVertexCirculator
 Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-edge (the target). More...
 
class  VertexAroundFaceCirculator
 Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-edge (the target). More...
 
class  InnerHalfEdgeAroundFaceCirculator
 Circulates clockwise around a face and returns an index to the inner half-edge (the target). More...
 
class  OuterHalfEdgeAroundFaceCirculator
 Circulates clockwise around a face and returns an index to the outer half-edge (the target). More...
 
class  FaceAroundFaceCirculator
 Circulates clockwise around a face and returns an index to the face of the outer half-edge (the target). More...
 
class  Vertex
 A vertex is a node in the mesh. More...
 
class  HalfEdge
 An edge is a connection between two vertices. More...
 
class  Face
 A face is a closed loop of edges. More...
 
struct  NoData
 No data is associated with the vertices / half-edges / edges / faces. More...
 
struct  DefaultMeshTraits
 The mesh traits are used to set up compile time settings for the mesh. More...
 
struct  PolygonMeshTag
 Tag describing the type of the mesh. More...
 
class  PolygonMesh
 General half-edge mesh that can store any polygon with a minimum number of vertices of 3. More...
 
struct  QuadMeshTag
 Tag describing the type of the mesh. More...
 
class  QuadMesh
 Half-edge mesh that can only store quads. More...
 
struct  TriangleMeshTag
 Tag describing the type of the mesh. More...
 
class  TriangleMesh
 Half-edge mesh that can only store triangles. More...
 

Typedefs

using VertexIndex = pcl::detail::MeshIndex< struct VertexIndexTag >
 Index used to access elements in the half-edge mesh. More...
 
using HalfEdgeIndex = pcl::detail::MeshIndex< struct HalfEdgeIndexTag >
 Index used to access elements in the half-edge mesh. More...
 
using EdgeIndex = pcl::detail::MeshIndex< struct EdgeIndexTag >
 Index used to access elements in the half-edge mesh. More...
 
using FaceIndex = pcl::detail::MeshIndex< struct FaceIndexTag >
 Index used to access elements in the half-edge mesh. More...
 

Functions

template<typename PointT >
float distance (const PointT &p1, const PointT &p2)
 
template<typename PointT >
float squaredDistance (const PointT &p1, const PointT &p2)
 
template<typename PointT , typename NormalT >
void project (const PointT &point, const PointT &plane_origin, const NormalT &plane_normal, PointT &projected)
 
void project (const Eigen::Vector3f &point, const Eigen::Vector3f &plane_origin, const Eigen::Vector3f &plane_normal, Eigen::Vector3f &projected)
 
Eigen::Vector3f projectedAsUnitVector (Eigen::Vector3f const &point, Eigen::Vector3f const &plane_origin, Eigen::Vector3f const &plane_normal)
 Given a plane defined by plane_origin and plane_normal, find the unit vector pointing from plane_origin to the projection of point on the plane. More...
 
Eigen::Vector3f randomOrthogonalAxis (Eigen::Vector3f const &axis)
 Define a random unit vector orthogonal to axis. More...
 
template<class MeshT >
void getBoundBoundaryHalfEdges (const MeshT &mesh, std::vector< typename MeshT::HalfEdgeIndices > &boundary_he_collection, const std::size_t expected_size=3)
 Get a collection of boundary half-edges for the input mesh. More...
 
template<class HalfEdgeMeshT >
void toFaceVertexMesh (const HalfEdgeMeshT &half_edge_mesh, pcl::PolygonMesh &face_vertex_mesh)
 Convert a half-edge mesh to a face-vertex mesh. More...
 
template<class HalfEdgeMeshT >
int toHalfEdgeMesh (const pcl::PolygonMesh &face_vertex_mesh, HalfEdgeMeshT &half_edge_mesh)
 Convert a face-vertex mesh to a half-edge mesh. More...
 
EdgeIndex toEdgeIndex (const HalfEdgeIndex &index)
 Convert the given half-edge index to an edge index. More...
 
HalfEdgeIndex toHalfEdgeIndex (const EdgeIndex &index, const bool get_first=true)
 Convert the given edge index to a half-edge index. More...
 

Function Documentation

◆ distance()

template<typename PointT >
float pcl::geometry::distance ( const PointT p1,
const PointT p2 
)
inline
Returns
the euclidean distance between 2 points

Definition at line 60 of file geometry.h.

Referenced by pcl::FarthestPointSampling< PointT >::applyFilter(), pcl_cuda::PassThrough< PointCloudSOA< Device > >::applyFilter(), pcl_cuda::VoxelGrid< PointCloudSOA< Device > >::applyFilter(), pcl::StatisticalOutlierRemoval< PointT >::applyFilterIndices(), pcl::approximatePolygon2D(), pcl::MinCutSegmentation< PointT >::calculateBinaryPotential(), pcl::PlaneClipper3D< PointT >::clipPlanarPolygon3D(), pcl::GeometricConsistencyGrouping< PointModelT, PointSceneT >::clusterCorrespondences(), pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::computeDistance(), pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::computeDistanceHistogram(), pcl::computeMedian(), pcl::MLSResult::computeMLSSurface(), pcl::LeastMedianSquares< PointT >::computeModel(), pcl::MaximumLikelihoodSampleConsensus< PointT >::computeModel(), pcl::MEstimatorSampleConsensus< PointT >::computeModel(), pcl::RandomizedMEstimatorSampleConsensus< PointT >::computeModel(), pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::computePoint(), pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::computePointDescriptor(), pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::computePointLRF(), pcl::registration::CorrespondenceEstimation< PointSource, PointTarget, Scalar >::determineCorrespondences(), pcl::registration::CorrespondenceEstimation< PointSource, PointTarget, Scalar >::determineReciprocalCorrespondences(), pcl::eigen33(), pcl::SurfaceNormalModality< PointInT >::extractAllFeatures(), pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::extractDescriptors(), pcl::SurfaceNormalModality< PointInT >::extractFeatures(), pcl::ColorModality< PointInT >::extractFeatures(), pcl::ColorGradientModality< PointInT >::extractFeatures(), pcl::people::HeightMap2D< PointT >::filterMaxima(), pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::getDominantLabel(), pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getEdgeIndex(), pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex(), pcl::getFieldIndex(), pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeIndex(), pcl::SHOTLocalReferenceFrameEstimation< PointInT, PointOutT >::getLocalRF(), pcl::GridProjection< PointNT >::getProjectionWithPlaneFit(), pcl::RangeImage::getSurfaceInformation(), pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexIndex(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::houghVoting(), pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::interpolateDoubleChannel(), pcl::GeneralizedIterativeClosestPoint< PointSource, PointTarget, Scalar >::searchForNeighbors(), pcl::UnaryClassifier< PointT >::segment(), pcl::ExtractPolygonalPrismData< PointT >::segment(), pcl::SampleConsensusModelRegistration2D< PointT >::selectWithinDistance(), pcl::SampleConsensusModelCone< PointT, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelCylinder< PointT, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelPlane< PointT >::selectWithinDistance(), pcl::SampleConsensusModelRegistration< PointT >::selectWithinDistance(), pcl::registration::CorrespondenceRejectorDistance::setMaximumDistance(), pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::simplifyCloud(), and pcl::toPCLPointCloud2().

◆ project() [1/2]

void pcl::geometry::project ( const Eigen::Vector3f &  point,
const Eigen::Vector3f &  plane_origin,
const Eigen::Vector3f &  plane_normal,
Eigen::Vector3f &  projected 
)
inline
Returns
the point projection on a plane defined by its origin and normal vector
Parameters
[in]pointPoint to be projected
[in]plane_originThe plane origin
[in]plane_normalThe plane normal
[out]projectedThe returned projected point

Definition at line 97 of file geometry.h.

◆ project() [2/2]

template<typename PointT , typename NormalT >
void pcl::geometry::project ( const PointT point,
const PointT plane_origin,
const NormalT plane_normal,
PointT projected 
)
inline
Returns
the point projection on a plane defined by its origin and normal vector
Parameters
[in]pointPoint to be projected
[in]plane_originThe plane origin
[in]plane_normalThe plane normal
[out]projectedThe returned projected point

Definition at line 81 of file geometry.h.

Referenced by pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::computePoint(), pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::computePointDescriptor(), pcl::PCA< PointT >::project(), and projectedAsUnitVector().

◆ squaredDistance()

template<typename PointT >
float pcl::geometry::squaredDistance ( const PointT p1,
const PointT p2 
)
inline
Returns
the squared euclidean distance between 2 points

Definition at line 68 of file geometry.h.

◆ toEdgeIndex()

EdgeIndex pcl::geometry::toEdgeIndex ( const HalfEdgeIndex index)
inline

Convert the given half-edge index to an edge index.

Definition at line 224 of file mesh_indices.h.

References pcl::detail::MeshIndex< IndexTagT >::get(), and pcl::detail::MeshIndex< IndexTagT >::isValid().

Referenced by getBoundBoundaryHalfEdges().

◆ toHalfEdgeIndex()

HalfEdgeIndex pcl::geometry::toHalfEdgeIndex ( const EdgeIndex index,
const bool  get_first = true 
)
inline