ArffWidgetCoord.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // ArffWidgetCoord.cpp
  2. #include "ArffWidgetCoord.h"
  3. #include "../arffHelper/ArffUtil.h"
  4. #include "Unused.h"
  5. #include <QTime>
  6. #include <cassert>
  7. using namespace std;
  8. // PUBLIC:
  9. ArffWidgetCoord::ArffWidgetCoord(QWidget *parent) : ArffWidgetBase(parent), m_plotAttInd(0)
  10. {
  11. }
  12. // PROTECTED:
  13. void ArffWidgetCoord::PaintLine(QPainter *painter)
  14. {
  15. QPoint points[m_intervalLength];
  16. QRect geom = geometry();
  17. painter->setPen(QPen(Qt::black, 3.0*geom.height()/1000.0));
  18. painter->translate(0, geom.height());
  19. painter->scale(1,-1);
  20. painter->setRenderHint(QPainter::Antialiasing, true);
  21. for (int i=0; i<m_intervalLength; i++)
  22. {
  23. double x = (double)geom.width()*((*m_pXYArff)[m_pointerStart+i][m_timeInd] - (double)m_winStartTime)/(double)(m_windowDuration);
  24. points[i].setX((int)x);
  25. points[i].setY((double)(*m_pXYArff)[m_pointerStart+i][m_plotAttInd]*(double)geom.height()/m_windowMaxVal);
  26. if (i>0)
  27. painter->drawLine(points[i], points[i-1]);
  28. }
  29. painter->translate(0, geom.height());
  30. painter->scale(1,-1);
  31. painter->setRenderHint(QPainter::Antialiasing, false);
  32. }
  33. // CLASS ArffWidgetCoordX
  34. ArffWidgetCoordX::ArffWidgetCoordX(QWidget *parent) : ArffWidgetCoord(parent)
  35. {
  36. }
  37. void ArffWidgetCoordX::SetData(Arff &arff, int attToPaint, double maxValue)
  38. {
  39. ArffWidgetCoord::SetData(arff, attToPaint, maxValue);
  40. m_plotAttInd = m_xInd;
  41. }
  42. void ArffWidgetCoordX::SetFovData(Arff &arff, double maxValue)
  43. {
  44. ArffWidgetCoord::SetFovData(arff, maxValue);
  45. m_plotAttInd = m_xInd;
  46. }
  47. // CLASS ArffWidgetCoordY
  48. ArffWidgetCoordY::ArffWidgetCoordY(QWidget *parent) : ArffWidgetCoord(parent)
  49. {
  50. }
  51. void ArffWidgetCoordY::SetData(Arff &arff, int attToPaint, double maxValue)
  52. {
  53. ArffWidgetCoord::SetData(arff, attToPaint, maxValue);
  54. m_plotAttInd = m_yInd;
  55. }
  56. void ArffWidgetCoordY::SetFovData(Arff &arff, double maxValue)
  57. {
  58. ArffWidgetCoord::SetFovData(arff, maxValue);
  59. m_plotAttInd = m_yInd;
  60. }