#ifndef ROI_H #define ROI_H #include "showunit_global.h" #include #include "HalconCpp.h" #include #include #include using namespace HalconCpp; enum class SHOWUNITSHARED_EXPORT ROIType { Line = 10, Circle, CircleArc, Rectangle1, Rectangle2, Rect2, Point }; enum class SHOWUNITSHARED_EXPORT ROIOperation { Positive = 21, Negative, None, }; class SHOWUNITSHARED_EXPORT ROI:public QObject { Q_OBJECT public: ROI(); ROIType getType(void) { return roiType; } ROIOperation getOperatorFlag(void) { return operatorFlag; } void setOperatorFlag(ROIOperation flag); void setTitle(QString tiale); void setHandleWidth(int width); virtual void createROI(double midX, double midY)=0; virtual void drawROI(HTuple winID, double scaleFactor)=0; virtual double distToClosestHandle(double x, double y)=0; virtual void displayActive(HTuple winID, double scaleFactor)=0; virtual void moveByHandle(double newX, double newY)=0; virtual QCursor showByHandle()=0; virtual HRegion getRegion()=0; virtual HTuple getROIData()=0; virtual void setROIData(HTuple) =0; virtual void save(QDataStream &dataStream); virtual void load(QDataStream &dataStream); int getNumHandles(){ return numHandles; } int getActHandleIdx() { return activeHandleIdx; } HTuple getFlagLineStyle(){ return flagLineStyle; } QString getTitle() { return m_strTitle; } SHOWUNITSHARED_EXPORT friend QDataStream & operator << (QDataStream &dataStream, ROI &roi); SHOWUNITSHARED_EXPORT friend QDataStream & operator >> (QDataStream &dataStream, ROI **roi); protected: int numHandles; int activeHandleIdx; int handleWidth=10; ROIType roiType; ROIOperation operatorFlag; QString m_strTitle; HTuple flagLineStyle; }; #endif // ROI_H