#ifndef GRAPH_VIEW_H #define GRAPH_VIEW_H #include #include "utility/math/Vector2.h" #include "utility/types.h" #include "component/view/View.h" struct DummyEdge; struct DummyNode; class Graph; class GraphView : public View { public: struct GraphParams { bool animatedTransition; bool centerActiveNode; bool scrollToTop; bool isIndexedList; }; GraphView(ViewLayout* viewLayout); virtual ~GraphView(); virtual std::string getName() const; virtual void rebuildGraph( std::shared_ptr graph, const std::vector>& nodes, const std::vector>& edges, const GraphParams params) = 0; virtual void clear() = 0; virtual void focusTokenIds(const std::vector& focusedTokenIds) = 0; virtual void defocusTokenIds(const std::vector& defocusedTokenIds) = 0; virtual void resizeView() = 0; virtual Vec2i getViewSize() const = 0; }; #endif // GRAPH_VIEW_H