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

Classes

struct  DefaultMeshTraits
 The mesh traits are used to set up compile time settings for the mesh. More...
 
class  Face
 A face is a closed loop of edges. More...
 
class  FaceAroundFaceCirculator
 Circulates clockwise around a face and returns an index to the face of the outer 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  HalfEdge
 An edge is a connection between two vertices. More...
 
class  IncomingHalfEdgeAroundVertexCirculator
 Circulates counter-clockwise around a vertex and returns an index to the incoming 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  MeshBase
 Base class for the half-edge mesh. More...
 
class  MeshIO
 Read / write the half-edge mesh from / to a file. More...
 
struct  NoData
 No data is associated with the vertices / half-edges / edges / faces. More...
 
class  OuterHalfEdgeAroundFaceCirculator
 Circulates clockwise around a face and returns an index to the outer 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  PolygonMesh
 General half-edge mesh that can store any polygon with a minimum number of vertices of 3. More...
 
struct  PolygonMeshTag
 Tag describing the type of the mesh. More...
 
class  QuadMesh
 Half-edge mesh that can only store quads. More...
 
struct  QuadMeshTag
 Tag describing the type of the mesh. More...
 
class  TriangleMesh
 Half-edge mesh that can only store triangles. More...
 
struct  TriangleMeshTag
 Tag describing the type of the mesh. More...
 
class  Vertex
 A vertex is a node in the mesh. 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  VertexAroundVertexCirculator
 Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the outgoing half-edge (the target). 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_cuda::VoxelGrid< PointCloudSOA< Device > >::applyFilter(), pcl_cuda::PassThrough< 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::RandomizedMEstimatorSampleConsensus< PointT >::computeModel(), pcl::MaximumLikelihoodSampleConsensus< PointT >::computeModel(), pcl::MEstimatorSampleConsensus< 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< PointXYZT >::extractAllFeatures(), pcl::ism::ImplicitShapeModelEstimation< FeatureSize, PointT, NormalT >::extractDescriptors(), pcl::ColorModality< PointInT >::extractFeatures(), pcl::ColorGradientModality< PointXYZT >::extractFeatures(), pcl::SurfaceNormalModality< PointXYZT >::extractFeatures(), pcl::people::HeightMap2D< PointT >::filterMaxima(), pcl::GFPFHEstimation< PointInT, PointLT, PointOutT >::getDominantLabel(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getFaceIndex(), pcl::getFieldIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getHalfEdgeIndex(), pcl::SHOTLocalReferenceFrameEstimation< PointInT, ReferenceFrame >::getLocalRF(), pcl::GridProjection< PointNT >::getProjectionWithPlaneFit(), pcl::RangeImage::getSurfaceInformation(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getVertexIndex(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::houghVoting(), pcl::SHOTColorEstimation< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::interpolateDoubleChannel(), pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::interpolateSingleChannel(), pcl::GeneralizedIterativeClosestPoint< PointXYZRGBA, PointXYZRGBA >::searchForNeighbors(), pcl::UnaryClassifier< PointT >::segment(), pcl::ExtractPolygonalPrismData< PointT >::segment(), pcl::SampleConsensusModelRegistration2D< PointT >::selectWithinDistance(), pcl::SampleConsensusModelNormalSphere< PointT, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelNormalPlane< PointT, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelRegistration< PointT >::selectWithinDistance(), pcl::SampleConsensusModelCylinder< pcl::PointXYZRGB, PointNT >::selectWithinDistance(), pcl::SampleConsensusModelPlane< PointT >::selectWithinDistance(), pcl::SampleConsensusModelCone< pcl::PointXYZRGB, PointNT >::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 223 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