Loading...
Searching...
No Matches
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.
using | HalfEdgeIndex = pcl::detail::MeshIndex<struct HalfEdgeIndexTag>
| Index used to access elements in the half-edge mesh.
using | EdgeIndex = pcl::detail::MeshIndex<struct EdgeIndexTag>
| Index used to access elements in the half-edge mesh.
using | FaceIndex = pcl::detail::MeshIndex<struct FaceIndexTag>
| Index used to access elements in the half-edge mesh.

## 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.
Eigen::Vector3f | randomOrthogonalAxis (Eigen::Vector3f const &axis)
| Define a random unit vector orthogonal to axis.
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.
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.
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.
EdgeIndex | toEdgeIndex (const HalfEdgeIndex &index)
| Convert the given half-edge index to an edge index.
HalfEdgeIndex | toHalfEdgeIndex (const EdgeIndex &index, const bool get_first=true)
| Convert the given edge index to a half-edge index.

## 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().

## 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] | point | Point to be projected
  [in] | plane_origin | The plane origin
  [in] | plane_normal | The plane normal
  [out] | projected | The 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] | point | Point to be projected
  [in] | plane_origin | The plane origin
  [in] | plane_normal | The plane normal
  [out] | projected | The 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(), 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

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

Parameters

  | index |
  [in] | get_first | The first half-edge of the edge is returned if this variable is true; elsewise the second.

Definition at line 235 of file mesh_indices.h.

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

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted().