W3cubDocs

/PointCloudLibrary

Detailed Description

Overview

The PCL geometry library contains computational geometry data structures and algorithms.

Requirements

Classes

class pcl::LineIterator
Organized Index Iterator for iterating over the "pixels" for a given line using the Bresenham algorithm. More...
class pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >
Base class for the half-edge mesh. More...
class pcl::geometry::VertexAroundVertexCirculator< MeshT >
Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the outgoing half-edge (the target). More...
class pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< MeshT >
Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the target). More...
class pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< MeshT >
Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the target). More...
class pcl::geometry::FaceAroundVertexCirculator< MeshT >
Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-edge (the target). More...
class pcl::geometry::VertexAroundFaceCirculator< MeshT >
Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-edge (the target). More...
class pcl::geometry::InnerHalfEdgeAroundFaceCirculator< MeshT >
Circulates clockwise around a face and returns an index to the inner half-edge (the target). More...
class pcl::geometry::OuterHalfEdgeAroundFaceCirculator< MeshT >
Circulates clockwise around a face and returns an index to the outer half-edge (the target). More...
class pcl::geometry::FaceAroundFaceCirculator< MeshT >
Circulates clockwise around a face and returns an index to the face of the outer half-edge (the target). More...
class pcl::geometry::Vertex
A vertex is a node in the mesh. More...
class pcl::geometry::HalfEdge
An edge is a connection between two vertices. More...
class pcl::geometry::Face
A face is a closed loop of edges. More...
class pcl::geometry::MeshIO< MeshT >
Read / write the half-edge mesh from / to a file. More...
struct pcl::geometry::DefaultMeshTraits< VertexDataT, HalfEdgeDataT, EdgeDataT, FaceDataT >
The mesh traits are used to set up compile time settings for the mesh. More...
class pcl::OrganizedIndexIterator
base class for iterators on 2-dimensional maps like images/organized clouds etc. More...
class pcl::geometry::PolygonMesh< MeshTraitsT >
General half-edge mesh that can store any polygon with a minimum number of vertices of 3. More...
class pcl::geometry::QuadMesh< MeshTraitsT >
Half-edge mesh that can only store quads. More...
class pcl::geometry::TriangleMesh< MeshTraitsT >
Half-edge mesh that can only store triangles. More...

Typedefs

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

Functions

Eigen::Vector3f pcl::geometry::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 pcl::geometry::randomOrthogonalAxis (Eigen::Vector3f const &axis)
Define a random unit vector orthogonal to axis. More...
template<class MeshT >
void pcl::geometry::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 pcl::geometry::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 pcl::geometry::toHalfEdgeMesh (const pcl::PolygonMesh &face_vertex_mesh, HalfEdgeMeshT &half_edge_mesh)
Convert a face-vertex mesh to a half-edge mesh. More...

Typedef Documentation

EdgeIndex

using pcl::geometry::EdgeIndex = typedef pcl::detail::MeshIndex<struct EdgeIndexTag>

#include <pcl/geometry/mesh_indices.h>

Index used to access elements in the half-edge mesh.

It is basically just a wrapper around an integer with a few added methods.

Author
Martin Saelzle

Definition at line 204 of file mesh_indices.h.

FaceIndex

using pcl::geometry::FaceIndex = typedef pcl::detail::MeshIndex<struct FaceIndexTag>

#include <pcl/geometry/mesh_indices.h>

Index used to access elements in the half-edge mesh.

It is basically just a wrapper around an integer with a few added methods.

Author
Martin Saelzle

Definition at line 210 of file mesh_indices.h.

HalfEdgeIndex

using pcl::geometry::HalfEdgeIndex = typedef pcl::detail::MeshIndex<struct HalfEdgeIndexTag>

#include <pcl/geometry/mesh_indices.h>

Index used to access elements in the half-edge mesh.

It is basically just a wrapper around an integer with a few added methods.

Author
Martin Saelzle

Definition at line 198 of file mesh_indices.h.

VertexIndex

using pcl::geometry::VertexIndex = typedef pcl::detail::MeshIndex<struct VertexIndexTag>

#include <pcl/geometry/mesh_indices.h>

Index used to access elements in the half-edge mesh.

It is basically just a wrapper around an integer with a few added methods.

Author
Martin Saelzle

Definition at line 192 of file mesh_indices.h.

Function Documentation

getBoundBoundaryHalfEdges()

template<class MeshT >
void pcl::geometry::getBoundBoundaryHalfEdges ( const MeshT & mesh,
std::vector< typename MeshT::HalfEdgeIndices > & boundary_he_collection,
const std::size_t expected_size = 3
)

#include <pcl/geometry/get_boundary.h>

Get a collection of boundary half-edges for the input mesh.

Parameters
[in] mesh The input mesh.
[out] boundary_he_collection Collection of boundary half-edges. Each element in the vector is one connected boundary. The whole boundary is the union of all elements.
[in] expected_size If you already know the size of the longest boundary you can tell this here. Defaults to 3 (minimum possible boundary).
Author
Martin Saelzle

Definition at line 60 of file get_boundary.h.

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

projectedAsUnitVector()

Eigen::Vector3f pcl::geometry::projectedAsUnitVector ( Eigen::Vector3f const & point,
Eigen::Vector3f const & plane_origin,
Eigen::Vector3f const & plane_normal
)
inline

#include <pcl/common/geometry.h>

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.

Parameters
[in] point Point projected on the plane
[in] plane_origin The plane origin
[in] plane_normal The plane normal
Returns
unit vector pointing from plane_origin to the projection of point on the plane.

Definition at line 115 of file geometry.h.

References pcl::geometry::project().

Referenced by pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::computePointLRF().

randomOrthogonalAxis()

Eigen::Vector3f pcl::geometry::randomOrthogonalAxis ( Eigen::Vector3f const & axis )
inline

#include <pcl/common/geometry.h>

Define a random unit vector orthogonal to axis.

Parameters
[in] axis Axis
Returns
random unit vector orthogonal to axis

Definition at line 134 of file geometry.h.

Referenced by pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::computePointLRF(), and pcl::BOARDLocalReferenceFrameEstimation< PointInT, PointNT, PointOutT >::computePointLRF().

toFaceVertexMesh()

template<class HalfEdgeMeshT >
void pcl::geometry::toFaceVertexMesh ( const HalfEdgeMeshT & half_edge_mesh,
pcl::PolygonMesh & face_vertex_mesh
)

#include <pcl/geometry/mesh_conversion.h>

Convert a half-edge mesh to a face-vertex mesh.

Parameters
[in] half_edge_mesh The input mesh.
[out] face_vertex_mesh The output mesh.
Author
Martin Saelzle

Definition at line 56 of file mesh_conversion.h.

References pcl::PolygonMesh::cloud, pcl::PolygonMesh::polygons, pcl::toPCLPointCloud2(), and pcl::Vertices::vertices.

toHalfEdgeMesh()

template<class HalfEdgeMeshT >
int pcl::geometry::toHalfEdgeMesh ( const pcl::PolygonMesh & face_vertex_mesh,
HalfEdgeMeshT & half_edge_mesh
)

#include <pcl/geometry/mesh_conversion.h>

Convert a face-vertex mesh to a half-edge mesh.

Parameters
[in] face_vertex_mesh The input mesh.
[out] half_edge_mesh The output mesh. It must have data associated with the vertices.
Returns
The number of faces that could NOT be added to the half-edge mesh.
Author
Martin Saelzle

Definition at line 88 of file mesh_conversion.h.

References pcl::PolygonMesh::cloud, pcl::fromPCLPointCloud2(), and pcl::PolygonMesh::polygons.

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/group__geometry.html