output_view.hpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef QT_OUTPUT_VIEW_HPP
  2. #define QT_OUTPUT_VIEW_HPP
  3. #include <QWidget>
  4. #include <QPainter>
  5. #include <QOpenGLWidget>
  6. #include <QMouseEvent>
  7. #include <GL/glut.h>
  8. #include "qt/output/kernel.hpp"
  9. class QtOutputView:public QOpenGLWidget{
  10. private:
  11. static constexpr size_t const arrow_step_x=3;
  12. static constexpr size_t const arrow_step_z=7;
  13. static constexpr double const scale_arrow=12000;
  14. static constexpr double const scale_arrow_head=0.1;
  15. size_t nX;
  16. double dX,lX;
  17. double factor;
  18. QtKernel* kernel;
  19. size_t step;
  20. public:
  21. QtOutputView(QtKernel* kernel);
  22. ~QtOutputView();
  23. void initializeGL();
  24. void resizeGL(int x,int h);
  25. void paintGL();
  26. double getP(size_t ix,size_t iz);
  27. double getPl(size_t ix);
  28. double getl(size_t ix);
  29. double getHydr(size_t ix);
  30. void setColor(size_t ix,size_t iz);
  31. /* void paintEvent(QPaintEvent* event);*/
  32. void draw(size_t t);
  33. void drawTriangle(size_t ix1,size_t iz1,size_t ix2,size_t iz2,size_t ix3,size_t iz3);
  34. void mousePressEvent(QMouseEvent* event);
  35. void displayInfos(double x,double y);
  36. void drawVector(size_t ix,size_t iz,double u,double v);
  37. void drawVectors();
  38. };
  39. inline
  40. QtOutputView::~QtOutputView(){
  41. }
  42. inline double
  43. QtOutputView::getP(size_t ix,size_t iz){
  44. return kernel->solution[step]->P[ix][iz];
  45. }
  46. inline double
  47. QtOutputView::getPl(size_t ix){
  48. return kernel->solution[step]->Pl[ix];
  49. }
  50. inline double
  51. QtOutputView::getl(size_t ix){
  52. return kernel->solution[step]->l[ix];
  53. }
  54. inline double
  55. QtOutputView::getHydr(size_t ix){
  56. return kernel->solution[step]->hydr[ix];
  57. }
  58. #endif