Point Cloud Library (PCL)  1.11.1-dev
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Friends
pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT > Class Template Reference

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 = std::integral_constant< bool, !std::is_same< VertexData, pcl::geometry::NoData >::value >
 
using HasHalfEdgeData = std::integral_constant< bool, !std::is_same< HalfEdgeData, pcl::geometry::NoData >::value >
 
using HasEdgeData = std::integral_constant< bool, !std::is_same< EdgeData, pcl::geometry::NoData >::value >
 
using HasFaceData = std::integral_constant< bool, !std::is_same< FaceData, pcl::geometry::NoData >::value >
 
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 = pcl::geometry::VertexAroundVertexCirculator< const Self >
 
using OutgoingHalfEdgeAroundVertexCirculator = pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator< const Self >
 
using IncomingHalfEdgeAroundVertexCirculator = pcl::geometry::IncomingHalfEdgeAroundVertexCirculator< const Self >
 
using FaceAroundVertexCirculator = pcl::geometry::FaceAroundVertexCirculator< const Self >
 
using VertexAroundFaceCirculator = pcl::geometry::VertexAroundFaceCirculator< const Self >
 
using InnerHalfEdgeAroundFaceCirculator = pcl::geometry::InnerHalfEdgeAroundFaceCirculator< const Self >
 
using OuterHalfEdgeAroundFaceCirculator = pcl::geometry::OuterHalfEdgeAroundFaceCirculator< const Self >
 
using FaceAroundFaceCirculator = pcl::geometry::FaceAroundFaceCirculator< const Self >
 

Public Member Functions

 MeshBase ()
 Constructor. More...
 
VertexIndex addVertex (const VertexData &vertex_data=VertexData())
 Add a vertex to the mesh. More...
 
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. More...
 
void deleteVertex (const VertexIndex &idx_vertex)
 Mark the given vertex and all connected half-edges and faces as deleted. More...
 
void deleteEdge (const HalfEdgeIndex &idx_he)
 Mark the given half-edge, the opposite half-edge and the associated faces as deleted. More...
 
void deleteEdge (const EdgeIndex &idx_edge)
 Mark the given edge (both half-edges) and the associated faces as deleted. More...
 
void deleteFace (const FaceIndex &idx_face)
 Mark the given face as deleted. More...
 
void cleanUp ()
 Removes all mesh elements and data that are marked as deleted. More...
 
HalfEdgeIndex getOutgoingHalfEdgeIndex (const VertexIndex &idx_vertex) const
 Get the outgoing half-edge index to a given vertex. More...
 
HalfEdgeIndex getIncomingHalfEdgeIndex (const VertexIndex &idx_vertex) const
 Get the incoming half-edge index to a given vertex. More...
 
VertexIndex getTerminatingVertexIndex (const HalfEdgeIndex &idx_half_edge) const
 Get the terminating vertex index to a given half-edge. More...
 
VertexIndex getOriginatingVertexIndex (const HalfEdgeIndex &idx_half_edge) const
 Get the originating vertex index to a given half-edge. More...
 
HalfEdgeIndex getOppositeHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge) const
 Get the opposite half-edge index to a given half-edge. More...
 
HalfEdgeIndex getNextHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge) const
 Get the next half-edge index to a given half-edge. More...
 
HalfEdgeIndex getPrevHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge) const
 Get the previous half-edge index to a given half-edge. More...
 
FaceIndex getFaceIndex (const HalfEdgeIndex &idx_half_edge) const
 Get the face index to a given half-edge. More...
 
FaceIndex getOppositeFaceIndex (const HalfEdgeIndex &idx_half_edge) const
 Get the face index to a given half-edge. More...
 
HalfEdgeIndex getInnerHalfEdgeIndex (const FaceIndex &idx_face) const
 Get the inner half-edge index to a given face. More...
 
HalfEdgeIndex getOuterHalfEdgeIndex (const FaceIndex &idx_face) const
 Get the outer half-edge inex to a given face. More...
 
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. More...
 
bool isValid (const VertexIndex &idx_vertex) const
 Check if the given vertex index is a valid index into the mesh. More...
 
bool isValid (const HalfEdgeIndex &idx_he) const
 Check if the given half-edge index is a valid index into the mesh. More...
 
bool isValid (const EdgeIndex &idx_edge) const
 Check if the given edge index is a valid index into the mesh. More...
 
bool isValid (const FaceIndex &idx_face) const
 Check if the given face index is a valid index into the mesh. More...
 
bool isDeleted (const VertexIndex &idx_vertex) const
 Check if the given vertex is marked as deleted. More...
 
bool isDeleted (const HalfEdgeIndex &idx_he) const
 Check if the given half-edge is marked as deleted. More...
 
bool isDeleted (const EdgeIndex &idx_edge) const
 Check if the given edge (any of the two half-edges) is marked as deleted. More...
 
bool isDeleted (const FaceIndex &idx_face) const
 Check if the given face is marked as deleted. More...
 
bool isIsolated (const VertexIndex &idx_vertex) const
 Check if the given vertex is isolated (not connected to other elements). More...
 
bool isBoundary (const VertexIndex &idx_vertex) const
 Check if the given vertex lies on the boundary. More...
 
bool isBoundary (const HalfEdgeIndex &idx_he) const
 Check if the given half-edge lies on the bounddary. More...
 
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. More...
 
template<bool CheckVerticesT>
bool isBoundary (const FaceIndex &idx_face) const
 Check if the given face lies on the boundary. More...
 
bool isBoundary (const FaceIndex &idx_face) const
 Check if the given face lies on the boundary. More...
 
bool isManifold (const VertexIndex &idx_vertex) const
 Check if the given vertex is manifold. More...
 
bool isManifold () const
 Check if the mesh is manifold. More...
 
std::size_t sizeVertices () const
 Get the number of the vertices. More...
 
std::size_t sizeHalfEdges () const
 Get the number of the half-edges. More...
 
std::size_t sizeEdges () const
 Get the number of the edges. More...
 
std::size_t sizeFaces () const
 Get the number of the faces. More...
 
bool empty () const
 Check if the mesh is empty. More...
 
bool emptyVertices () const
 Check if the vertices are empty. More...
 
bool emptyEdges () const
 Check if the edges are empty. More...
 
bool emptyFaces () const
 Check if the faces are empty. More...
 
void reserveVertices (const std::size_t n)
 Reserve storage space n vertices. More...
 
void reserveEdges (const std::size_t n)
 Reserve storage space for n edges (2*n storage space is reserved for the half-edges). More...
 
void reserveFaces (const std::size_t n)
 Reserve storage space for n faces. More...
 
void resizeVertices (const std::size_t n, const VertexData &data=VertexData())
 Resize the the vertices to n elements. More...
 
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). More...
 
void resizeFaces (const std::size_t n, const FaceData &data=FaceData())
 Resize the faces to n elements. More...
 
void clear ()
 Clear all mesh elements and data. More...
 
VertexDataCloudgetVertexDataCloud ()
 Get access to the stored vertex data. More...
 
VertexDataCloud getVertexDataCloud () const
 Get the stored vertex data. More...
 
bool setVertexDataCloud (const VertexDataCloud &vertex_data_cloud)
 Change the stored vertex data. More...
 
HalfEdgeDataCloudgetHalfEdgeDataCloud ()
 Get access to the stored half-edge data. More...
 
HalfEdgeDataCloud getHalfEdgeDataCloud () const
 Get the stored half-edge data. More...
 
bool setHalfEdgeDataCloud (const HalfEdgeDataCloud &half_edge_data_cloud)
 Change the stored half-edge data. More...
 
EdgeDataCloudgetEdgeDataCloud ()
 Get access to the stored edge data. More...
 
EdgeDataCloud getEdgeDataCloud () const
 Get the stored edge data. More...
 
bool setEdgeDataCloud (const EdgeDataCloud &edge_data_cloud)
 Change the stored edge data. More...
 
FaceDataCloudgetFaceDataCloud ()
 Get access to the stored face data. More...
 
FaceDataCloud getFaceDataCloud () const
 Get the stored face data. More...
 
bool setFaceDataCloud (const FaceDataCloud &face_data_cloud)
 Change the stored face data. More...
 
VertexIndex getVertexIndex (const VertexData &vertex_data) const
 Get the index associated to the given vertex data. More...
 
HalfEdgeIndex getHalfEdgeIndex (const HalfEdgeData &half_edge_data) const
 Get the index associated to the given half-edge data. More...
 
EdgeIndex getEdgeIndex (const EdgeData &edge_data) const
 Get the index associated to the given edge data. More...
 
FaceIndex getFaceIndex (const FaceData &face_data) const
 Get the index associated to the given face data. More...
 

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. More...
 
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. More...
 
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. More...
 
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. More...
 
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). More...
 
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. More...
 
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. More...
 
FaceIndex connectFace (const HalfEdgeIndices &inner_he, const FaceData &face_data)
 Add a face to the mesh and connect it to the half-edges. More...
 
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. More...
 
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). More...
 
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). More...
 
void connectNewOld (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b)
 The first half-edge is new. More...
 
void connectOldNew (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b)
 The second half-edge is new. More...
 
void connectOldOld (const HalfEdgeIndex &, const HalfEdgeIndex &, const VertexIndex &, std::true_type)
 Both half-edges are old (manifold version). More...
 
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). More...
 
template<class DataT >
void addData (pcl::PointCloud< DataT > &cloud, const DataT &data, std::true_type)
 Add mesh data. More...
 
template<class DataT >
void addData (pcl::PointCloud< DataT > &, const DataT &, std::false_type)
 Does nothing. More...
 
void deleteFace (const FaceIndex &idx_face, std::true_type)
 Manifold version of deleteFace. More...
 
void deleteFace (const FaceIndex &idx_face, std::false_type)
 Non-manifold version of deleteFace. More...
 
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. More...
 
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. More...
 
void reconnectNBNB (const HalfEdgeIndex &idx_he_bc, const HalfEdgeIndex &, const VertexIndex &idx_v_b, std::false_type)
 Both edges are not on the boundary. More...
 
void markDeleted (const VertexIndex &idx_vertex)
 Mark the given vertex as deleted. More...
 
void markDeleted (const HalfEdgeIndex &idx_he)
 Mark the given half-edge as deleted. More...
 
void markDeleted (const EdgeIndex &idx_edge)
 Mark the given edge (both half-edges) as deleted. More...
 
void markDeleted (const FaceIndex &idx_face)
 Mark the given face as deleted. More...
 
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. More...
 
template<class IteratorT >
void incrementIf (IteratorT &it, std::true_type) const
 Increment the iterator. More...
 
template<class IteratorT >
void incrementIf (IteratorT &, std::false_type) const
 Does nothing. More...
 
template<class ConstIteratorT , class IteratorT >
void assignIf (const ConstIteratorT source, IteratorT target, std::true_type) const
 Assign the source iterator to the target iterator. More...
 
template<class ConstIteratorT , class IteratorT >
void assignIf (const ConstIteratorT, IteratorT, std::false_type) const
 Does nothing. More...
 
void setOutgoingHalfEdgeIndex (const VertexIndex &idx_vertex, const HalfEdgeIndex &idx_outgoing_half_edge)
 Set the outgoing half-edge index to a given vertex. More...
 
void setTerminatingVertexIndex (const HalfEdgeIndex &idx_half_edge, const VertexIndex &idx_terminating_vertex)
 Set the terminating vertex index to a given half-edge. More...
 
void setNextHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge, const HalfEdgeIndex &idx_next_half_edge)
 Set the next half_edge index to a given half-edge. More...
 
void setPrevHalfEdgeIndex (const HalfEdgeIndex &idx_half_edge, const HalfEdgeIndex &idx_prev_half_edge)
 Set the previous half-edge index to a given half-edge. More...
 
void setFaceIndex (const HalfEdgeIndex &idx_half_edge, const FaceIndex &idx_face)
 Set the face index to a given half-edge. More...
 
void setInnerHalfEdgeIndex (const FaceIndex &idx_face, const HalfEdgeIndex &idx_inner_half_edge)
 Set the inner half-edge index to a given face. More...
 
bool isBoundary (const FaceIndex &idx_face, std::true_type) const
 Check if any vertex of the face lies on the boundary. More...
 
bool isBoundary (const FaceIndex &idx_face, std::false_type) const
 Check if any edge of the face lies on the boundary. More...
 
bool isManifold (const VertexIndex &, std::true_type) const
 Always manifold. More...
 
bool isManifold (const VertexIndex &idx_vertex, std::false_type) const
 Check if the given vertex is manifold. More...
 
bool isManifold (std::true_type) const
 Always manifold. More...
 
bool isManifold (std::false_type) const
 Check if all vertices in the mesh are manifold. More...
 
template<class DataCloudT >
void reserveData (DataCloudT &cloud, const std::size_t n, std::true_type) const
 Reserve storage space for the mesh data. More...
 
template<class DataCloudT >
void reserveData (DataCloudT &, const std::size_t, std::false_type) const
 Does nothing. More...
 
template<class DataCloudT >
void resizeData (DataCloudT &, const std::size_t n, const typename DataCloudT::value_type &data, std::true_type) const
 Resize the mesh data. More...
 
template<class DataCloudT >
void resizeData (DataCloudT &, const std::size_t, const typename DataCloudT::value_type &, std::false_type) const
 Does nothing. More...
 
template<class DataCloudT >
void clearData (DataCloudT &cloud, std::true_type) const
 Clear the mesh data. More...
 
template<class DataCloudT >
void clearData (DataCloudT &, std::false_type) const
 Does nothing. More...
 
VertexgetVertex (const VertexIndex &idx_vertex)
 Get the vertex for the given index. More...
 
Vertex getVertex (const VertexIndex &idx_vertex) const
 Get the vertex for the given index. More...
 
void setVertex (const VertexIndex &idx_vertex, const Vertex &vertex)
 Set the vertex at the given index. More...
 
HalfEdgegetHalfEdge (const HalfEdgeIndex &idx_he)
 Get the half-edge for the given index. More...
 
HalfEdge getHalfEdge (const HalfEdgeIndex &idx_he) const
 Get the half-edge for the given index. More...
 
void setHalfEdge (const HalfEdgeIndex &idx_he, const HalfEdge &half_edge)
 Set the half-edge at the given index. More...
 
FacegetFace (const FaceIndex &idx_face)
 Get the face for the given index. More...
 
Face getFace (const FaceIndex &idx_face) const
 Get the face for the given index. More...
 
void setFace (const FaceIndex &idx_face, const Face &face)
 Set the face at the given index. More...
 

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
DerivedTHas to implement the method 'addFaceImpl'. Please have a look at pcl::geometry::TriangleMesh, pcl::geometry::QuadMesh and pcl::geometry::PolygonMesh.
MeshTraitsTPlease have a look at pcl::geometry::DefaultMeshTraits.
MeshTagTTag describing the type of the mesh, e.g. TriangleMeshTag, QuadMeshTag, PolygonMeshTag.
Author
Martin Saelzle
Todo:
Add documentation

Definition at line 98 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 104 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 106 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 111 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 128 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 134 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 139 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 1091 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 150 of file mesh_base.h.

◆ FaceAroundVertexCirculator

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceAroundVertexCirculator = pcl::geometry::FaceAroundVertexCirculator<const Self>

Definition at line 146 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 1103 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 112 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 129 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 135 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 140 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 1099 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 1095 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 1090 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 1102 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 110 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 127 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 133 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 138 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 1098 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 1094 of file mesh_base.h.

◆ HasEdgeData

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasEdgeData = std::integral_constant <bool, !std::is_same <EdgeData , pcl::geometry::NoData>::value>

Definition at line 123 of file mesh_base.h.

◆ HasFaceData

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasFaceData = std::integral_constant <bool, !std::is_same <FaceData , pcl::geometry::NoData>::value>

Definition at line 124 of file mesh_base.h.

◆ HasHalfEdgeData

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasHalfEdgeData = std::integral_constant <bool, !std::is_same <HalfEdgeData, pcl::geometry::NoData>::value>

Definition at line 122 of file mesh_base.h.

◆ HasVertexData

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasVertexData = std::integral_constant <bool, !std::is_same <VertexData , pcl::geometry::NoData>::value>

Definition at line 121 of file mesh_base.h.

◆ IncomingHalfEdgeAroundVertexCirculator

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::IncomingHalfEdgeAroundVertexCirculator = pcl::geometry::IncomingHalfEdgeAroundVertexCirculator<const Self>

Definition at line 145 of file mesh_base.h.

◆ InnerHalfEdgeAroundFaceCirculator

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::InnerHalfEdgeAroundFaceCirculator = pcl::geometry::InnerHalfEdgeAroundFaceCirculator<const Self>

Definition at line 148 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 113 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 118 of file mesh_base.h.

◆ OuterHalfEdgeAroundFaceCirculator

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::OuterHalfEdgeAroundFaceCirculator = pcl::geometry::OuterHalfEdgeAroundFaceCirculator<const Self>

Definition at line 149 of file mesh_base.h.

◆ OutgoingHalfEdgeAroundVertexCirculator

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::OutgoingHalfEdgeAroundVertexCirculator = pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator<const Self>

Definition at line 144 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 103 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 102 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 1089 of file mesh_base.h.

◆ VertexAroundFaceCirculator

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexAroundFaceCirculator = pcl::geometry::VertexAroundFaceCirculator<const Self>

Definition at line 147 of file mesh_base.h.

◆ VertexAroundVertexCirculator

template<class DerivedT , class MeshTraitsT , class MeshTagT >
using pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexAroundVertexCirculator = pcl::geometry::VertexAroundVertexCirculator<const Self>

Definition at line 143 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 1101 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 109 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 126 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 132 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 137 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 1097 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 1093 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 153 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   
)
inlineprotected

Does nothing.

Definition at line 1488 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   
)
inlineprotected

◆ 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 
)
inlineprotected

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

Parameters
[in]idx_v_aThe first vertex index
[in]idx_v_bThe second vertex index
[in]he_dataData associated with the half-edges. This is only added if the mesh has data associated with the half-edges.
[in]edge_dataData 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 1181 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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]verticesIndices to the vertices of the new face.
[in]face_dataData that is set for the face.
[in]half_edge_dataData that is set for all added half-edges.
[in]edge_dataData 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 186 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 
)
inlineprotected

General implementation of addFace.

Definition at line 1107 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_dataData 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 170 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
inlineprotected

Assign the source iterator to the target iterator.

Definition at line 1783 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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
inlineprotected

Does nothing.

Definition at line 1790 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
inlineprotected

Non manifold version of checkTopology1.

Definition at line 1226 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
inlineprotected

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

Parameters
[in]idx_v_aIndex to the first vertex.
[in]idx_v_bIndex to the second vertex.
[out]idx_he_abIndex to the half-edge ab if is_new_ab=false.
[out]is_new_abtrue 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 1208 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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
inlineprotected

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

Definition at line 1256 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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
inlineprotected

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

Parameters
[in]idx_he_abIndex to the half-edge between the vertices a and b.
[in]idx_he_bcIndex to the half-edge between the vertices b and c.
[in]is_new_abHalf-edge ab is new.
[in]is_new_bcHalf-edge bc is new.
[out]make_adjacent_ab_bcHalf-edges ab and bc need to be made adjacent.
[out]idx_free_half_edgeFree half-edge (needed for makeAdjacent)
Returns
true if addFace may be continued.

Definition at line 1278 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 265 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 876 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
inlineprotected

Does nothing.

Definition at line 1967 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
inlineprotected

Clear the mesh data.

Definition at line 1960 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 
)
inlineprotected

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

Parameters
[in]inner_heInner half-edges of the face.
[in]face_dataData 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 1341 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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   
)
inlineprotected

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

Definition at line 1384 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   
)
inlineprotected

◆ 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 
)
inlineprotected

The first half-edge is new.

Definition at line 1410 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 
)
inlineprotected

The second half-edge is new.

Definition at line 1425 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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   
)
inlineprotected

Both half-edges are old (manifold version).

Definition at line 1440 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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   
)
inlineprotected

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

Definition at line 1449 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 
)
inlineprotected

◆ 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 242 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 225 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 253 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteEdge(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteFace(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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   
)
inlineprotected

Non-manifold version of deleteFace.

Definition at line 1517 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   
)
inlineprotected

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 1498 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 199 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 784 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 798 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 805 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 791 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 966 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 973 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 1060 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)
inlineprotected

◆ getFace() [2/2]

template<class DerivedT , class MeshTraitsT , class MeshTagT >
Face pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getFace ( const FaceIndex idx_face) const
inlineprotected

Get the face for the given index.

Definition at line 2041 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 539 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 547 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 483 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

◆ 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 1001 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 1008 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 1072 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

◆ getHalfEdge() [1/2]

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

◆ getHalfEdge() [2/2]

template<class DerivedT , class MeshTraitsT , class MeshTagT >
HalfEdge pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getHalfEdge ( const HalfEdgeIndex idx_he) const
inlineprotected

Get the half-edge for the given index.

Definition at line 2013 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 931 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 938 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 1048 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

◆ getIncomingHalfEdgeAroundVertexCirculator() [2/2]

template<class DerivedT , class MeshTraitsT , class MeshTagT >
IncomingHalfEdgeAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getIncomingHalfEdgeAroundVertexCirculator ( const VertexIndex idx_vertex) const
inline

◆ 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 334 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

◆ 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

◆ getInnerHalfEdgeIndex()

template<class DerivedT , class MeshTraitsT , class MeshTagT >
HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getInnerHalfEdgeIndex ( const FaceIndex idx_face) const
inline

◆ getNextHalfEdgeIndex()

template<class DerivedT , class MeshTraitsT , class MeshTagT >
HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getNextHalfEdgeIndex ( const HalfEdgeIndex idx_half_edge) const
inline

◆ 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 395 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

◆ 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 354 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

◆ 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

◆ 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 415 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

◆ getOutgoingHalfEdgeAroundVertexCirculator() [2/2]

template<class DerivedT , class MeshTraitsT , class MeshTagT >
OutgoingHalfEdgeAroundVertexCirculator pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeAroundVertexCirculator ( const VertexIndex idx_vertex) const
inline

◆ getOutgoingHalfEdgeIndex()

template<class DerivedT , class MeshTraitsT , class MeshTagT >
HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getOutgoingHalfEdgeIndex ( const VertexIndex idx_vertex) const
inline

◆ getPrevHalfEdgeIndex()

template<class DerivedT , class MeshTraitsT , class MeshTagT >
HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getPrevHalfEdgeIndex ( const HalfEdgeIndex idx_half_edge) const
inline

◆ getTerminatingVertexIndex()

template<class DerivedT , class MeshTraitsT , class MeshTagT >
VertexIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getTerminatingVertexIndex ( const HalfEdgeIndex idx_half_edge) const
inline

◆ getVertex() [1/2]

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

◆ getVertex() [2/2]

template<class DerivedT , class MeshTraitsT , class MeshTagT >
Vertex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::getVertex ( const VertexIndex idx_vertex) const
inlineprotected

Get the vertex for the given index.

Definition at line 1985 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

◆ 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 499 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 435 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

◆ 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 896 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 903 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 1036 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
inlineprotected

Does nothing.

Definition at line 1777 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
inlineprotected

Increment the iterator.

Definition at line 1770 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 699 of file mesh_base.h.

◆ isBoundary() [2/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
CheckVerticesTCheck if any vertex lies on the boundary (true) or check if any edge lies on the boundary (false).

Definition at line 710 of file mesh_base.h.

◆ isBoundary() [3/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 718 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
inlineprotected

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

Definition at line 1871 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
inlineprotected

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

Definition at line 1853 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 bounddary.

Definition at line 691 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

◆ 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 649 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 658 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 641 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

◆ 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 559 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

◆ 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 739 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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
inlineprotected

Always manifold.

Definition at line 1889 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 730 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
inlineprotected

Check if the given vertex is manifold.

Definition at line 1896 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
inlineprotected

Check if all vertices in the mesh are manifold.

Definition at line 1919 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
inlineprotected

Always manifold.

Definition at line 1912 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 615 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 622 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 608 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 601 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteEdge(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteFace(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteVertex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getFace(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getFaceAroundFaceCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getFaceAroundVertexCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getFaceIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getHalfEdge(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getIncomingHalfEdgeAroundVertexCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getIncomingHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getInnerHalfEdgeAroundFaceCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getInnerHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getNextHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOppositeFaceIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOppositeHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOriginatingVertexIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOuterHalfEdgeAroundFaceCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOuterHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOutgoingHalfEdgeAroundVertexCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOutgoingHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getPrevHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getTerminatingVertexIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getVertex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getVertexAroundFaceCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getVertexAroundVertexCirculator(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isDeleted(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isIsolated(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isManifold(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::markDeleted(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setFace(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setFaceIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setHalfEdge(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setInnerHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setNextHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setOutgoingHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setPrevHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setTerminatingVertexIndex(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 
)
inlineprotected

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

Parameters
[in]idx_he_abIndex to the half-edge between the vertices a and b.
[in]idx_he_bcIndex to the half-edge between the vertices b and c.
[in,out]idx_free_half_edgeFree half-edge needed to re-connect the half-edges around vertex b.

Definition at line 1317 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().

◆ markDeleted() [1/4]

template<class DerivedT , class MeshTraitsT , class MeshTagT >
void pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::markDeleted ( const EdgeIndex idx_edge)
inlineprotected

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

Definition at line 1686 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)
inlineprotected

Mark the given face as deleted.

Definition at line 1695 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)
inlineprotected

Mark the given half-edge as deleted.

Definition at line 1678 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)
inlineprotected

◆ 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 
)
inlineprotected

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

Definition at line 1569 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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   
)
inlineprotected

Both edges are not on the boundary.

Non-manifold version.

Definition at line 1653 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   
)
inlineprotected

Both edges are not on the boundary.

Manifold version.

Definition at line 1617 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 
)
inlineprotected

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

Template Parameters
ElementContainerTe.g. std::vector <Vertex>
DataContainerTe.g. std::vector <VertexData>
IndexContainerTe.g. std::vector <VertexIndex>
HasDataTIntegral constant specifying if the mesh has data associated with the elements.
Parameters
[in,out]elementsContainer for the mesh elements. Resized to the new size.
[in,out]data_cloudContainer 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 1716 of file mesh_base.h.

◆ 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
inlineprotected

Does nothing.

Definition at line 1941 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
inlineprotected

◆ 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 824 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 833 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 816 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  n,
const typename DataCloudT::value_type &  data,
std::true_type   
) const
inlineprotected

◆ resizeData() [2/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
inlineprotected

Does nothing.

Definition at line 1954 of file mesh_base.h.

◆ 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 853 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 864 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 845 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_cloudThe new edge data. Must be the same as the current data.
Returns
true if the cloud could be set.

Definition at line 983 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 
)
inlineprotected

Set the face at the given index.

Definition at line 2049 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_cloudThe new face data. Must be the same as the current data.
Returns
true if the cloud could be set.

Definition at line 1018 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 
)
inlineprotected

Set the face index to a given half-edge.

Definition at line 1833 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 
)
inlineprotected

Set the half-edge at the given index.

Definition at line 2021 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_cloudThe new half-edge data. Must be the same as the current data.
Returns
true if the cloud could be set.

Definition at line 948 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 
)
inlineprotected

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

Definition at line 1841 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 
)
inlineprotected

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

Definition at line 1816 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 
)
inlineprotected

◆ 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 
)
inlineprotected

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

Definition at line 1824 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::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 
)
inlineprotected

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

Definition at line 1808 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 
)
inlineprotected

Set the vertex at the given index.

Definition at line 1993 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_cloudThe new vertex data. Must be the same as the current data.
Returns
true if the cloud could be set.

Definition at line 913 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 765 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::cleanUp().

◆ sizeFaces()

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

◆ 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 757 of file mesh_base.h.

Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology().

◆ sizeVertices()

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

Friends And Related Function Documentation

◆ pcl::geometry::MeshIO

template<class DerivedT , class MeshTraitsT , class MeshTagT >
template<class MeshT >
friend class pcl::geometry::MeshIO
friend

Definition at line 2108 of file mesh_base.h.


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