Half-edge mesh that can only store triangles. More...
#include <triangle_mesh.h>
Public Types | |
typedef pcl::geometry::MeshBase < TriangleMesh< MeshTraitsT > , MeshTraitsT, TriangleMeshTag > | Base |
typedef boost::shared_ptr < const Self > | ConstPtr |
typedef Base::EdgeData | EdgeData |
typedef Base::EdgeDataCloud | EdgeDataCloud |
typedef Base::EdgeIndex | EdgeIndex |
typedef Base::EdgeIndices | EdgeIndices |
typedef Base::FaceAroundFaceCirculator | FaceAroundFaceCirculator |
typedef Base::FaceAroundVertexCirculator | FaceAroundVertexCirculator |
typedef Base::FaceData | FaceData |
typedef Base::FaceDataCloud | FaceDataCloud |
typedef Base::FaceIndex | FaceIndex |
typedef std::pair< FaceIndex, FaceIndex > | FaceIndexPair |
typedef Base::FaceIndices | FaceIndices |
typedef Base::HalfEdgeData | HalfEdgeData |
typedef Base::HalfEdgeDataCloud | HalfEdgeDataCloud |
typedef Base::HalfEdgeIndex | HalfEdgeIndex |
typedef Base::HalfEdgeIndices | HalfEdgeIndices |
typedef Base::HasEdgeData | HasEdgeData |
typedef Base::HasFaceData | HasFaceData |
typedef Base::HasHalfEdgeData | HasHalfEdgeData |
typedef Base::HasVertexData | HasVertexData |
typedef Base::IncomingHalfEdgeAroundVertexCirculator | IncomingHalfEdgeAroundVertexCirculator |
typedef Base::InnerHalfEdgeAroundFaceCirculator | InnerHalfEdgeAroundFaceCirculator |
typedef Base::IsManifold | IsManifold |
typedef Base::MeshTag | MeshTag |
typedef Base::OuterHalfEdgeAroundFaceCirculator | OuterHalfEdgeAroundFaceCirculator |
typedef Base::OutgoingHalfEdgeAroundVertexCirculator | OutgoingHalfEdgeAroundVertexCirculator |
typedef boost::shared_ptr< Self > | Ptr |
typedef TriangleMesh< MeshTraitsT > | Self |
typedef Base::VertexAroundFaceCirculator | VertexAroundFaceCirculator |
typedef Base::VertexAroundVertexCirculator | VertexAroundVertexCirculator |
typedef Base::VertexData | VertexData |
typedef Base::VertexDataCloud | VertexDataCloud |
typedef Base::VertexIndex | VertexIndex |
typedef Base::VertexIndices | VertexIndices |
Public Member Functions | |
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. Data is only added if it is associated with the elements. The last vertex is connected with the first one. | |
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. 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). | |
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. 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). | |
TriangleMesh () | |
Constructor. | |
Private Member Functions | |
FaceIndex | addFaceImpl (const VertexIndices &vertices, const FaceData &face_data, const EdgeData &edge_data, const HalfEdgeData &half_edge_data) |
addFace for the triangular mesh. | |
FaceIndexPair | connectTrianglePair (const HalfEdgeIndex &idx_he_ab, const HalfEdgeIndex &idx_he_cd, const VertexIndex &idx_v_a, const VertexIndex &idx_v_b, const VertexIndex &idx_v_c, const VertexIndex &idx_v_d, const FaceData &face_data, const EdgeData &edge_data, const HalfEdgeData &he_data) |
Connect the triangles a-b-c and a-c-d. The edges a-b and c-d must be old and the edges b-c and d-a must be new. | |
Private Attributes | |
VertexIndices | add_triangle_ |
Storage for adding a triangle. | |
HalfEdgeIndices | inner_he_atp_ |
Storage for addTrianglePair. | |
std::vector< bool > | is_new_atp_ |
Storage for addTrianglePair. | |
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 61 of file triangle_mesh.h.
typedef pcl::geometry::MeshBase<TriangleMesh <MeshTraitsT>, MeshTraitsT, TriangleMeshTag> pcl::geometry::TriangleMesh< MeshTraitsT >::Base |
Definition at line 65 of file triangle_mesh.h.
typedef boost::shared_ptr<const Self> pcl::geometry::TriangleMesh< MeshTraitsT >::ConstPtr |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 69 of file triangle_mesh.h.
typedef Base::EdgeData pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 73 of file triangle_mesh.h.
typedef Base::EdgeDataCloud pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeDataCloud |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 85 of file triangle_mesh.h.
typedef Base::EdgeIndex pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeIndex |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 91 of file triangle_mesh.h.
typedef Base::EdgeIndices pcl::geometry::TriangleMesh< MeshTraitsT >::EdgeIndices |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 97 of file triangle_mesh.h.
typedef Base::FaceAroundFaceCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::FaceAroundFaceCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 108 of file triangle_mesh.h.
typedef Base::FaceAroundVertexCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::FaceAroundVertexCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 104 of file triangle_mesh.h.
typedef Base::FaceData pcl::geometry::TriangleMesh< MeshTraitsT >::FaceData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 74 of file triangle_mesh.h.
typedef Base::FaceDataCloud pcl::geometry::TriangleMesh< MeshTraitsT >::FaceDataCloud |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 86 of file triangle_mesh.h.
typedef Base::FaceIndex pcl::geometry::TriangleMesh< MeshTraitsT >::FaceIndex |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 92 of file triangle_mesh.h.
typedef std::pair<FaceIndex, FaceIndex> pcl::geometry::TriangleMesh< MeshTraitsT >::FaceIndexPair |
Definition at line 93 of file triangle_mesh.h.
typedef Base::FaceIndices pcl::geometry::TriangleMesh< MeshTraitsT >::FaceIndices |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 98 of file triangle_mesh.h.
typedef Base::HalfEdgeData pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 72 of file triangle_mesh.h.
typedef Base::HalfEdgeDataCloud pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeDataCloud |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 84 of file triangle_mesh.h.
typedef Base::HalfEdgeIndex pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeIndex |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 90 of file triangle_mesh.h.
typedef Base::HalfEdgeIndices pcl::geometry::TriangleMesh< MeshTraitsT >::HalfEdgeIndices |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 96 of file triangle_mesh.h.
typedef Base::HasEdgeData pcl::geometry::TriangleMesh< MeshTraitsT >::HasEdgeData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 80 of file triangle_mesh.h.
typedef Base::HasFaceData pcl::geometry::TriangleMesh< MeshTraitsT >::HasFaceData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 81 of file triangle_mesh.h.
typedef Base::HasHalfEdgeData pcl::geometry::TriangleMesh< MeshTraitsT >::HasHalfEdgeData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 79 of file triangle_mesh.h.
typedef Base::HasVertexData pcl::geometry::TriangleMesh< MeshTraitsT >::HasVertexData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 78 of file triangle_mesh.h.
typedef Base::IncomingHalfEdgeAroundVertexCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::IncomingHalfEdgeAroundVertexCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 103 of file triangle_mesh.h.
typedef Base::InnerHalfEdgeAroundFaceCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::InnerHalfEdgeAroundFaceCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 106 of file triangle_mesh.h.
typedef Base::IsManifold pcl::geometry::TriangleMesh< MeshTraitsT >::IsManifold |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 75 of file triangle_mesh.h.
typedef Base::MeshTag pcl::geometry::TriangleMesh< MeshTraitsT >::MeshTag |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 76 of file triangle_mesh.h.
typedef Base::OuterHalfEdgeAroundFaceCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::OuterHalfEdgeAroundFaceCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 107 of file triangle_mesh.h.
typedef Base::OutgoingHalfEdgeAroundVertexCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::OutgoingHalfEdgeAroundVertexCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 102 of file triangle_mesh.h.
typedef boost::shared_ptr<Self> pcl::geometry::TriangleMesh< MeshTraitsT >::Ptr |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 68 of file triangle_mesh.h.
typedef TriangleMesh<MeshTraitsT> pcl::geometry::TriangleMesh< MeshTraitsT >::Self |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 67 of file triangle_mesh.h.
typedef Base::VertexAroundFaceCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::VertexAroundFaceCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 105 of file triangle_mesh.h.
typedef Base::VertexAroundVertexCirculator pcl::geometry::TriangleMesh< MeshTraitsT >::VertexAroundVertexCirculator |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 101 of file triangle_mesh.h.
typedef Base::VertexData pcl::geometry::TriangleMesh< MeshTraitsT >::VertexData |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 71 of file triangle_mesh.h.
typedef Base::VertexDataCloud pcl::geometry::TriangleMesh< MeshTraitsT >::VertexDataCloud |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 83 of file triangle_mesh.h.
typedef Base::VertexIndex pcl::geometry::TriangleMesh< MeshTraitsT >::VertexIndex |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 89 of file triangle_mesh.h.
typedef Base::VertexIndices pcl::geometry::TriangleMesh< MeshTraitsT >::VertexIndices |
Reimplemented from pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, TriangleMeshTag >.
Definition at line 95 of file triangle_mesh.h.
pcl::geometry::TriangleMesh< MeshTraitsT >::TriangleMesh | ( | ) | [inline] |
Constructor.
Definition at line 111 of file triangle_mesh.h.
FaceIndex pcl::geometry::TriangleMesh< 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.
[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 133 of file triangle_mesh.h.
FaceIndex pcl::geometry::TriangleMesh< MeshTraitsT >::addFaceImpl | ( | const VertexIndices & | vertices, |
const FaceData & | face_data, | ||
const EdgeData & | edge_data, | ||
const HalfEdgeData & | half_edge_data | ||
) | [inline, private] |
addFace for the triangular mesh.
Definition at line 261 of file triangle_mesh.h.
FaceIndexPair pcl::geometry::TriangleMesh< MeshTraitsT >::addTrianglePair | ( | const VertexIndices & | vertices, |
const FaceData & | face_data = FaceData () , |
||
const EdgeData & | edge_data = EdgeData () , |
||
const HalfEdgeData & | half_edge_data = HalfEdgeData () |
||
) | [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 156 of file triangle_mesh.h.
FaceIndexPair pcl::geometry::TriangleMesh< MeshTraitsT >::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 () |
||
) | [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 183 of file triangle_mesh.h.
FaceIndexPair pcl::geometry::TriangleMesh< MeshTraitsT >::connectTrianglePair | ( | const HalfEdgeIndex & | idx_he_ab, |
const HalfEdgeIndex & | idx_he_cd, | ||
const VertexIndex & | idx_v_a, | ||
const VertexIndex & | idx_v_b, | ||
const VertexIndex & | idx_v_c, | ||
const VertexIndex & | idx_v_d, | ||
const FaceData & | face_data, | ||
const EdgeData & | edge_data, | ||
const HalfEdgeData & | he_data | ||
) | [inline, private] |
Connect the triangles a-b-c and a-c-d. The edges a-b and c-d must be old and the edges b-c and d-a must be new.
Definition at line 277 of file triangle_mesh.h.
friend class pcl::geometry::MeshBase< TriangleMesh< MeshTraitsT >, MeshTraitsT, pcl::geometry::TriangleMeshTag > [friend] |
Definition at line 257 of file triangle_mesh.h.
VertexIndices pcl::geometry::TriangleMesh< MeshTraitsT >::add_triangle_ [private] |
Storage for adding a triangle.
Definition at line 346 of file triangle_mesh.h.
HalfEdgeIndices pcl::geometry::TriangleMesh< MeshTraitsT >::inner_he_atp_ [private] |
Storage for addTrianglePair.
Definition at line 349 of file triangle_mesh.h.
std::vector<bool> pcl::geometry::TriangleMesh< MeshTraitsT >::is_new_atp_ [private] |
Storage for addTrianglePair.
Definition at line 352 of file triangle_mesh.h.