43 #include <pcl/memory.h>
44 #include <pcl/pcl_macros.h>
45 #include <pcl/geometry/mesh_base.h>
59 template <
class MeshTraitsT>
67 using Ptr = shared_ptr<Self>;
137 add_triangle_ [0] = idx_v_0;
138 add_triangle_ [1] = idx_v_1;
139 add_triangle_ [2] = idx_v_2;
141 return (this->addFaceImplBase (add_triangle_, face_data, edge_data, half_edge_data));
164 add_quad_ [0] = idx_v_0;
165 add_quad_ [1] = idx_v_1;
166 add_quad_ [2] = idx_v_2;
167 add_quad_ [3] = idx_v_3;
169 return (this->addFaceImplBase (add_quad_, face_data, edge_data, half_edge_data));
179 addFaceImpl (const VertexIndices& vertices,
180 const FaceData& face_data,
181 const EdgeData& edge_data,
182 const HalfEdgeData& half_edge_data)
184 return (this->addFaceImplBase (vertices, face_data, edge_data, half_edge_data));
typename Base::EdgeIndex EdgeIndex
typename Base::InnerHalfEdgeAroundFaceCirculator InnerHalfEdgeAroundFaceCirculator
typename Base::VertexIndices VertexIndices
typename Base::VertexDataCloud VertexDataCloud
typename Base::HalfEdgeIndex HalfEdgeIndex
typename Base::VertexAroundVertexCirculator VertexAroundVertexCirculator
typename Base::HalfEdgeIndices HalfEdgeIndices
typename MeshTraitsT::VertexData VertexData
typename Base::VertexData VertexData
typename MeshTraitsT::IsManifold IsManifold
typename Base::EdgeDataCloud EdgeDataCloud
typename Base::OuterHalfEdgeAroundFaceCirculator OuterHalfEdgeAroundFaceCirculator
typename Base::IncomingHalfEdgeAroundVertexCirculator IncomingHalfEdgeAroundVertexCirculator
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
typename Base::IsManifold IsManifold
typename Base::FaceAroundVertexCirculator FaceAroundVertexCirculator
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.
typename MeshTraitsT::HalfEdgeData HalfEdgeData
typename MeshTraitsT::FaceData FaceData
typename Base::FaceIndex FaceIndex
shared_ptr< const Self > ConstPtr
typename Base::OutgoingHalfEdgeAroundVertexCirculator OutgoingHalfEdgeAroundVertexCirculator
typename Base::HalfEdgeData HalfEdgeData
typename Base::FaceData FaceData
Index used to access elements in the half-edge mesh.
typename Base::FaceIndices FaceIndices
typename Base::HasHalfEdgeData HasHalfEdgeData
typename Base::HasVertexData HasVertexData
typename Base::FaceDataCloud FaceDataCloud
typename Base::VertexAroundFaceCirculator VertexAroundFaceCirculator
Tag describing the type of the mesh.
typename Base::HasFaceData HasFaceData
typename Base::HalfEdgeDataCloud HalfEdgeDataCloud
typename MeshTraitsT::EdgeData EdgeData
typename Base::HasEdgeData HasEdgeData
typename Base::FaceAroundFaceCirculator FaceAroundFaceCirculator
Base class for the half-edge mesh.
typename Base::MeshTag MeshTag
General half-edge mesh that can store any polygon with a minimum number of vertices of 3...
typename Base::EdgeData EdgeData
typename Base::VertexIndex VertexIndex
PolygonMesh()
Constructor.
typename Base::EdgeIndices EdgeIndices
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.