|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "nmObjPoint.h"
|
|
|
|
|
|
#include "nmDefines.h"
|
|
|
|
|
|
#include "nmPlot_global.h"
|
|
|
|
|
|
#include "ZxDataWell.h"
|
|
|
|
|
|
#include "ZxObjText.h"
|
|
|
|
|
|
|
|
|
|
|
|
class nmDataWellBase;
|
|
|
|
|
|
|
|
|
|
|
|
// 数值试井绘图对象(点)
|
|
|
|
|
|
class NM_PLOT_EXPORT nmObjPointWell : public nmObjPoint {
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
ZX_DECLARE_DYNAMIC
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
nmObjPointWell();
|
|
|
|
|
|
nmObjPointWell(const QString& sName, \
|
|
|
|
|
|
ZxSubAxisX* pAxisX, \
|
|
|
|
|
|
ZxSubAxisY* pAxisY);
|
|
|
|
|
|
~nmObjPointWell();
|
|
|
|
|
|
|
|
|
|
|
|
// 设置初始参数
|
|
|
|
|
|
virtual void init(const QString& sName, \
|
|
|
|
|
|
ZxSubAxisX* pAxisX, \
|
|
|
|
|
|
ZxSubAxisY* pAxisY) override;
|
|
|
|
|
|
// 设置Tools
|
|
|
|
|
|
virtual void initTools() override;
|
|
|
|
|
|
// 击中后,ButtonUp后的处理
|
|
|
|
|
|
// pt1:鼠标Down点,pt2:鼠标Up点
|
|
|
|
|
|
virtual bool runMove(const QPointF& pt1, const QPointF& pt2) override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
// 设置图元对象的属性标志
|
|
|
|
|
|
virtual void initFlags() override;
|
|
|
|
|
|
|
|
|
|
|
|
// 辅助信息
|
|
|
|
|
|
virtual void initSubObjs() override;
|
|
|
|
|
|
// virtual void resetOthers();
|
|
|
|
|
|
|
|
|
|
|
|
// 设置显示的标识
|
|
|
|
|
|
void setPointTag(QString s);
|
|
|
|
|
|
|
|
|
|
|
|
// 创建后调用
|
|
|
|
|
|
virtual void update() override;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 成果序列化
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser) override;
|
|
|
|
|
|
virtual void onDeserialize(ZxSerializer* ser) override;
|
|
|
|
|
|
|
|
|
|
|
|
// 模版处理(从道理上讲,模版处理与成果序列化机制完全一致)
|
|
|
|
|
|
// 但此处放开是为了调用方更灵活的控制
|
|
|
|
|
|
virtual void onLoadTempl(ZxSerializer* ser) override;
|
|
|
|
|
|
virtual void onSaveTempl(ZxSerializer* ser) override;
|
|
|
|
|
|
|
|
|
|
|
|
// 创建后被调用
|
|
|
|
|
|
virtual void afterCreated() override;
|
|
|
|
|
|
|
|
|
|
|
|
// 设置井数据
|
|
|
|
|
|
void setWellData(ZxDataWell* wellObj);
|
|
|
|
|
|
|
|
|
|
|
|
// 创建新井
|
|
|
|
|
|
void createWell();
|
|
|
|
|
|
// 编辑井
|
|
|
|
|
|
void editWell();
|
|
|
|
|
|
// 获取井的圆心和半径
|
|
|
|
|
|
QVector<double> getWellInformation();
|
|
|
|
|
|
const QString& getWellID() const;
|
|
|
|
|
|
ZxDataWell* getWellData() const;
|
|
|
|
|
|
|
|
|
|
|
|
// 删除当前对象里的参数对象
|
|
|
|
|
|
virtual void removeData() override;
|
|
|
|
|
|
|
|
|
|
|
|
// 设置当前井来自数据中心的井数据
|
|
|
|
|
|
void setNmWellData(nmDataWellBase* wellData);
|
|
|
|
|
|
// 获取当前井数据
|
|
|
|
|
|
nmDataWellBase* getNmWellData();
|
|
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
// 图元状态改变
|
|
|
|
|
|
void onObjVisibleChanged(bool bIsVisible);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual void paintBack(QPainter* painter, \
|
|
|
|
|
|
const ZxPaintParam& param) override;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
// 存储井的ID,project数据结构里数据存储
|
|
|
|
|
|
// 如果是选择井,则坐标等信息不能修改
|
|
|
|
|
|
ZxObjText* m_pNameLabel;
|
|
|
|
|
|
bool m_bSelectWell;
|
|
|
|
|
|
QString m_sWellID;
|
|
|
|
|
|
ZxDataWell* m_pWellData;
|
|
|
|
|
|
|
|
|
|
|
|
nmDataWellBase* m_pNmWellData; // 自定义井数据
|
|
|
|
|
|
|
|
|
|
|
|
NM_WELL_MODEL m_enumWellType; // 当前井的类型
|
|
|
|
|
|
};
|