Ophidian
 All Classes Namespaces Functions
mysfmlcanvas.h
1 #ifndef OPHIDIAN_APPS_UDDAC2016_SFML_MYSFMLCANVAS_H
2 #define OPHIDIAN_APPS_UDDAC2016_SFML_MYSFMLCANVAS_H
3 
4 #include "qsfmlcanvas.h"
5 
6 #include "../gui/canvas.h"
7 #include "../gui/spatial_index.h"
8 #include "../canvas_controller.h"
9 
10 
11 namespace uddac2016 {
12 
13 class mysfmlcanvas : public QSFMLCanvas {
14 
15  canvas_controller m_controller;
16  ophidian::gui::canvas m_canvas;
17  sf::Font m_opensans;
18  sf::View m_camera_view;
19 
20 public:
21  mysfmlcanvas(QWidget *parent = 0);
22  virtual ~mysfmlcanvas();
23 
24  canvas_controller * controller();
25 
26  ophidian::gui::canvas * canvas();
27 
28  void OnInit();
29  void OnUpdate();
30  void wheelEvent(QWheelEvent * e);
31  void resizeEvent(QResizeEvent *e);
32  void keyPressEvent(QKeyEvent *e);
33  void mousePressEvent(QMouseEvent * e);
34  void mouseMoveEvent(QMouseEvent *e);
35  void mouseReleaseEvent(QMouseEvent * e);
36 
37  void center_view_on(const ophidian::geometry::point<double> & p1);
38  void view_size(const ophidian::geometry::point<double> & size);
39 
40  ophidian::gui::line line_create(const ophidian::geometry::point<double> & p1, const ophidian::geometry::point<double> & p2);
41  ophidian::gui::quad quad_create(const ophidian::geometry::point<double> & p1, const ophidian::geometry::point<double> & p2, const ophidian::geometry::point<double> & p3, const ophidian::geometry::point<double> & p4);
42 
44 
45  const std::array<sf::Vertex, 4> & quad_points(ophidian::gui::quad the_quad) const {
46  return m_canvas.quad_points(the_quad);
47  }
48 
49  void quads_animate(ophidian::gui::batch_animation *animation);
50 
51 
52 
53  template <class T>
54  void destroy(T element)
55  {
56  m_canvas.destroy(element);
57  }
58 
59  template <class T>
60  void transform(T element, const sf::Transform & transformation)
61  {
62  m_canvas.transform(element, transformation);
63  }
64 
65  template <class T>
66  void paint(T element, sf::Color color) {
67  m_canvas.paint(element, color);
68  }
69 
70  void quad_update(ophidian::gui::quad element, const ophidian::geometry::point<double> & p1, const ophidian::geometry::point<double> & p2, const ophidian::geometry::point<double> & p3, const ophidian::geometry::point<double> & p4) {
71  m_canvas.quad_update(element, p1, p2, p3, p4);
72  }
73 
74 
75 };
76 
77 }
78 
79 #endif /* OPHIDIAN_APPS_UDDAC2016_SFML_MYSFMLCANVAS_H */
Definition: drawable_batch.h:12
Definition: canvas.h:35
Definition: mysfmlcanvas.h:13
Definition: canvas.h:31
Definition: canvas.h:72