#pragma once #include "ZxObjLine.h" #include "mGuiPlot_global.h" #include "ZxObjBdyRect.h" class ZxObjBdyPoint; //平行边界类型(垂直或者水平) enum eParalType { ParalT_None = 0, ParalT_Hor, //水平 ParalT_Ver //垂直 }; //平形边界线 class M_GUI_PLOT_EXPORT ZxObjBdyParal : public ZxObjBdyRect { Q_OBJECT ZX_DECLARE_DYNAMIC public: ZxObjBdyParal(); ZxObjBdyParal(const QString& sName, ZxSubAxisX* pAxisX, ZxSubAxisY* pAxisY); ~ZxObjBdyParal(); public: //设置类型 void setParalType(int eType); int getParalType(); // 封装 virtual void initTools(); void initObj(); virtual bool _runHitTest(const QPointF& pt, int& nOption, int& nSubIndex); // pt1:鼠标Down点,pt2:鼠标Up点 virtual bool runMove(const QPointF& pt1, const QPointF& pt2); // void calBdyParalParam(eParalType eType, QVector& vecVals); void setBdyParalParam(eParalType eType); //属性 virtual void fillPtyPano(IxPtyPano* sheet); virtual void paintBack(QPainter* painter, const ZxPaintParam& param); // 根据pt1--->pt2的偏移,获取pt的偏移后的点 // pt1:鼠标Down点,pt2:鼠标Up点 QPointF offsetPoint(QPointF& pt, const QPointF& pt1, const QPointF& pt2); //设置边界的距离(One代表左边界和上边界) void setBdyLineOneDistance(double f); double getBdyLineOneDistance(); //设置边界的距离 void setBdyLineTwoDistance(double f); double getBdyLineTwoDistance(); virtual void resetBdyParam(); //设置参数后数据改变 void calBdyParalParam(eBdyPosType ePosType, double fDis); //得到第一条边界 iBdyInfo* getBdyLineOneParam(); //得到第二条边界 iBdyInfo* getBdyLineTwoParam(); //根据一个点计算出两个点(取坐标轴的最大值一半) bool getLinePts(QPointF pt,QVector& vecPts); protected: //平行类型 eParalType m_eType; };