Point Cloud Library (PCL)
1.11.0
|
Half-edge mesh that can only store triangles. More...
#include <pcl/geometry/triangle_mesh.h>
Public Types | |
using | Base = pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag > |
using | Self = TriangleMesh< 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 | FaceIndexPair = std::pair< FaceIndex, 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 |
![]() | |
using | Self = MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag > |
using | Ptr = shared_ptr< Self > |
using | ConstPtr = shared_ptr< const Self > |
using | Derived = TriangleMesh< 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 | |
TriangleMesh () | |
Constructor. More... | |
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. More... | |
FaceIndexPair | addTrianglePair (const VertexIndices &vertices, const FaceData &face_data=FaceData(), const EdgeData &edge_data=EdgeData(), const HalfEdgeData &half_edge_data=HalfEdgeData()) |
Add two triangles for the four given input vertices. More... | |
FaceIndexPair | addTrianglePair (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 two triangles for the four given input vertices. More... | |
Friends | |
class | pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, pcl::geometry::TriangleMeshTag > |
Half-edge mesh that can only store triangles.
MeshTraitsT | Please have a look at pcl::geometry::DefaultMeshTraits. |
Definition at line 62 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::Base = pcl::geometry::MeshBase <TriangleMesh <MeshTraitsT>, MeshTraitsT, TriangleMeshTag> |
Definition at line 66 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::ConstPtr = shared_ptr<const Self> |
Definition at line 70 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeData = typename Base::EdgeData |
Definition at line 74 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeDataCloud = typename Base::EdgeDataCloud |
Definition at line 86 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeIndex = typename Base::EdgeIndex |
Definition at line 92 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeIndices = typename Base::EdgeIndices |
Definition at line 98 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::FaceAroundFaceCirculator = typename Base::FaceAroundFaceCirculator |
Definition at line 109 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::FaceAroundVertexCirculator = typename Base::FaceAroundVertexCirculator |
Definition at line 105 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::FaceData = typename Base::FaceData |
Definition at line 75 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::FaceDataCloud = typename Base::FaceDataCloud |
Definition at line 87 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::FaceIndex = typename Base::FaceIndex |
Definition at line 93 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::FaceIndexPair = std::pair <FaceIndex, FaceIndex> |
Definition at line 94 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::FaceIndices = typename Base::FaceIndices |
Definition at line 99 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeData = typename Base::HalfEdgeData |
Definition at line 73 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeDataCloud = typename Base::HalfEdgeDataCloud |
Definition at line 85 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeIndex = typename Base::HalfEdgeIndex |
Definition at line 91 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeIndices = typename Base::HalfEdgeIndices |
Definition at line 97 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HasEdgeData = typename Base::HasEdgeData |
Definition at line 81 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HasFaceData = typename Base::HasFaceData |
Definition at line 82 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HasHalfEdgeData = typename Base::HasHalfEdgeData |
Definition at line 80 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::HasVertexData = typename Base::HasVertexData |
Definition at line 79 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::IncomingHalfEdgeAroundVertexCirculator = typename Base::IncomingHalfEdgeAroundVertexCirculator |
Definition at line 104 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::InnerHalfEdgeAroundFaceCirculator = typename Base::InnerHalfEdgeAroundFaceCirculator |
Definition at line 107 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::IsManifold = typename Base::IsManifold |
Definition at line 76 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::MeshTag = typename Base::MeshTag |
Definition at line 77 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::OuterHalfEdgeAroundFaceCirculator = typename Base::OuterHalfEdgeAroundFaceCirculator |
Definition at line 108 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::OutgoingHalfEdgeAroundVertexCirculator = typename Base::OutgoingHalfEdgeAroundVertexCirculator |
Definition at line 103 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::Ptr = shared_ptr<Self> |
Definition at line 69 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::Self = TriangleMesh<MeshTraitsT> |
Definition at line 68 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::VertexAroundFaceCirculator = typename Base::VertexAroundFaceCirculator |
Definition at line 106 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::VertexAroundVertexCirculator = typename Base::VertexAroundVertexCirculator |
Definition at line 102 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::VertexData = typename Base::VertexData |
Definition at line 72 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::VertexDataCloud = typename Base::VertexDataCloud |
Definition at line 84 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::VertexIndex = typename Base::VertexIndex |
Definition at line 90 of file triangle_mesh.h.
using pcl::geometry::TriangleMesh< MeshTraitsT >::VertexIndices = typename Base::VertexIndices |
Definition at line 96 of file triangle_mesh.h.
|
inline |
Constructor.
Definition at line 112 of file triangle_mesh.h.
|
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.
[in] | idx_v_0 | Index to the first vertex. |
[in] | idx_v_1 | Index to the second vertex. |
[in] | idx_v_2 | Index to the third vertex. |
[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 134 of file triangle_mesh.h.
Referenced by pcl::geometry::TriangleMesh< MeshTraitsT >::addTrianglePair().
|
inline |
Add two triangles for the four given input vertices.
When using a manifold triangle mesh it is not possible to connect two bounded regions without going through a non-manifold intermediate step. This method first tries to add the triangles individually and if this fails connects the whole configuration at once (if possible).
[in] | vertices | Indices to the vertices of the new face. (The size must be equal to four). |
[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 157 of file triangle_mesh.h.
|
inline |
Add two triangles for the four given input vertices.
When using a manifold triangle mesh it is not possible to connect two bounded regions without going through a non-manifold intermediate step. This method first tries to add the triangles individually and if this fails connects the whole configuration at once (if possible).
[in] | idx_v_0 | Index to the first vertex. |
[in] | idx_v_1 | Index to the second vertex. |
[in] | idx_v_2 | Index to the third vertex. |
[in] | idx_v_3 | Index to the fourth vertex. |
[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 181 of file triangle_mesh.h.
References pcl::geometry::TriangleMesh< MeshTraitsT >::addFace().
|
friend |
Definition at line 252 of file triangle_mesh.h.