#ifndef FLATPATTERN_HPP #define FLATPATTERN_HPP #include "trianglepatterngeometry.hpp" class FlatPattern : public FlatPatternGeometry { public: FlatPattern(); FlatPattern(const std::string &filename, bool addNormalsIfAbsent = true); FlatPattern(const std::vector &numberOfNodesPerSlot, const std::vector &edges); bool createHoneycombAtom(); void tilePattern(VCGEdgeMesh &pattern, VCGTriMesh &tileInto); void tilePattern(VCGEdgeMesh &pattern, VCGPolyMesh &tileInto, const bool &shouldDeleteDanglingEdges); void createFan(const size_t &fanSize = 6); void deleteDanglingVertices( vcg::tri::Allocator::PointerUpdater &pu); void deleteDanglingVertices(); private: void deleteDanglingEdges(); void removeDuplicateVertices(); void scale(); const double desiredBaseTriangleCentralEdgeSize{0.03}; }; #endif // FLATPATTERN_HPP