ROIController.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef ROICONTROLLER_H
  2. #define ROICONTROLLER_H
  3. #include "showunit_global.h"
  4. #include <QObject>
  5. #include "ROI.h"
  6. #include<QList>
  7. #include "QHalconWindow.h"
  8. using namespace HalconCpp;
  9. enum class SHOWUNITSHARED_EXPORT ViewMessage
  10. {
  11. UpdateROI = 50,
  12. ChangedROISign,
  13. MovingROI,
  14. DeletedActROI,
  15. DelectedAllROIs,
  16. ActivatedROI,
  17. MouseMove,
  18. CreatedROI,
  19. UpdateImage,
  20. ErrReadingImage,
  21. ErrDefiningGC
  22. };
  23. class QHalconWindow;
  24. class SHOWUNITSHARED_EXPORT ROIController: public QObject
  25. {
  26. Q_OBJECT
  27. public:
  28. ROIController();
  29. ~ROIController();
  30. QList<ROI*> ROIList;
  31. void setViewController(QHalconWindow * view);
  32. HRegion getModelRegion(){ return modelROI; }
  33. ROI* getActiveROI();
  34. int getActiveROIidx(){ return activeROIidx; }
  35. int getDelROIIdx() { return deletedIdx; }
  36. void setROIShape(ROI *r);
  37. void setROIShapeNoOperator(ROI *r);
  38. void setROISign(ROIOperation mode);
  39. void setActiveROIidx(const int &index);
  40. void removeActive();
  41. bool defineModelROI();
  42. void reset();
  43. void paintData(const HTuple &winID, int handleWidth, double zoomWndFactor);
  44. int mouseDownAction(const double &imgX, const double &imgY);
  45. void mouseMoveAction(const double &newX, const double &newY);
  46. void tiggerROINotifySignals(const ViewMessage &sign);
  47. QCursor GetCursor();
  48. void save(QDataStream& ar);
  49. void load(QDataStream& ar);
  50. signals:
  51. void ROIChange(const ViewMessage &sign);
  52. private:
  53. ROI *roiSeed;
  54. HRegion modelROI;
  55. ROIOperation stateROIOperation = ROIOperation::Positive;
  56. double currX, currY;
  57. int activeROIidx;
  58. int deletedIdx;
  59. HTuple activeCol = "green";
  60. HTuple activeHdlCol = "red";
  61. HTuple inactiveCol = "yellow";
  62. HTuple serachRegionCol = "blue";
  63. QHalconWindow *viewController;
  64. };
  65. Q_DECLARE_METATYPE(ViewMessage)
  66. #endif // ROICONTROLLER_H