ROI.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef ROI_H
  2. #define ROI_H
  3. #include "showunit_global.h"
  4. #include <QDataStream>
  5. #include "HalconCpp.h"
  6. #include <QCursor>
  7. #include<QObject>
  8. #include <QDebug>
  9. using namespace HalconCpp;
  10. enum class SHOWUNITSHARED_EXPORT ROIType
  11. {
  12. Line = 10, Circle, CircleArc, Rectangle1, Rectangle2, Rect2, Point
  13. };
  14. enum class SHOWUNITSHARED_EXPORT ROIOperation
  15. {
  16. Positive = 21, Negative, None,
  17. };
  18. class SHOWUNITSHARED_EXPORT ROI:public QObject
  19. {
  20. Q_OBJECT
  21. public:
  22. ROI();
  23. ROIType getType(void) { return roiType; }
  24. ROIOperation getOperatorFlag(void) { return operatorFlag; }
  25. void setOperatorFlag(ROIOperation flag);
  26. void setTitle(QString tiale);
  27. void setHandleWidth(int width);
  28. virtual void createROI(double midX, double midY)=0;
  29. virtual void drawROI(HTuple winID, double scaleFactor)=0;
  30. virtual double distToClosestHandle(double x, double y)=0;
  31. virtual void displayActive(HTuple winID, double scaleFactor)=0;
  32. virtual void moveByHandle(double newX, double newY)=0;
  33. virtual QCursor showByHandle()=0;
  34. virtual HRegion getRegion()=0;
  35. virtual HTuple getROIData()=0;
  36. virtual void setROIData(HTuple) =0;
  37. virtual void save(QDataStream &dataStream);
  38. virtual void load(QDataStream &dataStream);
  39. int getNumHandles(){ return numHandles; }
  40. int getActHandleIdx() { return activeHandleIdx; }
  41. HTuple getFlagLineStyle(){ return flagLineStyle; }
  42. QString getTitle() { return m_strTitle; }
  43. SHOWUNITSHARED_EXPORT friend QDataStream & operator << (QDataStream &dataStream, ROI &roi);
  44. SHOWUNITSHARED_EXPORT friend QDataStream & operator >> (QDataStream &dataStream, ROI **roi);
  45. protected:
  46. int numHandles;
  47. int activeHandleIdx;
  48. int handleWidth=10;
  49. ROIType roiType;
  50. ROIOperation operatorFlag;
  51. QString m_strTitle;
  52. HTuple flagLineStyle;
  53. };
  54. #endif // ROI_H