#ifndef VCGTRIMESH_HPP #define VCGTRIMESH_HPP #include #include using VertexIndex = size_t; class VCGTriMeshVertex; class VCGTriMeshEdge; class VCGTriMeshFace; struct VCGTriMeshUsedTypes : public vcg::UsedTypes::AsVertexType, vcg::Use::AsEdgeType, vcg::Use::AsFaceType> {}; class VCGTriMeshVertex : public vcg::Vertex {}; class VCGTriMeshFace : public vcg::Face {}; class VCGTriMeshEdge : public vcg::Edge {}; class VCGTriMesh : public vcg::tri::TriMesh, std::vector, std::vector> { public: VCGTriMesh(); VCGTriMesh(const std::string &filename); void loadFromPlyFile(const std::string &filename); Eigen::MatrixX3d getVertices() const; Eigen::MatrixX3i getFaces() const; bool savePly(const std::string plyFilename); template size_t getIndex(const MeshElement &element) { return vcg::tri::Index(*this, element); } }; #endif // VCGTRIMESH_HPP