#pragma once #include "ZxObjLine.h" #include "mGuiPlot_global.h" #include "iBdyInfo.h" class ZxObjBdyPoint; //边界线基类 class M_GUI_PLOT_EXPORT ZxObjBdyBase : public ZxObjLine { Q_OBJECT ZX_DECLARE_DYNAMIC public: ZxObjBdyBase(); ZxObjBdyBase(const QString& sName, ZxSubAxisX* pAxisX, ZxSubAxisY* pAxisY); ~ZxObjBdyBase(); public: //设置参数 void setBdyParams(VecBdyInfos vecBdyInfos); //初始化 virtual void initObj(); // 击中 virtual bool hitTest(const QPointF& pt); //属性 virtual void fillPtyPano(IxPtyPano* sheet); //移动后设置线的位置 virtual void resetBdyParam(); //得到默认长度的距离 double getDefaultXVal(); //具体数值 double getDefaultYVal(); //具体数值 //根据一个点计算出两个点(取坐标轴的最大值一半)(pt1和pt2)是已经知道的点 //pt3是求解的点且靠经p2点 QPointF getLineExtendPt(QPointF pt1, QPointF pt2); //绘制延长线 void paintExtendLine(QPainter* painter, QPointF pt1, QPointF pt2); //返回数据 VecVariant getBdyDistances(); VecVariant getBdyTypes(); protected: //得到井段的起始深度点 ZxObjBdyPoint* getBdyPtObj(); protected: //边界参数 VecBdyInfos m_vecBdyInfos; };