1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #ifndef ROICIRCULARARC_H
- #define ROICIRCULARARC_H
- #include "showunit_global.h"
- #include "HalconCpp.h"
- #include "ROI.h"
- #include<QObject>
- #include <QString>
- #include <QDataStream>
- using namespace HalconCpp;
- class ROI;
- class SHOWUNITSHARED_EXPORT ROICircularArc:public ROI
- {
- Q_OBJECT
- public:
- ROICircularArc();
- void createROI(double midX, double midY) override;
- void drawROI(HTuple winID, double scaleFactor) override;
- double distToClosestHandle(double x, double y) override;
- void displayActive(HTuple winID, double scaleFactor) override;
- void moveByHandle(double newX, double newY) override;
- QCursor showByHandle() override;
- HRegion getRegion() override;
- HTuple getROIData() override;
- void setROIData(HTuple) override;
- void save(QDataStream &dataStream) override;
- void load(QDataStream &dataStream)override;
- private:
- double midR, midC; // 0. handle: midpoint
- double sizeR, sizeC; // 1. handle
- double startR, startC; // 2. handle
- double extentR, extentC; // 3. handle
- //model data to specify the arc
- double radius;
- double startPhi, extentPhi; // -2*PI <= x <= 2*PI
- double TwoPI;
- QString circDir;
- //display attributes
- HXLDCont contour;
- HXLDCont arrowHandleXLD;
- HXLDCont startRect2XLD;
- void determineArcHandles();
- void updateArrowHandle();
- void updateStartRect2XLDHandle(int WindowsWidth);
- void setStartHandle();
- void setExtentHandle();
- #ifndef QT_NO_DATASTREAM
- friend QDataStream& operator>>(QDataStream &in, ROICircularArc& data);
- friend QDataStream& operator<<(QDataStream &out, ROICircularArc& data);
- #endif
- };
- #endif // ROICIRCULARARC_H
|