#pragma once #include #include #include #include class Edge; class TriFace { public: TriFace(Edge* edge0, Edge* edge1, Edge* edge2, unsigned id=0); ~TriFace(); static std::unique_ptr Create(Edge* edge0, Edge* edge1, Edge* edge2, unsigned id=0); std::vector getNodeIds() const; void addVectorAttribute(const std::string& tag, const std::vector& values); std::vector getVectorAttribute(const std::string& tag) const; private: unsigned mId{0}; std::unordered_map > mVectorAttributes; Edge* mEdge0{nullptr}; Edge* mEdge1{nullptr}; Edge* mEdge2{nullptr}; };