#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: static const char* VIEW_NAME; struct GraphParams { bool animatedTransition; bool centerActiveNode; bool scrollToTop; bool isIndexedList; bool bezierEdges; }; 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; virtual void scrollToValues(int xValue, int yValue) = 0; virtual void activateEdge(Id edgeId, bool centerOrigin) = 0; }; #endif // GRAPH_VIEW_H