Advertisement
FatalCatharsis

PlotWidget.h

Apr 13th, 2014
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #ifndef PLOTWIDGET_H
  2. #define PLOTWIDGET_H
  3.  
  4. #include <QWindow>
  5. #include <QWidget>
  6. #include <QOpenGLContext>
  7. #include <QOpenGLFunctions_3_0>
  8. #include <QTimer>
  9. #include <QGLWidget>
  10. #include <QResizeEvent>
  11. #include <QDebug>
  12. #include <cmath>
  13. #include <iostream>
  14. #include "vanim.h"
  15. #include "common.h"
  16.  
  17. class PlotWidget :
  18.     public QWidget
  19. {
  20.     Q_OBJECT
  21.  
  22. public:
  23.     PlotWidget(QWidget * plot, QWidget * parent = 0);
  24.  
  25.     void resizeEvent(QResizeEvent * event);
  26.  
  27.     QSize sizeHint() const {return QSize(600, 600);}
  28.  
  29.     QSize minimumSizeHint() const {return QSize(600, 600);}
  30.  
  31. private:
  32.     QWidget * m_Plot;
  33. };
  34.  
  35. class PlotWindow :
  36.     public QWindow
  37. {
  38.     Q_OBJECT
  39.  
  40.     static const int handleDistP = 40;
  41.  
  42. public:
  43.  
  44.     struct Handle
  45.     {
  46.         float x, y;
  47.         QColor color;
  48.         bool isPressed;
  49.     };
  50.  
  51. public:
  52.     PlotWindow(std::vector<std::pair<Point, vanim::comp> >& vec, QWindow * parent = 0);
  53.  
  54.     ~PlotWindow();
  55.  
  56.  
  57.  
  58. public slots:
  59.     void draw();
  60.  
  61.     void setTime(float);
  62.  
  63.     void setEditMode(EDITOR_MODE mode);
  64.  
  65.     void setKeyFrameMode(KEYFRAME_MODE mode)
  66.     {
  67.         m_KeyframeMode = mode;
  68.     }
  69.  
  70.     void setKeyframeSelection(int k)
  71.     {
  72.         m_KeyframeSelection = k;
  73.     }
  74.  
  75. signals:
  76.     void selectionChanged();
  77.  
  78.     void setSelection(int);
  79.  
  80.     void propKeyframeSelection(int k);
  81.  
  82. private:
  83.     void mousePressEvent(QMouseEvent *);
  84.  
  85.     void mouseDoubleClickEvent(QMouseEvent *);
  86.  
  87.     void mouseMoveEvent(QMouseEvent*);
  88.  
  89.     void mouseReleaseEvent(QMouseEvent *);
  90.  
  91.     void keyPressEvent(QKeyEvent*);
  92.  
  93.     void resizeEvent(QResizeEvent*);
  94.  
  95.     void updateHandles();
  96.  
  97. private:
  98.     float m_CurrentTime;
  99.     std::vector<std::pair<Point, vanim::comp> > & m_Points;
  100.     int m_Selection;
  101.  
  102.     Handle m_Rot;
  103.     QPoint m_PosBefore;
  104.     Handle m_ScaleX;
  105.     Handle m_ScaleY;
  106.     Handle m_Offset;
  107.  
  108.     bool m_SelectionPressed;
  109.     QOpenGLContext * m_Context;
  110.     QOpenGLFunctions_3_0 * gl;
  111.     QTimer * m_Timer;
  112.     uint m_PointTexture;
  113.     EDITOR_MODE m_EditMode;
  114.     KEYFRAME_MODE m_KeyframeMode;
  115.     int m_KeyframeSelection;
  116. };
  117.  
  118. #endif // PLOTWIDGET_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement