Module geometry

## Detailed Description

# Overview

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

# Requirements

- common

## 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::VertexIndex
| Index used to access elements in the half-edge mesh. More...
class | pcl::geometry::HalfEdgeIndex
| Index used to access elements in the half-edge mesh. More...
class | pcl::geometry::EdgeIndex
| Index used to access elements in the half-edge mesh. More...
class | pcl::geometry::FaceIndex
| Index used to access elements in the half-edge mesh. 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...

## Functions

template<class MeshT >
void | pcl::geometry::getBoundBoundaryHalfEdges (const MeshT &mesh, std::vector< typename MeshT::HalfEdgeIndices > &boundary_he_collection, const 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...

## Function Documentation

template<class MeshT >

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

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 58 of file get_boundary.h.

References pcl::geometry::EdgeIndex::get(), and pcl::geometry::toEdgeIndex().

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.

Parameters

  [in] | half_edge_mesh | The input mesh.
  [out] | face_vertex_mesh | The output mesh.

Author
  Martin Saelzle

Definition at line 58 of file mesh_conversion.h.

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

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.

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 89 of file mesh_conversion.h.

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