Loading...
Searching...
No Matches
pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT > Class Template Reference
Module geometry

Base class for the half-edge mesh. More...

`#include <pcl/geometry/mesh_base.h>`

## Public Types

using | Self = MeshBase<DerivedT, MeshTraitsT, MeshTagT>
using | Ptr = shared_ptr<Self>
using | ConstPtr = shared_ptr<const Self>
using | Derived = DerivedT
using | VertexData = typename MeshTraitsT::VertexData
using | HalfEdgeData = typename MeshTraitsT::HalfEdgeData
using | EdgeData = typename MeshTraitsT::EdgeData
using | FaceData = typename MeshTraitsT::FaceData
using | IsManifold = typename MeshTraitsT::IsManifold
using | MeshTag = MeshTagT
using | HasVertexData
using | HasHalfEdgeData
using | HasEdgeData
using | HasFaceData
using | VertexDataCloud = pcl::PointCloud<VertexData>
using | HalfEdgeDataCloud = pcl::PointCloud<HalfEdgeData>
using | EdgeDataCloud = pcl::PointCloud<EdgeData>
using | FaceDataCloud = pcl::PointCloud<FaceData>
using | VertexIndex = pcl::geometry::VertexIndex
using | HalfEdgeIndex = pcl::geometry::HalfEdgeIndex
using | EdgeIndex = pcl::geometry::EdgeIndex
using | FaceIndex = pcl::geometry::FaceIndex
using | VertexIndices = std::vector<VertexIndex>
using | HalfEdgeIndices = std::vector<HalfEdgeIndex>
using | EdgeIndices = std::vector<EdgeIndex>
using | FaceIndices = std::vector<FaceIndex>
using | VertexAroundVertexCirculator
using | OutgoingHalfEdgeAroundVertexCirculator
using | IncomingHalfEdgeAroundVertexCirculator
using | FaceAroundVertexCirculator
using | VertexAroundFaceCirculator
using | InnerHalfEdgeAroundFaceCirculator
using | OuterHalfEdgeAroundFaceCirculator
using | FaceAroundFaceCirculator = pcl::geometry::FaceAroundFaceCirculator<const Self>

## Public Member Functions

| MeshBase ()
| Constructor.
VertexIndex | addVertex (const VertexData &vertex_data=VertexData())
| Add a vertex to the mesh.
FaceIndex | addFace (const VertexIndices &vertices, const FaceData &face_data=FaceData(), const EdgeData &edge_data=EdgeData(), const HalfEdgeData &half_edge_data=HalfEdgeData())
| Add a face to the mesh.
void | deleteVertex (const VertexIndex &idx_vertex)
| Mark the given vertex and all connected half-edges and faces as deleted.
void | deleteEdge (const HalfEdgeIndex &idx_he)
| Mark the given half-edge, the opposite half-edge and the associated faces as deleted.
void | deleteEdge (const EdgeIndex &idx_edge)
| Mark the given edge (both half-edges) and the associated faces as deleted.
void | deleteFace (const FaceIndex &idx_face)
| Mark the given face as deleted.
void | cleanUp ()
| Removes all mesh elements and data that are marked as deleted.
HalfEdgeIndex | getOutgoingHalfEdgeIndex (const VertexIndex &idx_vertex) const
| Get the outgoing half-edge index to a given vertex.
HalfEdgeIndex | getIncomingHalfEdgeIndex (const VertexIndex &idx_vertex) const
| Get the incoming half-edge index to a given vertex.
VertexIndex | getTerminatingVertexIndex (const HalfEdgeIndex &idx_half_edge) const
| Get the terminating vertex index to a given half-edge.
VertexIndex | getOriginatingVertexIndex (const HalfEdgeIndex &idx_half_edge) const
| Get the originating vertex index to a given half-edge.
HalfEdgeIndex | getOppositeHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge) const
| Get the opposite half-edge index to a given half-edge.
HalfEdgeIndex | getNextHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge) const
| Get the next half-edge index to a given half-edge.
HalfEdgeIndex | getPrevHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge) const
| Get the previous half-edge index to a given half-edge.
FaceIndex | getFaceIndex (const HalfEdgeIndex &idx_half_edge) const
| Get the face index to a given half-edge.
FaceIndex | getOppositeFaceIndex (const HalfEdgeIndex &idx_half_edge) const
| Get the face index to a given half-edge.
HalfEdgeIndex | getInnerHalfEdgeIndex (const FaceIndex &idx_face) const
| Get the inner half-edge index to a given face.
HalfEdgeIndex | getOuterHalfEdgeIndex (const FaceIndex &idx_face) const
| Get the outer half-edge inex to a given face.
VertexAroundVertexCirculator | getVertexAroundVertexCirculator (const VertexIndex &idx_vertex) const
VertexAroundVertexCirculator | getVertexAroundVertexCirculator (const HalfEdgeIndex &idx_outgoing_half_edge) const
OutgoingHalfEdgeAroundVertexCirculator | getOutgoingHalfEdgeAroundVertexCirculator (const VertexIndex &idx_vertex) const
OutgoingHalfEdgeAroundVertexCirculator | getOutgoingHalfEdgeAroundVertexCirculator (const HalfEdgeIndex &idx_outgoing_half_edge) const
IncomingHalfEdgeAroundVertexCirculator | getIncomingHalfEdgeAroundVertexCirculator (const VertexIndex &idx_vertex) const
IncomingHalfEdgeAroundVertexCirculator | getIncomingHalfEdgeAroundVertexCirculator (const HalfEdgeIndex &idx_incoming_half_edge) const
FaceAroundVertexCirculator | getFaceAroundVertexCirculator (const VertexIndex &idx_vertex) const
FaceAroundVertexCirculator | getFaceAroundVertexCirculator (const HalfEdgeIndex &idx_outgoing_half_edge) const
VertexAroundFaceCirculator | getVertexAroundFaceCirculator (const FaceIndex &idx_face) const
VertexAroundFaceCirculator | getVertexAroundFaceCirculator (const HalfEdgeIndex &idx_inner_half_edge) const
InnerHalfEdgeAroundFaceCirculator | getInnerHalfEdgeAroundFaceCirculator (const FaceIndex &idx_face) const
InnerHalfEdgeAroundFaceCirculator | getInnerHalfEdgeAroundFaceCirculator (const HalfEdgeIndex &idx_inner_half_edge) const
OuterHalfEdgeAroundFaceCirculator | getOuterHalfEdgeAroundFaceCirculator (const FaceIndex &idx_face) const
OuterHalfEdgeAroundFaceCirculator | getOuterHalfEdgeAroundFaceCirculator (const HalfEdgeIndex &idx_inner_half_edge) const
FaceAroundFaceCirculator | getFaceAroundFaceCirculator (const FaceIndex &idx_face) const
FaceAroundFaceCirculator | getFaceAroundFaceCirculator (const HalfEdgeIndex &idx_inner_half_edge) const
bool | isEqualTopology (const Self &other) const
| Check if the other mesh has the same topology as this mesh.
bool | isValid (const VertexIndex &idx_vertex) const
| Check if the given vertex index is a valid index into the mesh.
bool | isValid (const HalfEdgeIndex &idx_he) const
| Check if the given half-edge index is a valid index into the mesh.
bool | isValid (const EdgeIndex &idx_edge) const
| Check if the given edge index is a valid index into the mesh.
bool | isValid (const FaceIndex &idx_face) const
| Check if the given face index is a valid index into the mesh.
bool | isDeleted (const VertexIndex &idx_vertex) const
| Check if the given vertex is marked as deleted.
bool | isDeleted (const HalfEdgeIndex &idx_he) const
| Check if the given half-edge is marked as deleted.
bool | isDeleted (const EdgeIndex &idx_edge) const
| Check if the given edge (any of the two half-edges) is marked as deleted.
bool | isDeleted (const FaceIndex &idx_face) const
| Check if the given face is marked as deleted.
bool | isIsolated (const VertexIndex &idx_vertex) const
| Check if the given vertex is isolated (not connected to other elements).
bool | isBoundary (const VertexIndex &idx_vertex) const
| Check if the given vertex lies on the boundary.
bool | isBoundary (const HalfEdgeIndex &idx_he) const
| Check if the given half-edge lies on the boundary.
bool | isBoundary (const EdgeIndex &idx_edge) const
| Check if the given edge lies on the boundary (any of the two half-edges lies on the boundary.
template<bool CheckVerticesT>
bool | isBoundary (const FaceIndex &idx_face) const
| Check if the given face lies on the boundary.
bool | isBoundary (const FaceIndex &idx_face) const
| Check if the given face lies on the boundary.
bool | isManifold (const VertexIndex &idx_vertex) const
| Check if the given vertex is manifold.
bool | isManifold () const
| Check if the mesh is manifold.
std::size_t | sizeVertices () const
| Get the number of the vertices.
std::size_t | sizeHalfEdges () const
| Get the number of the half-edges.
std::size_t | sizeEdges () const
| Get the number of the edges.
std::size_t | sizeFaces () const
| Get the number of the faces.
bool | empty () const
| Check if the mesh is empty.
bool | emptyVertices () const
| Check if the vertices are empty.
bool | emptyEdges () const
| Check if the edges are empty.
bool | emptyFaces () const
| Check if the faces are empty.
void | reserveVertices (const std::size_t n)
| Reserve storage space n vertices.
void | reserveEdges (const std::size_t n)
| Reserve storage space for n edges (2*n storage space is reserved for the half-edges).
void | reserveFaces (const std::size_t n)
| Reserve storage space for n faces.
void | resizeVertices (const std::size_t n, const VertexData &data=VertexData())
| Resize the the vertices to n elements.
void | resizeEdges (const std::size_t n, const EdgeData &edge_data=EdgeData(), const HalfEdgeData he_data=HalfEdgeData())
| Resize the edges to n elements (half-edges will hold 2*n elements).
void | resizeFaces (const std::size_t n, const FaceData &data=FaceData())
| Resize the faces to n elements.
void | clear ()
| Clear all mesh elements and data.
VertexDataCloud & | getVertexDataCloud ()
| Get access to the stored vertex data.
VertexDataCloud | getVertexDataCloud () const
| Get the stored vertex data.
bool | setVertexDataCloud (const VertexDataCloud &vertex_data_cloud)
| Change the stored vertex data.
HalfEdgeDataCloud & | getHalfEdgeDataCloud ()
| Get access to the stored half-edge data.
HalfEdgeDataCloud | getHalfEdgeDataCloud () const
| Get the stored half-edge data.
bool | setHalfEdgeDataCloud (const HalfEdgeDataCloud &half_edge_data_cloud)
| Change the stored half-edge data.
EdgeDataCloud & | getEdgeDataCloud ()
| Get access to the stored edge data.
EdgeDataCloud | getEdgeDataCloud () const
| Get the stored edge data.
bool | setEdgeDataCloud (const EdgeDataCloud &edge_data_cloud)
| Change the stored edge data.
FaceDataCloud & | getFaceDataCloud ()
| Get access to the stored face data.
FaceDataCloud | getFaceDataCloud () const
| Get the stored face data.
bool | setFaceDataCloud (const FaceDataCloud &face_data_cloud)
| Change the stored face data.
VertexIndex | getVertexIndex (const VertexData &vertex_data) const
| Get the index associated to the given vertex data.
HalfEdgeIndex | getHalfEdgeIndex (const HalfEdgeData &half_edge_data) const
| Get the index associated to the given half-edge data.
EdgeIndex | getEdgeIndex (const EdgeData &edge_data) const
| Get the index associated to the given edge data.
FaceIndex | getFaceIndex (const FaceData &face_data) const
| Get the index associated to the given face data.

## Protected Types

using | Vertex = pcl::geometry::Vertex
using | HalfEdge = pcl::geometry::HalfEdge
using | Face = pcl::geometry::Face
using | Vertices = std::vector<Vertex>
using | HalfEdges = std::vector<HalfEdge>
using | Faces = std::vector<Face>
using | VertexIterator = typename Vertices::iterator
using | HalfEdgeIterator = typename HalfEdges::iterator
using | FaceIterator = typename Faces::iterator
using | VertexConstIterator = typename Vertices::const_iterator
using | HalfEdgeConstIterator = typename HalfEdges::const_iterator
using | FaceConstIterator = typename Faces::const_iterator

## Protected Member Functions

FaceIndex | addFaceImplBase (const VertexIndices &vertices, const FaceData &face_data, const EdgeData &edge_data, const HalfEdgeData &half_edge_data)
| General implementation of addFace.
HalfEdgeIndex | addEdge (const VertexIndex &idx_v_a, const VertexIndex &idx_v_b, const HalfEdgeData &he_data, const EdgeData &edge_data)
| Add an edge between the two given vertices and connect them with the vertices.
bool | checkTopology1 (const VertexIndex &idx_v_a, const VertexIndex &idx_v_b, HalfEdgeIndex &idx_he_ab, std::vector< bool >::reference is_new_ab, std::true_type) const
| Check if the edge between the two vertices can be added.
bool | checkTopology1 (const VertexIndex &idx_v_a, const VertexIndex &idx_v_b, HalfEdgeIndex &idx_he_ab, std::vector< bool >::reference is_new_ab, std::false_type) const
| Non manifold version of checkTopology1.
bool | checkTopology2 (const HalfEdgeIndex &, const HalfEdgeIndex &, const bool is_new_ab, const bool is_new_bc, const bool is_isolated_b, std::vector< bool >::reference, HalfEdgeIndex &, std::true_type) const
| Check if the face may be added (mesh does not become non-manifold).
bool | checkTopology2 (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const bool is_new_ab, const bool is_new_bc, const bool, std::vector< bool >::reference make_adjacent_ab_bc, HalfEdgeIndex &idx_free_half_edge, std::false_type) const
| Check if the half-edge bc is the next half-edge of ab.
void | makeAdjacent (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, HalfEdgeIndex &idx_free_half_edge)
| Make the half-edges bc the next half-edge of ab.
FaceIndex | connectFace (const HalfEdgeIndices &inner_he, const FaceData &face_data)
| Add a face to the mesh and connect it to the half-edges.
void | connectPrevNext (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc)
| Connect the next and prev indices of the two half-edges with each other.
void | connectNewNew (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b, std::true_type)
| Both half-edges are new (manifold version).
void | connectNewNew (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b, std::false_type)
| Both half-edges are new (non-manifold version).
void | connectNewOld (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b)
| The first half-edge is new.
void | connectOldNew (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b)
| The second half-edge is new.
void | connectOldOld (const HalfEdgeIndex &, const HalfEdgeIndex &, const VertexIndex &, std::true_type)
| Both half-edges are old (manifold version).
void | connectOldOld (const HalfEdgeIndex &, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b, std::false_type)
| Both half-edges are old (non-manifold version).
template<class DataT>
void | addData (pcl::PointCloud< DataT > &cloud, const DataT &data, std::true_type)
| Add mesh data.
template<class DataT>
void | addData (pcl::PointCloud< DataT > &, const DataT &, std::false_type)
| Does nothing.
void | deleteFace (const FaceIndex &idx_face, std::true_type)
| Manifold version of deleteFace.
void | deleteFace (const FaceIndex &idx_face, std::false_type)
| Non-manifold version of deleteFace.
void | reconnect (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const bool is_boundary_ba, const bool is_boundary_cb)
| Deconnect the input half-edges from the mesh and adjust the indices of the connected half-edges.
void | reconnectNBNB (const HalfEdgeIndex &idx_he_bc, const HalfEdgeIndex &idx_he_cb, const VertexIndex &idx_v_b, std::true_type)
| Both edges are not on the boundary.
void | reconnectNBNB (const HalfEdgeIndex &idx_he_bc, const HalfEdgeIndex &, const VertexIndex &idx_v_b, std::false_type)
| Both edges are not on the boundary.
void | markDeleted (const VertexIndex &idx_vertex)
| Mark the given vertex as deleted.
void | markDeleted (const HalfEdgeIndex &idx_he)
| Mark the given half-edge as deleted.
void | markDeleted (const EdgeIndex &idx_edge)
| Mark the given edge (both half-edges) as deleted.
void | markDeleted (const FaceIndex &idx_face)
| Mark the given face as deleted.
template<class ElementContainerT, class DataContainerT, class IndexContainerT, class HasDataT>
IndexContainerT | remove (ElementContainerT &elements, DataContainerT &data_cloud)
| Removes mesh elements and data that are marked as deleted from the container.
template<class IteratorT>
void | incrementIf (IteratorT &it, std::true_type) const
| Increment the iterator.
template<class IteratorT>
void | incrementIf (IteratorT &, std::false_type) const
| Does nothing.
template<class ConstIteratorT, class IteratorT>
void | assignIf (const ConstIteratorT source, IteratorT target, std::true_type) const
| Assign the source iterator to the target iterator.
template<class ConstIteratorT, class IteratorT>
void | assignIf (const ConstIteratorT, IteratorT, std::false_type) const
| Does nothing.
void | setOutgoingHalfEdgeIndex (const VertexIndex &idx_vertex, const HalfEdgeIndex &idx_outgoing_half_edge)
| Set the outgoing half-edge index to a given vertex.
void | setTerminatingVertexIndex (const HalfEdgeIndex &idx_half_edge, const VertexIndex &idx_terminating_vertex)
| Set the terminating vertex index to a given half-edge.
void | setNextHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge, const HalfEdgeIndex &idx_next_half_edge)
| Set the next half_edge index to a given half-edge.
void | setPrevHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge, const HalfEdgeIndex &idx_prev_half_edge)
| Set the previous half-edge index to a given half-edge.
void | setFaceIndex (const HalfEdgeIndex &idx_half_edge, const FaceIndex &idx_face)
| Set the face index to a given half-edge.
void | setInnerHalfEdgeIndex (const FaceIndex &idx_face, const HalfEdgeIndex &idx_inner_half_edge)
| Set the inner half-edge index to a given face.
bool | isBoundary (const FaceIndex &idx_face, std::true_type) const
| Check if any vertex of the face lies on the boundary.
bool | isBoundary (const FaceIndex &idx_face, std::false_type) const
| Check if any edge of the face lies on the boundary.
bool | isManifold (const VertexIndex &, std::true_type) const
| Always manifold.
bool | isManifold (const VertexIndex &idx_vertex, std::false_type) const
| Check if the given vertex is manifold.
bool | isManifold (std::true_type) const
| Always manifold.
bool | isManifold (std::false_type) const
| Check if all vertices in the mesh are manifold.
template<class DataCloudT>
void | reserveData (DataCloudT &cloud, const std::size_t n, std::true_type) const
| Reserve storage space for the mesh data.
template<class DataCloudT>
void | reserveData (DataCloudT &, const std::size_t, std::false_type) const
| Does nothing.
template<class DataCloudT>
void | resizeData (DataCloudT &data_cloud, const std::size_t n, const typename DataCloudT::value_type &data, std::true_type) const
| Resize the mesh data.
template<class DataCloudT>
void | resizeData (DataCloudT &, const std::size_t, const typename DataCloudT::value_type &, std::false_type) const
| Does nothing.
template<class DataCloudT>
void | clearData (DataCloudT &cloud, std::true_type) const
| Clear the mesh data.
template<class DataCloudT>
void | clearData (DataCloudT &, std::false_type) const
| Does nothing.
Vertex & | getVertex (const VertexIndex &idx_vertex)
| Get the vertex for the given index.
Vertex | getVertex (const VertexIndex &idx_vertex) const
| Get the vertex for the given index.
void | setVertex (const VertexIndex &idx_vertex, const Vertex &vertex)
| Set the vertex at the given index.
HalfEdge & | getHalfEdge (const HalfEdgeIndex &idx_he)
| Get the half-edge for the given index.
HalfEdge | getHalfEdge (const HalfEdgeIndex &idx_he) const
| Get the half-edge for the given index.
void | setHalfEdge (const HalfEdgeIndex &idx_he, const HalfEdge &half_edge)
| Set the half-edge at the given index.
Face & | getFace (const FaceIndex &idx_face)
| Get the face for the given index.
Face | getFace (const FaceIndex &idx_face) const
| Get the face for the given index.
void | setFace (const FaceIndex &idx_face, const Face &face)
| Set the face at the given index.

## Friends

template<class MeshT>
class | pcl::geometry::MeshIO

## Detailed Description

template<class DerivedT, class MeshTraitsT, class MeshTagT>
class pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >

Base class for the half-edge mesh.

Template Parameters

  DerivedT | Has to implement the method 'addFaceImpl'. Please have a look at pcl::geometry::TriangleMesh, pcl::geometry::QuadMesh and pcl::geometry::PolygonMesh.
  MeshTraitsT | Please have a look at pcl::geometry::DefaultMeshTraits.
  MeshTagT | Tag describing the type of the mesh, e.g. TriangleMeshTag, QuadMeshTag, PolygonMeshTag.

Author
  Martin Saelzle

Todo
  Add documentation

Definition at line 96 of file mesh_base.h.

## Member Typedef Documentation

## ConstPtr

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::ConstPtr = shared_ptr<const Self>

Definition at line 100 of file mesh_base.h.

## Derived

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Derived = DerivedT

Definition at line 102 of file mesh_base.h.

## EdgeData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeData = typename MeshTraitsT::EdgeData

Definition at line 107 of file mesh_base.h.

## EdgeDataCloud

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeDataCloud = pcl::PointCloud<EdgeData>

Definition at line 133 of file mesh_base.h.

## EdgeIndex

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeIndex = pcl::geometry::EdgeIndex

Definition at line 139 of file mesh_base.h.

## EdgeIndices

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeIndices = std::vector<EdgeIndex>

Definition at line 144 of file mesh_base.h.

## Face

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Face = pcl::geometry::Face

protected

Definition at line 1146 of file mesh_base.h.

## FaceAroundFaceCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceAroundFaceCirculator = pcl::geometry::FaceAroundFaceCirculator<const Self>

Definition at line 162 of file mesh_base.h.

## FaceAroundVertexCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceAroundVertexCirculator

Initial value:
pcl::geometry::FaceAroundVertexCirculator<const Self>
pcl::geometry::FaceAroundVertexCirculator
Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-ed...
Definition mesh_circulators.h:387

Definition at line 154 of file mesh_base.h.

## FaceConstIterator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceConstIterator = typename Faces::const_iterator

protected

Definition at line 1158 of file mesh_base.h.

## FaceData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceData = typename MeshTraitsT::FaceData

Definition at line 108 of file mesh_base.h.

## FaceDataCloud

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceDataCloud = pcl::PointCloud<FaceData>

Definition at line 134 of file mesh_base.h.

## FaceIndex

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceIndex = pcl::geometry::FaceIndex

Definition at line 140 of file mesh_base.h.

## FaceIndices

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceIndices = std::vector<FaceIndex>

Definition at line 145 of file mesh_base.h.

## FaceIterator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceIterator = typename Faces::iterator

protected

Definition at line 1154 of file mesh_base.h.

## Faces

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Faces = std::vector<Face>

protected

Definition at line 1150 of file mesh_base.h.

## HalfEdge

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdge = pcl::geometry::HalfEdge

protected

Definition at line 1145 of file mesh_base.h.

## HalfEdgeConstIterator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeConstIterator = typename HalfEdges::const_iterator

protected

Definition at line 1157 of file mesh_base.h.

## HalfEdgeData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeData = typename MeshTraitsT::HalfEdgeData

Definition at line 106 of file mesh_base.h.

## HalfEdgeDataCloud

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeDataCloud = pcl::PointCloud<HalfEdgeData>

Definition at line 132 of file mesh_base.h.

## HalfEdgeIndex

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeIndex = pcl::geometry::HalfEdgeIndex

Definition at line 138 of file mesh_base.h.

## HalfEdgeIndices

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeIndices = std::vector<HalfEdgeIndex>

Definition at line 143 of file mesh_base.h.

## HalfEdgeIterator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeIterator = typename HalfEdges::iterator

protected

Definition at line 1153 of file mesh_base.h.

## HalfEdges

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdges = std::vector<HalfEdge>

protected

Definition at line 1149 of file mesh_base.h.

## HasEdgeData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasEdgeData

Initial value:
std::integral_constant<bool,
!std::is_same<EdgeData, pcl::geometry::NoData>::value>

Definition at line 124 of file mesh_base.h.

## HasFaceData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasFaceData

Initial value:
std::integral_constant<bool,
!std::is_same<FaceData, pcl::geometry::NoData>::value>

Definition at line 127 of file mesh_base.h.

## HasHalfEdgeData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasHalfEdgeData

Initial value:
std::integral_constant<bool,
!std::is_same<HalfEdgeData, pcl::geometry::NoData>::value>

Definition at line 121 of file mesh_base.h.

## HasVertexData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasVertexData

Initial value:
std::integral_constant<bool,
!std::is_same<VertexData, pcl::geometry::NoData>::value>

Definition at line 118 of file mesh_base.h.

## IncomingHalfEdgeAroundVertexCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::IncomingHalfEdgeAroundVertexCirculator

Initial value:
pcl::geometry::IncomingHalfEdgeAroundVertexCirculator<const Self>
pcl::geometry::IncomingHalfEdgeAroundVertexCirculator
Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the targ...
Definition mesh_circulators.h:281

Definition at line 152 of file mesh_base.h.

## InnerHalfEdgeAroundFaceCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::InnerHalfEdgeAroundFaceCirculator

Initial value:
pcl::geometry::InnerHalfEdgeAroundFaceCirculator<const Self>
pcl::geometry::InnerHalfEdgeAroundFaceCirculator
Circulates clockwise around a face and returns an index to the inner half-edge (the target).
Definition mesh_circulators.h:592

Definition at line 158 of file mesh_base.h.

## IsManifold

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::IsManifold = typename MeshTraitsT::IsManifold

Definition at line 109 of file mesh_base.h.

## MeshTag

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::MeshTag = MeshTagT

Definition at line 115 of file mesh_base.h.

## OuterHalfEdgeAroundFaceCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::OuterHalfEdgeAroundFaceCirculator

Initial value:
pcl::geometry::OuterHalfEdgeAroundFaceCirculator<const Self>
pcl::geometry::OuterHalfEdgeAroundFaceCirculator
Circulates clockwise around a face and returns an index to the outer half-edge (the target).
Definition mesh_circulators.h:693

Definition at line 160 of file mesh_base.h.

## OutgoingHalfEdgeAroundVertexCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::OutgoingHalfEdgeAroundVertexCirculator

Initial value:
pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator<const Self>
pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator
Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the targ...
Definition mesh_circulators.h:174

Definition at line 150 of file mesh_base.h.

## Ptr

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Ptr = shared_ptr<Self>

Definition at line 99 of file mesh_base.h.

## Self

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Self = MeshBase<DerivedT, MeshTraitsT, MeshTagT>

Definition at line 98 of file mesh_base.h.

## Vertex

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Vertex = pcl::geometry::Vertex

protected

Definition at line 1144 of file mesh_base.h.

## VertexAroundFaceCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexAroundFaceCirculator

Initial value:
pcl::geometry::VertexAroundFaceCirculator<const Self>
pcl::geometry::VertexAroundFaceCirculator
Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-e...
Definition mesh_circulators.h:491

Definition at line 156 of file mesh_base.h.

## VertexAroundVertexCirculator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexAroundVertexCirculator

Initial value:
pcl::geometry::VertexAroundVertexCirculator<const Self>
pcl::geometry::VertexAroundVertexCirculator
Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the ou...
Definition mesh_circulators.h:70

Definition at line 148 of file mesh_base.h.

## VertexConstIterator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexConstIterator = typename Vertices::const_iterator

protected

Definition at line 1156 of file mesh_base.h.

## VertexData

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexData = typename MeshTraitsT::VertexData

Definition at line 105 of file mesh_base.h.

## VertexDataCloud

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexDataCloud = pcl::PointCloud<VertexData>

Definition at line 131 of file mesh_base.h.

## VertexIndex

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexIndex = pcl::geometry::VertexIndex

Definition at line 137 of file mesh_base.h.

## VertexIndices

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexIndices = std::vector<VertexIndex>

Definition at line 142 of file mesh_base.h.

## VertexIterator

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexIterator = typename Vertices::iterator

protected

Definition at line 1152 of file mesh_base.h.

## Vertices

template<class DerivedT, class MeshTraitsT, class MeshTagT>

using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Vertices = std::vector<Vertex>

protected

Definition at line 1148 of file mesh_base.h.

## Constructor & Destructor Documentation

## MeshBase()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::MeshBase | ( |  | ) |

inline

Constructor.

Definition at line 165 of file mesh_base.h.

## Member Function Documentation

## addData() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addData | ( | pcl::PointCloud< DataT > & | ,
|  | const DataT & | ,
|  | std::false_type | )

inline protected

Does nothing.

Definition at line 1561 of file mesh_base.h.

## addData() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addData | ( | pcl::PointCloud< DataT > & | cloud,
|  | const DataT & | data,
|  | std::true_type | )

inline protected

Add mesh data.

Definition at line 1553 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addVertex(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectFace().

## addEdge()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addEdge | ( | const VertexIndex & | idx_v_a,
|  | const VertexIndex & | idx_v_b,
|  | const HalfEdgeData & | he_data,
|  | const EdgeData & | edge_data )

inline protected

Add an edge between the two given vertices and connect them with the vertices.

Parameters

  [in] | idx_v_a | The first vertex index
  [in] | idx_v_b | The second vertex index
  [in] | he_data | Data associated with the half-edges. This is only added if the mesh has data associated with the half-edges.
  [in] | edge_data | Data associated with the edge. This is only added if the mesh has data associated with the edges.

Returns
  Index to the half-edge from vertex a to vertex b.

Definition at line 1246 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## addFace()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFace | ( | const VertexIndices & | vertices,
|  | const FaceData & | face_data = FaceData(),
|  | const EdgeData & | edge_data = EdgeData(),
|  | const HalfEdgeData & | half_edge_data = HalfEdgeData() )

inline

Add a face to the mesh.

Data is only added if it is associated with the elements. The last vertex is connected with the first one.

Parameters

  [in] | vertices | Indices to the vertices of the new face.
  [in] | face_data | Data that is set for the face.
  [in] | half_edge_data | Data that is set for all added half-edges.
  [in] | edge_data | Data that is set for all added edges.

Returns
  Index to the new face. Failure is signaled by returning an invalid face index.

Warning
  The vertices must be valid and unique (each vertex may be contained only once). Not complying with this requirement results in undefined behavior!

Definition at line 203 of file mesh_base.h.

## addFaceImplBase()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addFaceImplBase | ( | const VertexIndices & | vertices,
|  | const FaceData & | face_data,
|  | const EdgeData & | edge_data,
|  | const HalfEdgeData & | half_edge_data )

inline protected

General implementation of addFace.

Definition at line 1162 of file mesh_base.h.

## addVertex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addVertex | ( | const VertexData & | vertex_data = VertexData() | ) |

inline

Add a vertex to the mesh.

Parameters

  [in] | vertex_data | Data that is stored in the vertex. This is only added if the mesh has data associated with the vertices.

Returns
  Index to the new vertex.

Definition at line 183 of file mesh_base.h.

## assignIf() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class ConstIteratorT, class IteratorT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::assignIf | ( | const ConstIteratorT | source,
|  | IteratorT | target,
|  | std::true_type | ) const

inline protected

Assign the source iterator to the target iterator.

Definition at line 1861 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::remove().

## assignIf() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class ConstIteratorT, class IteratorT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::assignIf | ( | const ConstIteratorT | ,
|  | IteratorT | ,
|  | std::false_type | ) const

inline protected

Does nothing.

Definition at line 1871 of file mesh_base.h.

## checkTopology1() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1 | ( | const VertexIndex & | idx_v_a,
|  | const VertexIndex & | idx_v_b,
|  | HalfEdgeIndex & | idx_he_ab,
|  | std::vector< bool >::reference | is_new_ab,
|  | std::false_type | ) const

inline protected

Non manifold version of checkTopology1.

Definition at line 1295 of file mesh_base.h.

## checkTopology1() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology1 | ( | const VertexIndex & | idx_v_a,
|  | const VertexIndex & | idx_v_b,
|  | HalfEdgeIndex & | idx_he_ab,
|  | std::vector< bool >::reference | is_new_ab,
|  | std::true_type | ) const

inline protected

Check if the edge between the two vertices can be added.

Parameters

  [in] | idx_v_a | Index to the first vertex.
  [in] | idx_v_b | Index to the second vertex.
  [out] | idx_he_ab | Index to the half-edge ab if is_new_ab=false.
  [out] | is_new_ab | true if the edge between the vertices exists already. Must be initialized with true!

Returns
  true if the half-edge may be added.

Definition at line 1274 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## checkTopology2() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2 | ( | const HalfEdgeIndex & | ,
|  | const HalfEdgeIndex & | ,
|  | const bool | is_new_ab,
|  | const bool | is_new_bc,
|  | const bool | is_isolated_b,
|  | std::vector< bool >::reference | ,
|  | HalfEdgeIndex & | ,
|  | std::true_type | ) const

inline protected

Check if the face may be added (mesh does not become non-manifold).

Definition at line 1327 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## checkTopology2() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::checkTopology2 | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | const bool | is_new_ab,
|  | const bool | is_new_bc,
|  | const bool | ,
|  | std::vector< bool >::reference | make_adjacent_ab_bc,
|  | HalfEdgeIndex & | idx_free_half_edge,
|  | std::false_type | ) const

inline protected

Check if the half-edge bc is the next half-edge of ab.

Parameters

  [in] | idx_he_ab | Index to the half-edge between the vertices a and b.
  [in] | idx_he_bc | Index to the half-edge between the vertices b and c.
  [in] | is_new_ab | Half-edge ab is new.
  [in] | is_new_bc | Half-edge bc is new.
  [out] | make_adjacent_ab_bc | Half-edges ab and bc need to be made adjacent.
  [out] | idx_free_half_edge | Free half-edge (needed for makeAdjacent)

Returns
  true if addFace may be continued.

Definition at line 1349 of file mesh_base.h.

## cleanUp()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::cleanUp | ( |  | ) |

inline

Removes all mesh elements and data that are marked as deleted.

Note
  This removes all isolated vertices as well.

Definition at line 297 of file mesh_base.h.

## clear()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::clear | ( |  | ) |

inline

Clear all mesh elements and data.

Definition at line 933 of file mesh_base.h.

## clearData() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataCloudT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::clearData | ( | DataCloudT & | ,
|  | std::false_type | ) const

inline protected

Does nothing.

Definition at line 2064 of file mesh_base.h.

## clearData() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataCloudT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::clearData | ( | DataCloudT & | cloud,
|  | std::true_type | ) const

inline protected

Clear the mesh data.

Definition at line 2056 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::clear().

## connectFace()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectFace | ( | const HalfEdgeIndices & | inner_he,
|  | const FaceData & | face_data )

inline protected

Add a face to the mesh and connect it to the half-edges.

Parameters

  [in] | inner_he | Inner half-edges of the face.
  [in] | face_data | Data that is stored in the face. This is only added if the mesh has data associated with the faces.

Returns
  Index to the new face.

Definition at line 1419 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## connectNewNew() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | const VertexIndex & | idx_v_b,
|  | std::false_type | )

inline protected

Both half-edges are new (non-manifold version).

Definition at line 1459 of file mesh_base.h.

## connectNewNew() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewNew | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | const VertexIndex & | idx_v_b,
|  | std::true_type | )

inline protected

Both half-edges are new (manifold version).

Definition at line 1443 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew().

## connectNewOld()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectNewOld | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | const VertexIndex & | idx_v_b )

inline protected

The first half-edge is new.

Definition at line 1483 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## connectOldNew()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldNew | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | const VertexIndex & | idx_v_b )

inline protected

The second half-edge is new.

Definition at line 1499 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## connectOldOld() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld | ( | const HalfEdgeIndex & | ,
|  | const HalfEdgeIndex & | ,
|  | const VertexIndex & | ,
|  | std::true_type | )

inline protected

Both half-edges are old (manifold version).

Definition at line 1515 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## connectOldOld() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectOldOld | ( | const HalfEdgeIndex & | ,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | const VertexIndex & | idx_v_b,
|  | std::false_type | )

inline protected

Both half-edges are old (non-manifold version).

Definition at line 1523 of file mesh_base.h.

## connectPrevNext()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::connectPrevNext | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc )

inline protected

Connect the next and prev indices of the two half-edges with each other.

Definition at line 1435 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewOld(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::makeAdjacent(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnect().

## deleteEdge() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge | ( | const EdgeIndex & | idx_edge | ) |

inline

Mark the given edge (both half-edges) and the associated faces as deleted.

Note
  Call cleanUp () to finally delete all mesh-elements.

Definition at line 269 of file mesh_base.h.

## deleteEdge() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteEdge | ( | const HalfEdgeIndex & | idx_he | ) |

inline

Mark the given half-edge, the opposite half-edge and the associated faces as deleted.

Note
  Call cleanUp () to finally delete all mesh-elements.

Definition at line 246 of file mesh_base.h.

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

## deleteFace() [1/3]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace | ( | const FaceIndex & | idx_face | ) |

inline

Mark the given face as deleted.

More faces are deleted if the manifold mesh would become non-manifold.

Note
  Call cleanUp () to finally delete all mesh-elements.

Definition at line 283 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteVertex().

## deleteFace() [2/3]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace | ( | const FaceIndex & | idx_face,
|  | std::false_type | )

inline protected

Non-manifold version of deleteFace.

Definition at line 1592 of file mesh_base.h.

## deleteFace() [3/3]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteFace | ( | const FaceIndex & | idx_face,
|  | std::true_type | )

inline protected

Manifold version of deleteFace.

If the mesh becomes non-manifold due to the delete operation the faces around the non-manifold vertex are deleted until the mesh becomes manifold again.

Definition at line 1574 of file mesh_base.h.

## deleteVertex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::deleteVertex | ( | const VertexIndex & | idx_vertex | ) |

inline

Mark the given vertex and all connected half-edges and faces as deleted.

Note
  Call cleanUp () to finally delete all mesh-elements.

Definition at line 219 of file mesh_base.h.

## empty()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::empty | ( |  | ) | const

inline

Check if the mesh is empty.

Definition at line 840 of file mesh_base.h.

## emptyEdges()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::emptyEdges | ( |  | ) | const

inline

Check if the edges are empty.

Definition at line 854 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::empty().

## emptyFaces()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::emptyFaces | ( |  | ) | const

inline

Check if the faces are empty.

Definition at line 861 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::empty().

## emptyVertices()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::emptyVertices | ( |  | ) | const

inline

Check if the vertices are empty.

Definition at line 847 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::empty().

## getEdgeDataCloud() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

EdgeDataCloud & pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getEdgeDataCloud | ( |  | ) |

inline

Get access to the stored edge data.

Warning
  Please make sure to NOT add or remove elements from the cloud.

Definition at line 1023 of file mesh_base.h.

## getEdgeDataCloud() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

EdgeDataCloud pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getEdgeDataCloud | ( |  | ) | const

inline

Get the stored edge data.

Definition at line 1030 of file mesh_base.h.

## getEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

EdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getEdgeIndex | ( | const EdgeData & | edge_data | ) | const

inline

Get the index associated to the given edge data.

Definition at line 1116 of file mesh_base.h.

## getFace() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

Face & pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace | ( | const FaceIndex & | idx_face | ) |

inline protected

Get the face for the given index.

Definition at line 2129 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getInnerHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setInnerHalfEdgeIndex().

## getFace() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

Face pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace | ( | const FaceIndex & | idx_face | ) | const

inline protected

Get the face for the given index.

Definition at line 2137 of file mesh_base.h.

## getFaceAroundFaceCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundFaceCirculator | ( | const FaceIndex & | idx_face | ) | const

inline

See also
  pcl::geometry::FaceAroundFaceCirculator

Definition at line 575 of file mesh_base.h.

## getFaceAroundFaceCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundFaceCirculator | ( | const HalfEdgeIndex & | idx_inner_half_edge | ) | const

inline

See also
  pcl::geometry::FaceAroundFaceCirculator

Definition at line 583 of file mesh_base.h.

## getFaceAroundVertexCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundVertexCirculator | ( | const HalfEdgeIndex & | idx_outgoing_half_edge | ) | const

inline

See also
  pcl::geometry::FaceAroundVertexCirculator

Definition at line 519 of file mesh_base.h.

## getFaceAroundVertexCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceAroundVertexCirculator | ( | const VertexIndex & | idx_vertex | ) | const

inline

See also
  pcl::geometry::FaceAroundVertexCirculator

Definition at line 511 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteVertex().

## getFaceDataCloud() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceDataCloud & pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceDataCloud | ( |  | ) |

inline

Get access to the stored face data.

Warning
  Please make sure to NOT add or remove elements from the cloud.

Definition at line 1057 of file mesh_base.h.

## getFaceDataCloud() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceDataCloud pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceDataCloud | ( |  | ) | const

inline

Get the stored face data.

Definition at line 1064 of file mesh_base.h.

## getFaceIndex() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex | ( | const FaceData & | face_data | ) | const

inline

Get the index associated to the given face data.

Definition at line 1128 of file mesh_base.h.

## getFaceIndex() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFaceIndex | ( | const HalfEdgeIndex & | idx_half_edge | ) | const

inline

Get the face index to a given half-edge.

Definition at line 421 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOppositeFaceIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnectNBNB().

## getHalfEdge() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdge & pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge | ( | const HalfEdgeIndex & | idx_he | ) |

inline protected

Get the half-edge for the given index.

Definition at line 2101 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFaceIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getNextHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getPrevHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getTerminatingVertexIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setFaceIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setNextHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setPrevHalfEdgeIndex(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setTerminatingVertexIndex().

## getHalfEdge() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdge pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge | ( | const HalfEdgeIndex & | idx_he | ) | const

inline protected

Get the half-edge for the given index.

Definition at line 2109 of file mesh_base.h.

## getHalfEdgeDataCloud() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeDataCloud & pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeDataCloud | ( |  | ) |

inline

Get access to the stored half-edge data.

Warning
  Please make sure to NOT add or remove elements from the cloud.

Definition at line 988 of file mesh_base.h.

## getHalfEdgeDataCloud() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeDataCloud pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeDataCloud | ( |  | ) | const

inline

Get the stored half-edge data.

Definition at line 995 of file mesh_base.h.

## getHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdgeIndex | ( | const HalfEdgeData & | half_edge_data | ) | const

inline

Get the index associated to the given half-edge data.

Definition at line 1103 of file mesh_base.h.

## getIncomingHalfEdgeAroundVertexCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

IncomingHalfEdgeAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator | ( | const HalfEdgeIndex & | idx_incoming_half_edge | ) | const

inline

See also
  pcl::geometry::IncomingHalfEdgeAroundVertexCirculator

Definition at line 502 of file mesh_base.h.

## getIncomingHalfEdgeAroundVertexCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

IncomingHalfEdgeAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator | ( | const VertexIndex & | idx_vertex | ) | const

inline

See also
  pcl::geometry::IncomingHalfEdgeAroundVertexCirculator

Definition at line 494 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology2(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnectNBNB().

## getIncomingHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeIndex | ( | const VertexIndex & | idx_vertex | ) | const

inline

Get the incoming half-edge index to a given vertex.

Definition at line 366 of file mesh_base.h.

## getInnerHalfEdgeAroundFaceCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

InnerHalfEdgeAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeAroundFaceCirculator | ( | const FaceIndex & | idx_face | ) | const

inline

See also
  pcl::geometry::InnerHalfEdgeAroundFaceCirculator

Definition at line 543 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace().

## getInnerHalfEdgeAroundFaceCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

InnerHalfEdgeAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeAroundFaceCirculator | ( | const HalfEdgeIndex & | idx_inner_half_edge | ) | const

inline

See also
  pcl::geometry::InnerHalfEdgeAroundFaceCirculator

Definition at line 551 of file mesh_base.h.

## getInnerHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex | ( | const FaceIndex & | idx_face | ) | const

inline

Get the inner half-edge index to a given face.

Definition at line 441 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOuterHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology().

## getNextHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex | ( | const HalfEdgeIndex & | idx_half_edge | ) | const

inline

Get the next half-edge index to a given half-edge.

Definition at line 405 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology2(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::makeAdjacent(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnect().

## getOppositeFaceIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

FaceIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeFaceIndex | ( | const HalfEdgeIndex & | idx_half_edge | ) | const

inline

Get the face index to a given half-edge.

Definition at line 429 of file mesh_base.h.

## getOppositeHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOppositeHalfEdgeIndex | ( | const HalfEdgeIndex & | idx_half_edge | ) | const

inline

Get the opposite half-edge index to a given half-edge.

Definition at line 395 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology2(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewOld(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getIncomingHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOppositeFaceIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOriginatingVertexIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOuterHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnect().

## getOriginatingVertexIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOriginatingVertexIndex | ( | const HalfEdgeIndex & | idx_half_edge | ) | const

inline

Get the originating vertex index to a given half-edge.

Definition at line 386 of file mesh_base.h.

## getOuterHalfEdgeAroundFaceCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

OuterHalfEdgeAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeAroundFaceCirculator | ( | const FaceIndex & | idx_face | ) | const

inline

See also
  pcl::geometry::OuterHalfEdgeAroundFaceCirculator

Definition at line 559 of file mesh_base.h.

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

## getOuterHalfEdgeAroundFaceCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

OuterHalfEdgeAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeAroundFaceCirculator | ( | const HalfEdgeIndex & | idx_inner_half_edge | ) | const

inline

See also
  pcl::geometry::OuterHalfEdgeAroundFaceCirculator

Definition at line 567 of file mesh_base.h.

## getOuterHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOuterHalfEdgeIndex | ( | const FaceIndex & | idx_face | ) | const

inline

Get the outer half-edge inex to a given face.

Definition at line 449 of file mesh_base.h.

## getOutgoingHalfEdgeAroundVertexCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

OutgoingHalfEdgeAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator | ( | const HalfEdgeIndex & | idx_outgoing_half_edge | ) | const

inline

See also
  pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator

Definition at line 485 of file mesh_base.h.

## getOutgoingHalfEdgeAroundVertexCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

OutgoingHalfEdgeAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator | ( | const VertexIndex & | idx_vertex | ) | const

inline

See also
  pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator

Definition at line 477 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldOld(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold().

## getOutgoingHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex | ( | const VertexIndex & | idx_vertex | ) | const

inline

Get the outgoing half-edge index to a given vertex.

Definition at line 358 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldOld(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getIncomingHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isIsolated().

## getPrevHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex | ( | const HalfEdgeIndex & | idx_half_edge | ) | const

inline

Get the previous half-edge index to a given half-edge.

Definition at line 413 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewOld(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::makeAdjacent(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnect().

## getTerminatingVertexIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex | ( | const HalfEdgeIndex & | idx_half_edge | ) | const

inline

Get the terminating vertex index to a given half-edge.

Definition at line 378 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOriginatingVertexIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnect().

## getVertex() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

Vertex & pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex | ( | const VertexIndex & | idx_vertex | ) |

inline protected

Get the vertex for the given index.

Definition at line 2073 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOutgoingHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setOutgoingHalfEdgeIndex().

## getVertex() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

Vertex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex | ( | const VertexIndex & | idx_vertex | ) | const

inline protected

Get the vertex for the given index.

Definition at line 2081 of file mesh_base.h.

## getVertexAroundFaceCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundFaceCirculator | ( | const FaceIndex & | idx_face | ) | const

inline

See also
  pcl::geometry::VertexAroundFaceCirculator

Definition at line 527 of file mesh_base.h.

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

## getVertexAroundFaceCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexAroundFaceCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundFaceCirculator | ( | const HalfEdgeIndex & | idx_inner_half_edge | ) | const

inline

See also
  pcl::geometry::VertexAroundFaceCirculator

Definition at line 535 of file mesh_base.h.

## getVertexAroundVertexCirculator() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundVertexCirculator | ( | const HalfEdgeIndex & | idx_outgoing_half_edge | ) | const

inline

See also
  pcl::geometry::VertexAroundVertexCirculator

Definition at line 469 of file mesh_base.h.

## getVertexAroundVertexCirculator() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexAroundVertexCirculator | ( | const VertexIndex & | idx_vertex | ) | const

inline

See also
  pcl::geometry::VertexAroundVertexCirculator

Definition at line 461 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1().

## getVertexDataCloud() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexDataCloud & pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexDataCloud | ( |  | ) |

inline

Get access to the stored vertex data.

Warning
  Please make sure to NOT add or remove elements from the cloud.

Definition at line 953 of file mesh_base.h.

## getVertexDataCloud() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexDataCloud pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexDataCloud | ( |  | ) | const

inline

Get the stored vertex data.

Definition at line 960 of file mesh_base.h.

## getVertexIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

VertexIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertexIndex | ( | const VertexData & | vertex_data | ) | const

inline

Get the index associated to the given vertex data.

Returns
  Invalid index if the mesh does not have associated vertex data.

Definition at line 1091 of file mesh_base.h.

## incrementIf() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class IteratorT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::incrementIf | ( | IteratorT & | ,
|  | std::false_type | ) const

inline protected

Does nothing.

Definition at line 1855 of file mesh_base.h.

## incrementIf() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class IteratorT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::incrementIf | ( | IteratorT & | it,
|  | std::true_type | ) const

inline protected

Increment the iterator.

Definition at line 1847 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::remove().

## isBoundary() [1/7]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary | ( | const EdgeIndex & | idx_edge | ) | const

inline

Check if the given edge lies on the boundary (any of the two half-edges lies on the boundary.

Definition at line 748 of file mesh_base.h.

## isBoundary() [2/7]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary | ( | const FaceIndex & | idx_face | ) | const

inline

Check if the given face lies on the boundary.

This method uses isBoundary `true` which checks if any vertex lies on the boundary.

Definition at line 773 of file mesh_base.h.

## isBoundary() [3/7]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<bool CheckVerticesT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary | ( | const FaceIndex & | idx_face | ) | const

inline

Check if the given face lies on the boundary.

There are two versions of this method, selected by the template parameter.

Template Parameters

  CheckVerticesT | Check if any vertex lies on the boundary (true) or check if any edge lies on the boundary (false).

Definition at line 764 of file mesh_base.h.

## isBoundary() [4/7]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary | ( | const FaceIndex & | idx_face,
|  | std::false_type | ) const

inline protected

Check if any edge of the face lies on the boundary.

Definition at line 1955 of file mesh_base.h.

## isBoundary() [5/7]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary | ( | const FaceIndex & | idx_face,
|  | std::true_type | ) const

inline protected

Check if any vertex of the face lies on the boundary.

Definition at line 1939 of file mesh_base.h.

## isBoundary() [6/7]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary | ( | const HalfEdgeIndex & | idx_he | ) | const

inline

Check if the given half-edge lies on the boundary.

Definition at line 739 of file mesh_base.h.

## isBoundary() [7/7]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isBoundary | ( | const VertexIndex & | idx_vertex | ) | const

inline

Check if the given vertex lies on the boundary.

Isolated vertices are considered to be on the boundary.

Definition at line 729 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology2(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldOld(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnectNBNB(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnectNBNB().

## isDeleted() [1/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted | ( | const EdgeIndex & | idx_edge | ) | const

inline

Check if the given edge (any of the two half-edges) is marked as deleted.

Definition at line 695 of file mesh_base.h.

## isDeleted() [2/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted | ( | const FaceIndex & | idx_face | ) | const

inline

Check if the given face is marked as deleted.

Definition at line 704 of file mesh_base.h.

## isDeleted() [3/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted | ( | const HalfEdgeIndex & | idx_he | ) | const

inline

Check if the given half-edge is marked as deleted.

Definition at line 686 of file mesh_base.h.

## isDeleted() [4/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isDeleted | ( | const VertexIndex & | idx_vertex | ) | const

inline

Check if the given vertex is marked as deleted.

Definition at line 678 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteVertex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::remove().

## isEqualTopology()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isEqualTopology | ( | const Self & | other | ) | const

inline

Check if the other mesh has the same topology as this mesh.

Definition at line 595 of file mesh_base.h.

## isIsolated()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isIsolated | ( | const VertexIndex & | idx_vertex | ) | const

inline

Check if the given vertex is isolated (not connected to other elements).

Definition at line 716 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::checkTopology1(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold().

## isManifold() [1/6]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold | ( |  | ) | const

inline

Check if the mesh is manifold.

Definition at line 795 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold().

## isManifold() [2/6]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold | ( | const VertexIndex & | ,
|  | std::true_type | ) const

inline protected

Always manifold.

Definition at line 1972 of file mesh_base.h.

## isManifold() [3/6]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold | ( | const VertexIndex & | idx_vertex | ) | const

inline

Check if the given vertex is manifold.

Isolated vertices are manifold.

Definition at line 785 of file mesh_base.h.

## isManifold() [4/6]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold | ( | const VertexIndex & | idx_vertex,
|  | std::false_type | ) const

inline protected

Check if the given vertex is manifold.

Definition at line 1979 of file mesh_base.h.

## isManifold() [5/6]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold | ( | std::false_type |  | ) | const

inline protected

Check if all vertices in the mesh are manifold.

Definition at line 2004 of file mesh_base.h.

## isManifold() [6/6]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isManifold | ( | std::true_type |  | ) | const

inline protected

Always manifold.

Definition at line 1997 of file mesh_base.h.

## isValid() [1/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid | ( | const EdgeIndex & | idx_edge | ) | const

inline

Check if the given edge index is a valid index into the mesh.

Definition at line 658 of file mesh_base.h.

## isValid() [2/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid | ( | const FaceIndex & | idx_face | ) | const

inline

Check if the given face index is a valid index into the mesh.

Definition at line 666 of file mesh_base.h.

## isValid() [3/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid | ( | const HalfEdgeIndex & | idx_he | ) | const

inline

Check if the given half-edge index is a valid index into the mesh.

Definition at line 650 of file mesh_base.h.

## isValid() [4/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::isValid | ( | const VertexIndex & | idx_vertex | ) | const

inline

Check if the given vertex index is a valid index into the mesh.

Definition at line 642 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteVertex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFaceAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFaceAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFaceAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFaceAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getFaceIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getHalfEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getHalfEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getIncomingHalfEdgeAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getIncomingHalfEdgeAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getIncomingHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getInnerHalfEdgeAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getInnerHalfEdgeAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getInnerHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getNextHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOppositeFaceIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOppositeHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOriginatingVertexIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOuterHalfEdgeAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOuterHalfEdgeAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOuterHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOutgoingHalfEdgeAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOutgoingHalfEdgeAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getOutgoingHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getPrevHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getTerminatingVertexIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getVertex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getVertex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getVertexAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getVertexAroundFaceCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getVertexAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::getVertexAroundVertexCirculator(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isBoundary(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isIsolated(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::markDeleted(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setFace(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setFaceIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setHalfEdge(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setInnerHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setNextHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setOutgoingHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setPrevHalfEdgeIndex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setTerminatingVertexIndex(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::setVertex().

## makeAdjacent()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::makeAdjacent | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | HalfEdgeIndex & | idx_free_half_edge )

inline protected

Make the half-edges bc the next half-edge of ab.

Parameters

  [in] | idx_he_ab | Index to the half-edge between the vertices a and b.
  [in] | idx_he_bc | Index to the half-edge between the vertices b and c.
  [in,out] | idx_free_half_edge | Free half-edge needed to re-connect the half-edges around vertex b.

Definition at line 1393 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addFaceImplBase().

## markDeleted() [1/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted | ( | const EdgeIndex & | idx_edge | ) |

inline protected

Mark the given edge (both half-edges) as deleted.

Definition at line 1756 of file mesh_base.h.

## markDeleted() [2/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted | ( | const FaceIndex & | idx_face | ) |

inline protected

Mark the given face as deleted.

Definition at line 1765 of file mesh_base.h.

## markDeleted() [3/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted | ( | const HalfEdgeIndex & | idx_he | ) |

inline protected

Mark the given half-edge as deleted.

Definition at line 1748 of file mesh_base.h.

## markDeleted() [4/4]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted | ( | const VertexIndex & | idx_vertex | ) |

inline protected

Mark the given vertex as deleted.

Definition at line 1740 of file mesh_base.h.

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

## reconnect()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnect | ( | const HalfEdgeIndex & | idx_he_ab,
|  | const HalfEdgeIndex & | idx_he_bc,
|  | const bool | is_boundary_ba,
|  | const bool | is_boundary_cb )

inline protected

Deconnect the input half-edges from the mesh and adjust the indices of the connected half-edges.

Definition at line 1641 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::deleteFace().

## reconnectNBNB() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB | ( | const HalfEdgeIndex & | idx_he_bc,
|  | const HalfEdgeIndex & | ,
|  | const VertexIndex & | idx_v_b,
|  | std::false_type | )

inline protected

Both edges are not on the boundary.

Non-manifold version.

Definition at line 1724 of file mesh_base.h.

## reconnectNBNB() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reconnectNBNB | ( | const HalfEdgeIndex & | idx_he_bc,
|  | const HalfEdgeIndex & | idx_he_cb,
|  | const VertexIndex & | idx_v_b,
|  | std::true_type | )

inline protected

Both edges are not on the boundary.

Manifold version.

Definition at line 1688 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnect().

## remove()

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class ElementContainerT, class DataContainerT, class IndexContainerT, class HasDataT>

IndexContainerT pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::remove | ( | ElementContainerT & | elements,
|  | DataContainerT & | data_cloud )

inline protected

Removes mesh elements and data that are marked as deleted from the container.

Template Parameters

  ElementContainerT | e.g. std::vector <Vertex>
  DataContainerT | e.g. std::vector <VertexData>
  IndexContainerT | e.g. std::vector <VertexIndex>
  HasDataT | Integral constant specifying if the mesh has data associated with the elements.

Parameters

  [in,out] | elements | Container for the mesh elements. Resized to the new size.
  [in,out] | data_cloud | Container for the mesh data. Resized to the new size.

Returns
  Container with the same size as the old input data. Holds the indices to the new elements for each non-deleted element and an invalid index if it is deleted.

Definition at line 1793 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::cleanUp().

## reserveData() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataCloudT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveData | ( | DataCloudT & | ,
|  | const std::size_t | ,
|  | std::false_type | ) const

inline protected

Does nothing.

Definition at line 2028 of file mesh_base.h.

## reserveData() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataCloudT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveData | ( | DataCloudT & | cloud,
|  | const std::size_t | n,
|  | std::true_type | ) const

inline protected

Reserve storage space for the mesh data.

Definition at line 2020 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reserveEdges(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reserveFaces(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reserveVertices().

## reserveEdges()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveEdges | ( | const std::size_t | n | ) |

inline

Reserve storage space for n edges (2*n storage space is reserved for the half-edges).

Definition at line 881 of file mesh_base.h.

## reserveFaces()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveFaces | ( | const std::size_t | n | ) |

inline

Reserve storage space for n faces.

Definition at line 890 of file mesh_base.h.

## reserveVertices()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::reserveVertices | ( | const std::size_t | n | ) |

inline

Reserve storage space n vertices.

Definition at line 872 of file mesh_base.h.

## resizeData() [1/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataCloudT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeData | ( | DataCloudT & | ,
|  | const std::size_t | ,
|  | const typename DataCloudT::value_type & | ,
|  | std::false_type | ) const

inline protected

Does nothing.

Definition at line 2047 of file mesh_base.h.

## resizeData() [2/2]

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class DataCloudT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeData | ( | DataCloudT & | data_cloud,
|  | const std::size_t | n,
|  | const typename DataCloudT::value_type & | data,
|  | std::true_type | ) const

inline protected

Resize the mesh data.

Definition at line 2036 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::resizeEdges(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::resizeFaces(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::resizeVertices().

## resizeEdges()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeEdges | ( | const std::size_t | n,
|  | const EdgeData & | edge_data = EdgeData(),
|  | const HalfEdgeData | he_data = HalfEdgeData() )

inline

Resize the edges to n elements (half-edges will hold 2*n elements).

Definition at line 910 of file mesh_base.h.

## resizeFaces()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeFaces | ( | const std::size_t | n,
|  | const FaceData & | data = FaceData() )

inline

Resize the faces to n elements.

Definition at line 921 of file mesh_base.h.

## resizeVertices()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeVertices | ( | const std::size_t | n,
|  | const VertexData & | data = VertexData() )

inline

Resize the the vertices to n elements.

Definition at line 902 of file mesh_base.h.

## setEdgeDataCloud()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setEdgeDataCloud | ( | const EdgeDataCloud & | edge_data_cloud | ) |

inline

Change the stored edge data.

Parameters

  [in] | edge_data_cloud | The new edge data. Must be the same as the current data.

Returns
  true if the cloud could be set.

Definition at line 1040 of file mesh_base.h.

## setFace()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFace | ( | const FaceIndex & | idx_face,
|  | const Face & | face )

inline protected

Set the face at the given index.

Definition at line 2145 of file mesh_base.h.

## setFaceDataCloud()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFaceDataCloud | ( | const FaceDataCloud & | face_data_cloud | ) |

inline

Change the stored face data.

Parameters

  [in] | face_data_cloud | The new face data. Must be the same as the current data.

Returns
  true if the cloud could be set.

Definition at line 1074 of file mesh_base.h.

## setFaceIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setFaceIndex | ( | const HalfEdgeIndex & | idx_half_edge,
|  | const FaceIndex & | idx_face )

inline protected

Set the face index to a given half-edge.

Definition at line 1918 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectFace().

## setHalfEdge()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setHalfEdge | ( | const HalfEdgeIndex & | idx_he,
|  | const HalfEdge & | half_edge )

inline protected

Set the half-edge at the given index.

Definition at line 2117 of file mesh_base.h.

## setHalfEdgeDataCloud()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setHalfEdgeDataCloud | ( | const HalfEdgeDataCloud & | half_edge_data_cloud | ) |

inline

Change the stored half-edge data.

Parameters

  [in] | half_edge_data_cloud | The new half-edge data. Must be the same as the current data.

Returns
  true if the cloud could be set.

Definition at line 1006 of file mesh_base.h.

## setInnerHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setInnerHalfEdgeIndex | ( | const FaceIndex & | idx_face,
|  | const HalfEdgeIndex & | idx_inner_half_edge )

inline protected

Set the inner half-edge index to a given face.

Definition at line 1926 of file mesh_base.h.

## setNextHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setNextHalfEdgeIndex | ( | const HalfEdgeIndex & | idx_half_edge,
|  | const HalfEdgeIndex & | idx_next_half_edge )

inline protected

Set the next half_edge index to a given half-edge.

Definition at line 1900 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectPrevNext().

## setOutgoingHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setOutgoingHalfEdgeIndex | ( | const VertexIndex & | idx_vertex,
|  | const HalfEdgeIndex & | idx_outgoing_half_edge )

inline protected

Set the outgoing half-edge index to a given vertex.

Definition at line 1882 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectNewOld(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldNew(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectOldOld(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnect(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnectNBNB(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::reconnectNBNB().

## setPrevHalfEdgeIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setPrevHalfEdgeIndex | ( | const HalfEdgeIndex & | idx_half_edge,
|  | const HalfEdgeIndex & | idx_prev_half_edge )

inline protected

Set the previous half-edge index to a given half-edge.

Definition at line 1909 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectPrevNext().

## setTerminatingVertexIndex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setTerminatingVertexIndex | ( | const HalfEdgeIndex & | idx_half_edge,
|  | const VertexIndex & | idx_terminating_vertex )

inline protected

Set the terminating vertex index to a given half-edge.

Definition at line 1891 of file mesh_base.h.

## setVertex()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setVertex | ( | const VertexIndex & | idx_vertex,
|  | const Vertex & | vertex )

inline protected

Set the vertex at the given index.

Definition at line 2089 of file mesh_base.h.

## setVertexDataCloud()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

bool pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::setVertexDataCloud | ( | const VertexDataCloud & | vertex_data_cloud | ) |

inline

Change the stored vertex data.

Parameters

  [in] | vertex_data_cloud | The new vertex data. Must be the same as the current data.

Returns
  true if the cloud could be set.

Definition at line 971 of file mesh_base.h.

## sizeEdges()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

std::size_t pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeEdges | ( |  | ) | const

inline

Get the number of the edges.

Definition at line 821 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::cleanUp().

## sizeFaces()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

std::size_t pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeFaces | ( |  | ) | const

inline

Get the number of the faces.

Definition at line 829 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::connectFace(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology().

## sizeHalfEdges()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

std::size_t pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeHalfEdges | ( |  | ) | const

inline

Get the number of the half-edges.

Definition at line 813 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology().

## sizeVertices()

template<class DerivedT, class MeshTraitsT, class MeshTagT>

std::size_t pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::sizeVertices | ( |  | ) | const

inline

Get the number of the vertices.

Definition at line 806 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::addVertex(), pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, PolygonMeshTag >::isManifold().

## Friends And Related Symbol Documentation

## pcl::geometry::MeshIO

template<class DerivedT, class MeshTraitsT, class MeshTagT>
template<class MeshT>

friend class pcl::geometry::MeshIO

friend

Definition at line 2202 of file mesh_base.h.

The documentation for this class was generated from the following file:

- pcl/geometry/mesh_base.h