#pragma once #include "ZxObjPoint.h" #include "mGuiPlot_global.h" #include "mAlgDefines.h" class ZxObjWmData; class M_GUI_PLOT_EXPORT ZxObjWmPoint : public ZxObjPoint { Q_OBJECT ZX_DECLARE_DYNAMIC public: ZxObjWmPoint(); ZxObjWmPoint(const QString& sName, ZxSubAxisX* pAxisX, ZxSubAxisY* pAxisY); ~ZxObjWmPoint(); public: // 辅助信息 virtual void initSubObjs(); virtual void resetOthers(); // 封装 virtual void initTools(); // 设置显示的标识 void setPointTag(QString s); // 具体击中实现的函数,单纯击中,不做选项的改变 // nOption用int是因为Rect类的击中选项不一致 // nOption为负值,表示未击中,此时返回false virtual bool _runHitTest(const QPointF& pt, int& nOption, int& nSubIndex); // 击中后,ButtonUp后的处理 // pt1:鼠标Down点,pt2:鼠标Up点 virtual bool runMove(const QPointF& pt1, const QPointF& pt2); // 移动位置后,刷新相关的信息,如距离、角度、长度等 virtual bool reCalInfos(); // 返回数据体 ZxObjWmData* getWmData(); // 在右侧手工改动数据,刷新数据点,m_pData已经改变,不予考虑 virtual bool freshWmPosBy(QString sPara, double f); virtual bool freshWmAboutBy(QString sPara, double f); signals: void sigWmInfoChanged(QString sParaBy); protected: // 设置图元对象的属性标志 virtual void initFlags(); // 绘制井点 virtual bool drawWellPos(QPainter* painter, QPointF pt); virtual bool drawWellLine2Center(QPainter* painter, QPointF pt); public: virtual void paintBack(QPainter* painter, const ZxPaintParam& param); virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); virtual void onLoadTempl(ZxSerializer* ser); virtual void onSaveTempl(ZxSerializer* ser); virtual void fillPtyPano(IxPtyPano* sheet); public: protected: QColor m_clrFillUnvalid; //无效时填充颜色 QColor m_clrOuter; //外边界颜色 ZxObjWmData* m_pData; };