Point Cloud Library (PCL)  1.7.0
Public Types | Public Member Functions | Friends
pcl::geometry::PolygonMesh< MeshTraitsT > Class Template Reference

General half-edge mesh that can store any polygon with a minimum number of vertices of 3. More...

#include <pcl/geometry/polygon_mesh.h>

+ Inheritance diagram for pcl::geometry::PolygonMesh< MeshTraitsT >:

List of all members.

Public Types

typedef
pcl::geometry::MeshBase
< PolygonMesh< MeshTraitsT >
, MeshTraitsT, PolygonMeshTag
Base
typedef PolygonMesh< MeshTraitsT > Self
typedef boost::shared_ptr< SelfPtr
typedef boost::shared_ptr
< const Self
ConstPtr
typedef Base::VertexData VertexData
typedef Base::HalfEdgeData HalfEdgeData
typedef Base::EdgeData EdgeData
typedef Base::FaceData FaceData
typedef Base::IsManifold IsManifold
typedef Base::MeshTag MeshTag
typedef Base::HasVertexData HasVertexData
typedef Base::HasHalfEdgeData HasHalfEdgeData
typedef Base::HasEdgeData HasEdgeData
typedef Base::HasFaceData HasFaceData
typedef Base::VertexDataCloud VertexDataCloud
typedef Base::HalfEdgeDataCloud HalfEdgeDataCloud
typedef Base::EdgeDataCloud EdgeDataCloud
typedef Base::FaceDataCloud FaceDataCloud
typedef Base::VertexIndex VertexIndex
typedef Base::HalfEdgeIndex HalfEdgeIndex
typedef Base::EdgeIndex EdgeIndex
typedef Base::FaceIndex FaceIndex
typedef Base::VertexIndices VertexIndices
typedef Base::HalfEdgeIndices HalfEdgeIndices
typedef Base::EdgeIndices EdgeIndices
typedef Base::FaceIndices FaceIndices
typedef
Base::VertexAroundVertexCirculator 
VertexAroundVertexCirculator
typedef
Base::OutgoingHalfEdgeAroundVertexCirculator 
OutgoingHalfEdgeAroundVertexCirculator
typedef
Base::IncomingHalfEdgeAroundVertexCirculator 
IncomingHalfEdgeAroundVertexCirculator
typedef
Base::FaceAroundVertexCirculator 
FaceAroundVertexCirculator
typedef
Base::VertexAroundFaceCirculator 
VertexAroundFaceCirculator
typedef
Base::InnerHalfEdgeAroundFaceCirculator 
InnerHalfEdgeAroundFaceCirculator
typedef
Base::OuterHalfEdgeAroundFaceCirculator 
OuterHalfEdgeAroundFaceCirculator
typedef
Base::FaceAroundFaceCirculator 
FaceAroundFaceCirculator

Public Member Functions

 PolygonMesh ()
 Constructor.
FaceIndex addFace (const VertexIndex &idx_v_0, const VertexIndex &idx_v_1, const VertexIndex &idx_v_2, const FaceData &face_data=FaceData(), const EdgeData &edge_data=EdgeData(), const HalfEdgeData &half_edge_data=HalfEdgeData())
 Add a triangle to the mesh.
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.

Friends

class pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, pcl::geometry::PolygonMeshTag >

Detailed Description

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

General half-edge mesh that can store any polygon with a minimum number of vertices of 3.

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

Definition at line 59 of file polygon_mesh.h.


Member Typedef Documentation

template<class MeshTraitsT >
typedef pcl::geometry::MeshBase<PolygonMesh <MeshTraitsT>, MeshTraitsT, PolygonMeshTag> pcl::geometry::PolygonMesh< MeshTraitsT >::Base

Definition at line 63 of file polygon_mesh.h.

template<class MeshTraitsT >
typedef boost::shared_ptr<const Self> pcl::geometry::PolygonMesh< MeshTraitsT >::ConstPtr
template<class MeshTraitsT >
typedef Base::EdgeData pcl::geometry::PolygonMesh< MeshTraitsT >::EdgeData
template<class MeshTraitsT >
typedef Base::EdgeDataCloud pcl::geometry::PolygonMesh< MeshTraitsT >::EdgeDataCloud
template<class MeshTraitsT >
typedef Base::EdgeIndex pcl::geometry::PolygonMesh< MeshTraitsT >::EdgeIndex
template<class MeshTraitsT >
typedef Base::EdgeIndices pcl::geometry::PolygonMesh< MeshTraitsT >::EdgeIndices
template<class MeshTraitsT >
typedef Base::FaceAroundFaceCirculator pcl::geometry::PolygonMesh< MeshTraitsT >::FaceAroundFaceCirculator
template<class MeshTraitsT >
typedef Base::FaceAroundVertexCirculator pcl::geometry::PolygonMesh< MeshTraitsT >::FaceAroundVertexCirculator
template<class MeshTraitsT >
typedef Base::FaceData pcl::geometry::PolygonMesh< MeshTraitsT >::FaceData
template<class MeshTraitsT >
typedef Base::FaceDataCloud pcl::geometry::PolygonMesh< MeshTraitsT >::FaceDataCloud
template<class MeshTraitsT >
typedef Base::FaceIndex pcl::geometry::PolygonMesh< MeshTraitsT >::FaceIndex
template<class MeshTraitsT >
typedef Base::FaceIndices pcl::geometry::PolygonMesh< MeshTraitsT >::FaceIndices
template<class MeshTraitsT >
typedef Base::HalfEdgeData pcl::geometry::PolygonMesh< MeshTraitsT >::HalfEdgeData
template<class MeshTraitsT >
typedef Base::HalfEdgeDataCloud pcl::geometry::PolygonMesh< MeshTraitsT >::HalfEdgeDataCloud
template<class MeshTraitsT >
typedef Base::HalfEdgeIndex pcl::geometry::PolygonMesh< MeshTraitsT >::HalfEdgeIndex
template<class MeshTraitsT >
typedef Base::HalfEdgeIndices pcl::geometry::PolygonMesh< MeshTraitsT >::HalfEdgeIndices
template<class MeshTraitsT >
typedef Base::HasEdgeData pcl::geometry::PolygonMesh< MeshTraitsT >::HasEdgeData
template<class MeshTraitsT >
typedef Base::HasFaceData pcl::geometry::PolygonMesh< MeshTraitsT >::HasFaceData
template<class MeshTraitsT >
typedef Base::HasHalfEdgeData pcl::geometry::PolygonMesh< MeshTraitsT >::HasHalfEdgeData
template<class MeshTraitsT >
typedef Base::HasVertexData pcl::geometry::PolygonMesh< MeshTraitsT >::HasVertexData
template<class MeshTraitsT >
typedef Base::IsManifold pcl::geometry::PolygonMesh< MeshTraitsT >::IsManifold
template<class MeshTraitsT >
typedef Base::MeshTag pcl::geometry::PolygonMesh< MeshTraitsT >::MeshTag
template<class MeshTraitsT >
typedef boost::shared_ptr<Self> pcl::geometry::PolygonMesh< MeshTraitsT >::Ptr
template<class MeshTraitsT >
typedef PolygonMesh<MeshTraitsT> pcl::geometry::PolygonMesh< MeshTraitsT >::Self
template<class MeshTraitsT >
typedef Base::VertexAroundFaceCirculator pcl::geometry::PolygonMesh< MeshTraitsT >::VertexAroundFaceCirculator
template<class MeshTraitsT >
typedef Base::VertexData pcl::geometry::PolygonMesh< MeshTraitsT >::VertexData
template<class MeshTraitsT >
typedef Base::VertexDataCloud pcl::geometry::PolygonMesh< MeshTraitsT >::VertexDataCloud
template<class MeshTraitsT >
typedef Base::VertexIndex pcl::geometry::PolygonMesh< MeshTraitsT >::VertexIndex
template<class MeshTraitsT >
typedef Base::VertexIndices pcl::geometry::PolygonMesh< MeshTraitsT >::VertexIndices

Constructor & Destructor Documentation

template<class MeshTraitsT >
pcl::geometry::PolygonMesh< MeshTraitsT >::PolygonMesh ( ) [inline]

Constructor.

Definition at line 108 of file polygon_mesh.h.


Member Function Documentation

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

Add a triangle 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]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 129 of file polygon_mesh.h.

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

template<class MeshTraitsT >
FaceIndex pcl::geometry::PolygonMesh< 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 155 of file polygon_mesh.h.

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


Friends And Related Function Documentation

template<class MeshTraitsT >
friend class pcl::geometry::MeshBase< PolygonMesh< MeshTraitsT >, MeshTraitsT, pcl::geometry::PolygonMeshTag > [friend]

Definition at line 174 of file polygon_mesh.h.


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