43#include <pcl/PolygonMesh.h>
44#include <pcl/conversions.h>
54template <
class HalfEdgeMeshT>
60 using VAFC =
typename HalfEdgeMesh::VertexAroundFaceCirculator;
61 using FaceIndex =
typename HalfEdgeMesh::FaceIndex;
72 polygon.vertices.push_back(
circ.getTargetIndex().get());
86template <
class HalfEdgeMeshT>
91 using VertexDataCloud =
typename HalfEdgeMesh::VertexDataCloud;
92 using VertexIndices =
typename HalfEdgeMesh::VertexIndices;
94 static_assert(HalfEdgeMesh::HasVertexData::value,
95 "Output mesh must have data associated with the vertices!");
97 VertexDataCloud vertices;
104 for (
const auto&
vertex : vertices) {
Iterator class for point clouds with or without given indices.
std::size_t size() const
Size of the range the iterator is going through.
void toFaceVertexMesh(const HalfEdgeMeshT &half_edge_mesh, pcl::PolygonMesh &face_vertex_mesh)
Convert a half-edge mesh to a face-vertex mesh.
int toHalfEdgeMesh(const pcl::PolygonMesh &face_vertex_mesh, HalfEdgeMeshT &half_edge_mesh)
Convert a face-vertex mesh to a half-edge mesh.
pcl::detail::MeshIndex< struct FaceIndexTag > FaceIndex
Index used to access elements in the half-edge mesh.
void toPCLPointCloud2(const pcl::PointCloud< PointT > &cloud, pcl::PCLPointCloud2 &msg)
Convert a pcl::PointCloud<T> object to a PCLPointCloud2 binary data blob.
void fromPCLPointCloud2(const pcl::PCLPointCloud2 &msg, pcl::PointCloud< PointT > &cloud, const MsgFieldMap &field_map)
Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.
Describes a set of vertices in a polygon mesh, by basically storing an array of indices.