4 #include "qsfmlcanvas.h"
6 #include "spatial_index.h"
8 #include "../geometry/geometry.h"
10 #include <unordered_set>
16 namespace canvas_states {
23 virtual void update() {}
24 virtual void wheelEvent(QWheelEvent * e);
25 virtual void keyPressEvent(QKeyEvent *e);
26 virtual void mousePressEvent(QMouseEvent * e) {}
27 virtual void mouseMoveEvent(QMouseEvent *e) {}
28 virtual void mouseReleaseEvent(QMouseEvent * e) {}
34 virtual void update() {}
35 virtual void wheelEvent(QWheelEvent * e){};
36 virtual void keyPressEvent(QKeyEvent *e){};
37 virtual void mousePressEvent(QMouseEvent * e) {}
38 virtual void mouseMoveEvent(QMouseEvent *e) {}
39 virtual void mouseReleaseEvent(QMouseEvent * e) {}
45 void mousePressEvent(QMouseEvent * e);
54 void mousePressEvent(QMouseEvent * e);
55 void keyPressEvent(QKeyEvent *e);
60 sf::Vector2f m_initial;
64 void mouseMoveEvent(QMouseEvent *e);
65 void mouseReleaseEvent(QMouseEvent * e);
81 std::unordered_set< ophidian::gui::quad > m_non_movable_quads;
82 void render(sf::RenderTarget & target);
88 sf::Vector2f mapPixelToCamera(
const sf::Vector2i & pixel)
const;
91 bool hasAnimation()
const;
97 virtual void select(
quad the_quad);
98 virtual void unselect(
quad the_quad);
100 void indexQuad(
quad the_quad);
101 void unindexQuad(
quad the_quad);
103 quad drawQuad(
const geometry::point<double> & p1,
const geometry::point<double> & p2,
const geometry::point<double> & p3,
const geometry::point<double> & p4);
104 quad quadAt(
const sf::Vector2f & point)
const;
105 bool hasQuad(
const sf::Vector2f & point)
const;
106 void setFixed(
quad the_quad);
107 virtual void dropQuad(
quad the_quad);
108 virtual void eraseQuad(
quad the_quad);
109 bool isFixed(
quad the_quad)
const;
112 wire_quad drawRect(
const geometry::point<double> & p1,
const geometry::point<double> & p2,
const geometry::point<double> & p3,
const geometry::point<double> & p4);
113 line drawLine(
const geometry::point<double> & p1,
const geometry::point<double> & p2);
119 void cameraCenter(
const sf::Vector2f & position);
120 void moveCamera(
const sf::Vector2f & delta);
121 sf::Vector2f cameraSize()
const;
122 void cameraSize(
const sf::Vector2f & new_size);
123 void zoom(
double value);
127 void save_to_file(
const std::string & filename);
130 void wheelEvent(QWheelEvent * e);
131 void resizeEvent(QResizeEvent *e);
132 void keyPressEvent(QKeyEvent *e);
133 void mousePressEvent(QMouseEvent * e);
134 void mouseMoveEvent(QMouseEvent *e);
135 void mouseReleaseEvent(QMouseEvent * e);
138 void paint(T element,
const sf::Color & color) {
139 m_canvas.paint(element, color);
143 void transform(T element,
const sf::Transform & transformation) {
144 m_canvas.transform(element, transformation);
148 void erase(T element) {
149 m_canvas.destroy(element);
154 void clear(
const sf::Color & color);
165 #endif // SFMLCANVAS_H
Definition: circuit_canvas.h:58
Definition: spatial_index.h:26
Definition: circuit_canvas.h:42
Definition: qsfmlcanvas.h:11
Definition: drawable_batch.h:12
Definition: circuit_canvas.h:17
Definition: circuit_canvas.h:31
Definition: circuit_canvas.h:71
Definition: circuit_canvas.h:48