Point Cloud Library (PCL)
1.7.2
|
Base class for the half-edge mesh. More...
#include <pcl/geometry/mesh_base.h>
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((boost::Convertible< IsManifold, bool >)) | |
MeshBase () | |
Constructor. More... | |
this | addData (vertex_data_cloud_, vertex_data, HasVertexData()) |
return (VertexIndex(static_cast< int >(this->sizeVertices()-1))) | |
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... | |
size_t | sizeVertices () const |
Get the number of the vertices. More... | |
size_t | sizeHalfEdges () const |
Get the number of the half-edges. More... | |
size_t | sizeEdges () const |
Get the number of the edges. More... | |
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 size_t n) |
Reserve storage space n vertices. More... | |
void | reserveEdges (const size_t n) |
Reserve storage space for n edges (2*n storage space is reserved for the half-edges). More... | |
void | reserveFaces (const size_t n) |
Reserve storage space for n faces. More... | |
this | resizeData (vertex_data_cloud_, n, data, HasVertexData()) |
void | resizeEdges (const 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... | |
this | resizeData (face_data_cloud_, n, data, HasFaceData()) |
void | clear () |
Clear all mesh elements and data. More... | |
VertexDataCloud & | getVertexDataCloud () |
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... | |
HalfEdgeDataCloud & | getHalfEdgeDataCloud () |
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... | |
EdgeDataCloud & | getEdgeDataCloud () |
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... | |
FaceDataCloud & | getFaceDataCloud () |
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... | |
Public Attributes | |
VertexIndex | |
Add a vertex to the mesh. More... | |
void | |
Resize the the vertices to n elements. More... | |
Protected Types | |
typedef pcl::geometry::Vertex | Vertex |
typedef pcl::geometry::HalfEdge | HalfEdge |
typedef pcl::geometry::Face | Face |
typedef std::vector< Vertex > | Vertices |
typedef std::vector< HalfEdge > | HalfEdges |
typedef std::vector< Face > | Faces |
typedef Vertices::iterator | VertexIterator |
typedef HalfEdges::iterator | HalfEdgeIterator |
typedef Faces::iterator | FaceIterator |
typedef Vertices::const_iterator | VertexConstIterator |
typedef HalfEdges::const_iterator | HalfEdgeConstIterator |
typedef Faces::const_iterator | FaceConstIterator |
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, boost::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, boost::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 &, boost::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, boost::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, boost::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, boost::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 &, boost::true_type) |
Both half-edges are old (manifold version). More... | |
void | connectOldOld (const HalfEdgeIndex &, const HalfEdgeIndex &idx_he_bc, const VertexIndex &idx_v_b, boost::false_type) |
Both half-edges are old (non-manifold version). More... | |
template<class DataT > | |
void | addData (pcl::PointCloud< DataT > &cloud, const DataT &data, boost::true_type) |
Add mesh data. More... | |
template<class DataT > | |
void | addData (pcl::PointCloud< DataT > &, const DataT &, boost::false_type) |
Does nothing. More... | |
void | deleteFace (const FaceIndex &idx_face, boost::true_type) |
Manifold version of deleteFace. More... | |
void | deleteFace (const FaceIndex &idx_face, boost::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, boost::true_type) |
Both edges are not on the boundary. More... | |
void | reconnectNBNB (const HalfEdgeIndex &idx_he_bc, const HalfEdgeIndex &, const VertexIndex &idx_v_b, boost::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, boost::true_type) const |
Increment the iterator. More... | |
template<class IteratorT > | |
void | incrementIf (IteratorT &, boost::false_type) const |
Does nothing. More... | |
template<class ConstIteratorT , class IteratorT > | |
void | assignIf (const ConstIteratorT source, IteratorT target, boost::true_type) const |
Assign the source iterator to the target iterator. More... | |
template<class ConstIteratorT , class IteratorT > | |
void | assignIf (const ConstIteratorT, IteratorT, boost::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, boost::true_type) const |
Check if any vertex of the face lies on the boundary. More... | |
bool | isBoundary (const FaceIndex &idx_face, boost::false_type) const |
Check if any edge of the face lies on the boundary. More... | |
bool | isManifold (const VertexIndex &, boost::true_type) const |
Always manifold. More... | |
bool | isManifold (const VertexIndex &idx_vertex, boost::false_type) const |
Check if the given vertex is manifold. More... | |
bool | isManifold (boost::true_type) const |
Always manifold. More... | |
bool | isManifold (boost::false_type) const |
Check if all vertices in the mesh are manifold. More... | |
template<class DataCloudT > | |
void | reserveData (DataCloudT &cloud, const size_t n, boost::true_type) const |
Reserve storage space for the mesh data. More... | |
template<class DataCloudT > | |
void | reserveData (DataCloudT &, const size_t, boost::false_type) const |
Does nothing. More... | |
template<class DataCloudT > | |
void | resizeData (DataCloudT &, const size_t n, const typename DataCloudT::value_type &data, boost::true_type) const |
Resize the mesh data. More... | |
template<class DataCloudT > | |
void | resizeData (DataCloudT &, const size_t, const typename DataCloudT::value_type &, boost::false_type) const |
Does nothing. More... | |
template<class DataCloudT > | |
void | clearData (DataCloudT &cloud, boost::true_type) const |
Clear the mesh data. More... | |
template<class DataCloudT > | |
void | clearData (DataCloudT &, boost::false_type) const |
Does nothing. More... | |
Vertex & | getVertex (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... | |
HalfEdge & | getHalfEdge (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... | |
Face & | getFace (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 |
Base class for the half-edge mesh.
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. |
Definition at line 98 of file mesh_base.h.
typedef boost::shared_ptr<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::ConstPtr |
Definition at line 104 of file mesh_base.h.
typedef DerivedT pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Derived |
Definition at line 106 of file mesh_base.h.
typedef MeshTraitsT::EdgeData pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeData |
Definition at line 111 of file mesh_base.h.
typedef pcl::PointCloud<EdgeData> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeDataCloud |
Definition at line 128 of file mesh_base.h.
typedef pcl::geometry::EdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeIndex |
Definition at line 134 of file mesh_base.h.
typedef std::vector<EdgeIndex> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::EdgeIndices |
Definition at line 139 of file mesh_base.h.
|
protected |
Definition at line 1128 of file mesh_base.h.
typedef pcl::geometry::FaceAroundFaceCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceAroundFaceCirculator |
Definition at line 150 of file mesh_base.h.
typedef pcl::geometry::FaceAroundVertexCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceAroundVertexCirculator |
Definition at line 146 of file mesh_base.h.
|
protected |
Definition at line 1140 of file mesh_base.h.
typedef MeshTraitsT::FaceData pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceData |
Definition at line 112 of file mesh_base.h.
typedef pcl::PointCloud<FaceData> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceDataCloud |
Definition at line 129 of file mesh_base.h.
typedef pcl::geometry::FaceIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceIndex |
Definition at line 135 of file mesh_base.h.
typedef std::vector<FaceIndex> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::FaceIndices |
Definition at line 140 of file mesh_base.h.
|
protected |
Definition at line 1136 of file mesh_base.h.
|
protected |
Definition at line 1132 of file mesh_base.h.
|
protected |
Definition at line 1127 of file mesh_base.h.
|
protected |
Definition at line 1139 of file mesh_base.h.
typedef MeshTraitsT::HalfEdgeData pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeData |
Definition at line 110 of file mesh_base.h.
typedef pcl::PointCloud<HalfEdgeData> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeDataCloud |
Definition at line 127 of file mesh_base.h.
typedef pcl::geometry::HalfEdgeIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeIndex |
Definition at line 133 of file mesh_base.h.
typedef std::vector<HalfEdgeIndex> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HalfEdgeIndices |
Definition at line 138 of file mesh_base.h.
|
protected |
Definition at line 1135 of file mesh_base.h.
|
protected |
Definition at line 1131 of file mesh_base.h.
typedef boost::integral_constant<bool, !boost::is_same <EdgeData , pcl::geometry::NoData>::value> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasEdgeData |
Definition at line 123 of file mesh_base.h.
typedef boost::integral_constant<bool, !boost::is_same <FaceData , pcl::geometry::NoData>::value> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasFaceData |
Definition at line 124 of file mesh_base.h.
typedef boost::integral_constant<bool, !boost::is_same <HalfEdgeData, pcl::geometry::NoData>::value> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasHalfEdgeData |
Definition at line 122 of file mesh_base.h.
typedef boost::integral_constant<bool, !boost::is_same <VertexData , pcl::geometry::NoData>::value> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::HasVertexData |
Definition at line 121 of file mesh_base.h.
typedef pcl::geometry::IncomingHalfEdgeAroundVertexCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::IncomingHalfEdgeAroundVertexCirculator |
Definition at line 145 of file mesh_base.h.
typedef pcl::geometry::InnerHalfEdgeAroundFaceCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::InnerHalfEdgeAroundFaceCirculator |
Definition at line 148 of file mesh_base.h.
typedef MeshTraitsT::IsManifold pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::IsManifold |
Definition at line 113 of file mesh_base.h.
typedef MeshTagT pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::MeshTag |
Definition at line 118 of file mesh_base.h.
typedef pcl::geometry::OuterHalfEdgeAroundFaceCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::OuterHalfEdgeAroundFaceCirculator |
Definition at line 149 of file mesh_base.h.
typedef pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::OutgoingHalfEdgeAroundVertexCirculator |
Definition at line 144 of file mesh_base.h.
typedef boost::shared_ptr<Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Ptr |
Definition at line 103 of file mesh_base.h.
typedef MeshBase<DerivedT, MeshTraitsT, MeshTagT> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::Self |
Definition at line 102 of file mesh_base.h.
|
protected |
Definition at line 1126 of file mesh_base.h.
typedef pcl::geometry::VertexAroundFaceCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexAroundFaceCirculator |
Definition at line 147 of file mesh_base.h.
typedef pcl::geometry::VertexAroundVertexCirculator<const Self> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexAroundVertexCirculator |
Definition at line 143 of file mesh_base.h.
|
protected |
Definition at line 1138 of file mesh_base.h.
typedef MeshTraitsT::VertexData pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexData |
Definition at line 109 of file mesh_base.h.
typedef pcl::PointCloud<VertexData> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexDataCloud |
Definition at line 126 of file mesh_base.h.
typedef pcl::geometry::VertexIndex pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexIndex |
Definition at line 132 of file mesh_base.h.
typedef std::vector<VertexIndex> pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::VertexIndices |
Definition at line 137 of file mesh_base.h.
|
protected |
Definition at line 1134 of file mesh_base.h.
|
protected |
Definition at line 1130 of file mesh_base.h.
|
inline |
Constructor.
Definition at line 153 of file mesh_base.h.
this pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::addData | ( | vertex_data_cloud_ | , |
vertex_data | , | ||
HasVertexData() | |||
) |
|
inlineprotected |
Add mesh data.
Definition at line 1520 of file mesh_base.h.
|
inlineprotected |
Does nothing.
Definition at line 1528 of file mesh_base.h.
|
inlineprotected |
Add an edge between the two given vertices and connect them with the vertices.
[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. |
Definition at line 1219 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
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.
[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. |
Definition at line 196 of file mesh_base.h.
|
inlineprotected |
General implementation of addFace.
Definition at line 1144 of file mesh_base.h.
|
inlineprotected |
Assign the source iterator to the target iterator.
Definition at line 1822 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::remove().
|
inlineprotected |
Does nothing.
Definition at line 1829 of file mesh_base.h.
pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::BOOST_CONCEPT_ASSERT | ( | (boost::Convertible< IsManifold, bool >) | ) |
|
inlineprotected |
Check if the edge between the two vertices can be added.
[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! |
Definition at line 1246 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
inlineprotected |
Non manifold version of checkTopology1.
Definition at line 1264 of file mesh_base.h.
|
inlineprotected |
Check if the face may be added (mesh does not become non-manifold).
Definition at line 1294 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
inlineprotected |
Check if the half-edge bc is the next half-edge of ab.
[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) |
Definition at line 1317 of file mesh_base.h.
|
inline |
Removes all mesh elements and data that are marked as deleted.
Definition at line 275 of file mesh_base.h.
|
inline |
Clear all mesh elements and data.
Definition at line 889 of file mesh_base.h.
|
inlineprotected |
Clear the mesh data.
Definition at line 1999 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::clear().
|
inlineprotected |
Does nothing.
Definition at line 2006 of file mesh_base.h.
|
inlineprotected |
Add a face to the mesh and connect it to the half-edges.
[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. |
Definition at line 1381 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
inlineprotected |
Both half-edges are new (manifold version).
Definition at line 1408 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewNew().
|
inlineprotected |
Both half-edges are new (non-manifold version).
Definition at line 1424 of file mesh_base.h.
|
inlineprotected |
The first half-edge is new.
Definition at line 1450 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
inlineprotected |
The second half-edge is new.
Definition at line 1465 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
inlineprotected |
Both half-edges are old (manifold version).
Definition at line 1480 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
inlineprotected |
Both half-edges are old (non-manifold version).
Definition at line 1489 of file mesh_base.h.
|
inlineprotected |
Connect the next and prev indices of the two half-edges with each other.
Definition at line 1399 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewOld(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::makeAdjacent(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect().
|
inline |
Mark the given half-edge, the opposite half-edge and the associated faces as deleted.
Definition at line 235 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteEdge().
|
inline |
Mark the given edge (both half-edges) and the associated faces as deleted.
Definition at line 252 of file mesh_base.h.
|
inline |
Mark the given face as deleted.
More faces are deleted if the manifold mesh would become non-manifold.
Definition at line 263 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().
|
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 1538 of file mesh_base.h.
|
inlineprotected |
Non-manifold version of deleteFace.
Definition at line 1557 of file mesh_base.h.
|
inline |
Mark the given vertex and all connected half-edges and faces as deleted.
Definition at line 209 of file mesh_base.h.
|
inline |
Check if the mesh is empty.
Definition at line 797 of file mesh_base.h.
|
inline |
Check if the edges are empty.
Definition at line 811 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::empty().
|
inline |
Check if the faces are empty.
Definition at line 818 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::empty().
|
inline |
Check if the vertices are empty.
Definition at line 804 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::empty().
|
inline |
Get access to the stored edge data.
Definition at line 985 of file mesh_base.h.
|
inline |
Get the stored edge data.
Definition at line 992 of file mesh_base.h.
|
inline |
Get the index associated to the given edge data.
Definition at line 1091 of file mesh_base.h.
|
inlineprotected |
Get the face for the given index.
Definition at line 2072 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getInnerHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::markDeleted(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setInnerHalfEdgeIndex().
|
inlineprotected |
Get the face for the given index.
Definition at line 2080 of file mesh_base.h.
|
inline |
Definition at line 552 of file mesh_base.h.
|
inline |
Definition at line 560 of file mesh_base.h.
|
inline |
Definition at line 488 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteVertex().
|
inline |
Definition at line 496 of file mesh_base.h.
|
inline |
Get access to the stored face data.
Definition at line 1023 of file mesh_base.h.
|
inline |
Get the stored face data.
Definition at line 1030 of file mesh_base.h.
|
inline |
Get the face index to a given half-edge.
Definition at line 400 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteEdge(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOppositeFaceIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnectNBNB().
|
inline |
Get the index associated to the given face data.
Definition at line 1106 of file mesh_base.h.
|
inlineprotected |
Get the half-edge for the given index.
Definition at line 2044 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteFace(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getFaceIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getNextHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getPrevHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getTerminatingVertexIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::markDeleted(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setFaceIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setNextHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setPrevHalfEdgeIndex(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setTerminatingVertexIndex().
|
inlineprotected |
Get the half-edge for the given index.
Definition at line 2052 of file mesh_base.h.
|
inline |
Get access to the stored half-edge data.
Definition at line 947 of file mesh_base.h.
|
inline |
Get the stored half-edge data.
Definition at line 954 of file mesh_base.h.
|
inline |
Get the index associated to the given half-edge data.
Definition at line 1076 of file mesh_base.h.
|
inline |
Definition at line 472 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology2(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnectNBNB().
|
inline |
Definition at line 480 of file mesh_base.h.
|
inline |
Get the incoming half-edge index to a given vertex.
Definition at line 347 of file mesh_base.h.
|
inline |
Definition at line 520 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteFace().
|
inline |
Definition at line 528 of file mesh_base.h.
|
inline |
Get the inner half-edge index to a given face.
Definition at line 420 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOuterHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isDeleted(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology().
|
inline |
Get the next half-edge index to a given half-edge.
Definition at line 384 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology2(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::makeAdjacent(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect().
|
inline |
Get the face index to a given half-edge.
Definition at line 408 of file mesh_base.h.
|
inline |
Get the opposite half-edge index to a given half-edge.
Definition at line 375 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology2(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewOld(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteEdge(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteFace(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getIncomingHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOppositeFaceIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOriginatingVertexIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOuterHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect().
|
inline |
Get the originating vertex index to a given half-edge.
Definition at line 367 of file mesh_base.h.
|
inline |
Definition at line 536 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary().
|
inline |
Definition at line 544 of file mesh_base.h.
|
inline |
Get the outer half-edge inex to a given face.
Definition at line 428 of file mesh_base.h.
|
inline |
Definition at line 456 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldOld(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isManifold().
|
inline |
Definition at line 464 of file mesh_base.h.
|
inline |
Get the outgoing half-edge index to a given vertex.
Definition at line 339 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology1(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldOld(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getIncomingHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isDeleted(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isIsolated().
|
inline |
Get the previous half-edge index to a given half-edge.
Definition at line 392 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewOld(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::makeAdjacent(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect().
|
inline |
Get the terminating vertex index to a given half-edge.
Definition at line 359 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology1(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOriginatingVertexIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isDeleted(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect().
|
inlineprotected |
Get the vertex for the given index.
Definition at line 2016 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::getOutgoingHalfEdgeIndex(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::markDeleted(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::setOutgoingHalfEdgeIndex().
|
inlineprotected |
Get the vertex for the given index.
Definition at line 2024 of file mesh_base.h.
|
inline |
Definition at line 504 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary().
|
inline |
Definition at line 512 of file mesh_base.h.
|
inline |
Definition at line 440 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology1().
|
inline |
Definition at line 448 of file mesh_base.h.
|
inline |
Get access to the stored vertex data.
Definition at line 909 of file mesh_base.h.
|
inline |
Get the stored vertex data.
Definition at line 916 of file mesh_base.h.
|
inline |
Get the index associated to the given vertex data.
Definition at line 1061 of file mesh_base.h.
|
inlineprotected |
Increment the iterator.
Definition at line 1809 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::remove().
|
inlineprotected |
Does nothing.
Definition at line 1816 of file mesh_base.h.
|
inline |
Check if the given vertex lies on the boundary.
Isolated vertices are considered to be on the boundary.
Definition at line 695 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology1(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology2(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldOld(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteEdge(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteFace(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isManifold(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnectNBNB().
|
inline |
Check if the given half-edge lies on the bounddary.
Definition at line 704 of file mesh_base.h.
|
inline |
Check if the given edge lies on the boundary (any of the two half-edges lies on the boundary.
Definition at line 712 of file mesh_base.h.
|
inline |
Check if the given face lies on the boundary.
There are two versions of this method, selected by the template parameter.
CheckVerticesT | Check if any vertex lies on the boundary (true) or check if any edge lies on the boundary (false). |
Definition at line 723 of file mesh_base.h.
|
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 731 of file mesh_base.h.
|
inlineprotected |
Check if any vertex of the face lies on the boundary.
Definition at line 1892 of file mesh_base.h.
|
inlineprotected |
Check if any edge of the face lies on the boundary.
Definition at line 1910 of file mesh_base.h.
|
inline |
Check if the given vertex is marked as deleted.
Definition at line 646 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 >::isDeleted(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::remove().
|
inline |
Check if the given half-edge is marked as deleted.
Definition at line 654 of file mesh_base.h.
|
inline |
Check if the given edge (any of the two half-edges) is marked as deleted.
Definition at line 662 of file mesh_base.h.
|
inline |
Check if the given face is marked as deleted.
Definition at line 671 of file mesh_base.h.
|
inline |
Check if the other mesh has the same topology as this mesh.
Definition at line 572 of file mesh_base.h.
|
inline |
Check if the given vertex is isolated (not connected to other elements).
Definition at line 683 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::checkTopology1(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isBoundary(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isManifold().
|
inline |
Check if the given vertex is manifold.
Isolated vertices are manifold.
Definition at line 743 of file mesh_base.h.
|
inline |
Check if the mesh is manifold.
Definition at line 752 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isManifold().
|
inlineprotected |
Always manifold.
Definition at line 1928 of file mesh_base.h.
|
inlineprotected |
Check if the given vertex is manifold.
Definition at line 1935 of file mesh_base.h.
|
inlineprotected |
Always manifold.
Definition at line 1951 of file mesh_base.h.
|
inlineprotected |
Check if all vertices in the mesh are manifold.
Definition at line 1958 of file mesh_base.h.
|
inline |
Check if the given vertex index is a valid index into the mesh.
Definition at line 614 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().
|
inline |
Check if the given half-edge index is a valid index into the mesh.
Definition at line 621 of file mesh_base.h.
|
inline |
Check if the given edge index is a valid index into the mesh.
Definition at line 628 of file mesh_base.h.
|
inline |
Check if the given face index is a valid index into the mesh.
Definition at line 635 of file mesh_base.h.
|
inlineprotected |
Make the half-edges bc the next half-edge of ab.
[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 1357 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::addFaceImplBase().
|
inlineprotected |
Mark the given vertex as deleted.
Definition at line 1710 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 >::markDeleted(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect().
|
inlineprotected |
Mark the given half-edge as deleted.
Definition at line 1718 of file mesh_base.h.
|
inlineprotected |
Mark the given edge (both half-edges) as deleted.
Definition at line 1726 of file mesh_base.h.
|
inlineprotected |
Mark the given face as deleted.
Definition at line 1735 of file mesh_base.h.
|
inlineprotected |
Deconnect the input half-edges from the mesh and adjust the indices of the connected half-edges.
Definition at line 1609 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::deleteFace().
|
inlineprotected |
Both edges are not on the boundary.
Manifold version.
Definition at line 1657 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect().
|
inlineprotected |
Both edges are not on the boundary.
Non-manifold version.
Definition at line 1693 of file mesh_base.h.
|
inlineprotected |
Removes mesh elements and data that are marked as deleted from the container.
IndexContainerT | e.g. std::vector <VertexIndex> | |
ElementContainerT | e.g. std::vector <Vertex> | |
DataContainerT | e.g. std::vector <VertexData> | |
HasDataT | Integral constant specifying if the mesh has data associated with the elements. | |
[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. |
Definition at line 1755 of file mesh_base.h.
|
inlineprotected |
Reserve storage space for the mesh data.
Definition at line 1973 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reserveEdges(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reserveFaces(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reserveVertices().
|
inlineprotected |
Does nothing.
Definition at line 1980 of file mesh_base.h.
|
inline |
Reserve storage space for n edges (2*n storage space is reserved for the half-edges).
Definition at line 837 of file mesh_base.h.
|
inline |
Reserve storage space for n faces.
Definition at line 846 of file mesh_base.h.
|
inline |
Reserve storage space n vertices.
Definition at line 829 of file mesh_base.h.
this pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeData | ( | vertex_data_cloud_ | , |
n | , | ||
data | , | ||
HasVertexData() | |||
) |
this pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::resizeData | ( | face_data_cloud_ | , |
n | , | ||
data | , | ||
HasFaceData() | |||
) |
|
inlineprotected |
Resize the mesh data.
Definition at line 1986 of file mesh_base.h.
|
inlineprotected |
Does nothing.
Definition at line 1993 of file mesh_base.h.
|
inline |
Resize the edges to n elements (half-edges will hold 2*n elements).
Definition at line 866 of file mesh_base.h.
pcl::geometry::MeshBase< DerivedT, MeshTraitsT, MeshTagT >::return | ( | VertexIndex(static_cast< int >(this->sizeVertices()-1)) | ) |
|
inline |
Change the stored edge data.
[in] | edge_data_cloud | The new edge data. Must be the same as the current data. |
Definition at line 1002 of file mesh_base.h.
|
inlineprotected |
Set the face at the given index.
Definition at line 2088 of file mesh_base.h.
|
inline |
Change the stored face data.
[in] | face_data_cloud | The new face data. Must be the same as the current data. |
Definition at line 1040 of file mesh_base.h.
|
inlineprotected |
Set the face index to a given half-edge.
Definition at line 1872 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectFace().
|
inlineprotected |
Set the half-edge at the given index.
Definition at line 2060 of file mesh_base.h.
|
inline |
Change the stored half-edge data.
[in] | half_edge_data_cloud | The new half-edge data. Must be the same as the current data. |
Definition at line 964 of file mesh_base.h.
|
inlineprotected |
Set the inner half-edge index to a given face.
Definition at line 1880 of file mesh_base.h.
|
inlineprotected |
Set the next half_edge index to a given half-edge.
Definition at line 1855 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectPrevNext().
|
inlineprotected |
Set the outgoing half-edge index to a given vertex.
Definition at line 1839 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectNewOld(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldNew(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectOldOld(), pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnect(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::reconnectNBNB().
|
inlineprotected |
Set the previous half-edge index to a given half-edge.
Definition at line 1863 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectPrevNext().
|
inlineprotected |
Set the terminating vertex index to a given half-edge.
Definition at line 1847 of file mesh_base.h.
|
inlineprotected |
Set the vertex at the given index.
Definition at line 2032 of file mesh_base.h.
|
inline |
Change the stored vertex data.
[in] | vertex_data_cloud | The new vertex data. Must be the same as the current data. |
Definition at line 926 of file mesh_base.h.
|
inline |
Get the number of the edges.
Definition at line 778 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::cleanUp().
|
inline |
Get the number of the faces.
Definition at line 786 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::connectFace(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology().
|
inline |
Get the number of the half-edges.
Definition at line 770 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology().
|
inline |
Get the number of the vertices.
Definition at line 763 of file mesh_base.h.
Referenced by pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isEqualTopology(), and pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >::isManifold().
|
friend |
Definition at line 2147 of file mesh_base.h.
|
inline |
Add a vertex to the mesh.
[in] | vertex_data | Data that is stored in the vertex. This is only added if the mesh has data associated with the vertices. |
Definition at line 181 of file mesh_base.h.
|
inline |
Resize the the vertices to n elements.
Resize the faces to n elements.
Definition at line 859 of file mesh_base.h.