#pragma once #include #include #include namespace hpr::mesh { class Edge; class Vertex : public vec { friend class Mesh; using base = vec; protected: darray p_refEdges; public: Vertex() : base{} {} Vertex(const scalar& x, const scalar& y, const scalar& z) : base{x, y, z} {} ~Vertex() override { for (auto& e: p_refEdges) e = nullptr; } darray& refEdges() { return p_refEdges; } void addRefEdge(Edge* edge) { p_refEdges.push(edge); } }; }