Point Cloud Library (PCL)  1.11.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
List of all members | Public Types | Public Member Functions | Friends
pcl::geometry::QuadMesh< MeshTraitsT > Class Template Reference

Half-edge mesh that can only store quads. More...

#include <pcl/geometry/quad_mesh.h>

+ Inheritance diagram for pcl::geometry::QuadMesh< MeshTraitsT >:
+ Collaboration diagram for pcl::geometry::QuadMesh< MeshTraitsT >:

Public Types

using Base = pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >
 
using Self = QuadMesh< MeshTraitsT >
 
using Ptr = shared_ptr< Self >
 
using ConstPtr = shared_ptr< const Self >
 
using VertexData = typename Base::VertexData
 
using HalfEdgeData = typename Base::HalfEdgeData
 
using EdgeData = typename Base::EdgeData
 
using FaceData = typename Base::FaceData
 
using IsManifold = typename Base::IsManifold
 
using MeshTag = typename Base::MeshTag
 
using HasVertexData = typename Base::HasVertexData
 
using HasHalfEdgeData = typename Base::HasHalfEdgeData
 
using HasEdgeData = typename Base::HasEdgeData
 
using HasFaceData = typename Base::HasFaceData
 
using VertexDataCloud = typename Base::VertexDataCloud
 
using HalfEdgeDataCloud = typename Base::HalfEdgeDataCloud
 
using EdgeDataCloud = typename Base::EdgeDataCloud
 
using FaceDataCloud = typename Base::FaceDataCloud
 
using VertexIndex = typename Base::VertexIndex
 
using HalfEdgeIndex = typename Base::HalfEdgeIndex
 
using EdgeIndex = typename Base::EdgeIndex
 
using FaceIndex = typename Base::FaceIndex
 
using VertexIndices = typename Base::VertexIndices
 
using HalfEdgeIndices = typename Base::HalfEdgeIndices
 
using EdgeIndices = typename Base::EdgeIndices
 
using FaceIndices = typename Base::FaceIndices
 
using VertexAroundVertexCirculator = typename Base::VertexAroundVertexCirculator
 
using OutgoingHalfEdgeAroundVertexCirculator = typename Base::OutgoingHalfEdgeAroundVertexCirculator
 
using IncomingHalfEdgeAroundVertexCirculator = typename Base::IncomingHalfEdgeAroundVertexCirculator
 
using FaceAroundVertexCirculator = typename Base::FaceAroundVertexCirculator
 
using VertexAroundFaceCirculator = typename Base::VertexAroundFaceCirculator
 
using InnerHalfEdgeAroundFaceCirculator = typename Base::InnerHalfEdgeAroundFaceCirculator
 
using OuterHalfEdgeAroundFaceCirculator = typename Base::OuterHalfEdgeAroundFaceCirculator
 
using FaceAroundFaceCirculator = typename Base::FaceAroundFaceCirculator
 
- Public Types inherited from pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >
using Self = MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, QuadMeshTag >
 
using Ptr = shared_ptr< Self >
 
using ConstPtr = shared_ptr< const Self >
 
using Derived = QuadMesh< MeshTraitsT >
 
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
 

Public Member Functions

 QuadMesh ()
 Constructor. More...
 
FaceIndex addFace (const VertexIndex &idx_v_0, const VertexIndex &idx_v_1, const VertexIndex &idx_v_2, const VertexIndex &idx_v_3, const FaceData &face_data=FaceData(), const EdgeData &edge_data=EdgeData(), const HalfEdgeData &half_edge_data=HalfEdgeData())
 Add a quad to the mesh. More...
 

Friends

class pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, pcl::geometry::QuadMeshTag >
 

Detailed Description

template<class MeshTraitsT>
class pcl::geometry::QuadMesh< MeshTraitsT >

Half-edge mesh that can only store quads.

Template Parameters
MeshTraitsTPlease have a look at pcl::geometry::DefaultMeshTraits.
Author
Martin Saelzle

Definition at line 60 of file quad_mesh.h.

Member Typedef Documentation

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::Base = pcl::geometry::MeshBase <QuadMesh <MeshTraitsT>, MeshTraitsT, QuadMeshTag>

Definition at line 64 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::ConstPtr = shared_ptr<const Self>

Definition at line 68 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::EdgeData = typename Base::EdgeData

Definition at line 72 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::EdgeDataCloud = typename Base::EdgeDataCloud

Definition at line 84 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::EdgeIndex = typename Base::EdgeIndex

Definition at line 90 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::EdgeIndices = typename Base::EdgeIndices

Definition at line 95 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::FaceAroundFaceCirculator = typename Base::FaceAroundFaceCirculator

Definition at line 106 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::FaceAroundVertexCirculator = typename Base::FaceAroundVertexCirculator

Definition at line 102 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::FaceData = typename Base::FaceData

Definition at line 73 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::FaceDataCloud = typename Base::FaceDataCloud

Definition at line 85 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::FaceIndex = typename Base::FaceIndex

Definition at line 91 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::FaceIndices = typename Base::FaceIndices

Definition at line 96 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HalfEdgeData = typename Base::HalfEdgeData

Definition at line 71 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HalfEdgeDataCloud = typename Base::HalfEdgeDataCloud

Definition at line 83 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HalfEdgeIndex = typename Base::HalfEdgeIndex

Definition at line 89 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HalfEdgeIndices = typename Base::HalfEdgeIndices

Definition at line 94 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HasEdgeData = typename Base::HasEdgeData

Definition at line 79 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HasFaceData = typename Base::HasFaceData

Definition at line 80 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HasHalfEdgeData = typename Base::HasHalfEdgeData

Definition at line 78 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::HasVertexData = typename Base::HasVertexData

Definition at line 77 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::IncomingHalfEdgeAroundVertexCirculator = typename Base::IncomingHalfEdgeAroundVertexCirculator

Definition at line 101 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::InnerHalfEdgeAroundFaceCirculator = typename Base::InnerHalfEdgeAroundFaceCirculator

Definition at line 104 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::IsManifold = typename Base::IsManifold

Definition at line 74 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::MeshTag = typename Base::MeshTag

Definition at line 75 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::OuterHalfEdgeAroundFaceCirculator = typename Base::OuterHalfEdgeAroundFaceCirculator

Definition at line 105 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::OutgoingHalfEdgeAroundVertexCirculator = typename Base::OutgoingHalfEdgeAroundVertexCirculator

Definition at line 100 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::Ptr = shared_ptr<Self>

Definition at line 67 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::Self = QuadMesh<MeshTraitsT>

Definition at line 66 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::VertexAroundFaceCirculator = typename Base::VertexAroundFaceCirculator

Definition at line 103 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::VertexAroundVertexCirculator = typename Base::VertexAroundVertexCirculator

Definition at line 99 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::VertexData = typename Base::VertexData

Definition at line 70 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::VertexDataCloud = typename Base::VertexDataCloud

Definition at line 82 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::VertexIndex = typename Base::VertexIndex

Definition at line 88 of file quad_mesh.h.

template<class MeshTraitsT >
using pcl::geometry::QuadMesh< MeshTraitsT >::VertexIndices = typename Base::VertexIndices

Definition at line 93 of file quad_mesh.h.

Constructor & Destructor Documentation

template<class MeshTraitsT >
pcl::geometry::QuadMesh< MeshTraitsT >::QuadMesh ( )
inline

Constructor.

Definition at line 109 of file quad_mesh.h.

Member Function Documentation

template<class MeshTraitsT >
FaceIndex pcl::geometry::QuadMesh< MeshTraitsT >::addFace ( const VertexIndex idx_v_0,
const VertexIndex idx_v_1,
const VertexIndex idx_v_2,
const VertexIndex idx_v_3,
const FaceData face_data = FaceData (),
const EdgeData edge_data = EdgeData (),
const HalfEdgeData half_edge_data = HalfEdgeData () 
)
inline

Add a quad 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]idx_v_0Index to the first vertex.
[in]idx_v_1Index to the second vertex.
[in]idx_v_2Index to the third vertex.
[in]idx_v_3Index to the fourth vertex.
[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 130 of file quad_mesh.h.

Friends And Related Function Documentation

template<class MeshTraitsT >
friend class pcl::geometry::MeshBase< QuadMesh< MeshTraitsT >, MeshTraitsT, pcl::geometry::QuadMeshTag >
friend

Definition at line 149 of file quad_mesh.h.


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