#pragma once #include "ZxObjPoint.h" #include "mGuiPlot_global.h" #include "mAlgDefines.h" class ZxDataWell; class ZxObjWmPoint; class M_GUI_PLOT_EXPORT ZxObjWmData : public QObject, virtual public IxSerDes { Q_OBJECT //ZX_DECLARE_DYNAMIC public: ZxObjWmData(ZxObjWmPoint* p); ~ZxObjWmData(); virtual void onSerialize(ZxSerializer* ser); virtual void onDeserialize(ZxSerializer* ser); public: // 基础数据 void loadBaseInfos(); // 后处理,如距离 void dealwithInfos(); // 从外界传输,仅仅从外界调用 void setPosX(double f); //坐标X double getPosX(); void setPosY(double f); double getPosY(); void setWellDis(double f); //井间距离 double getWellDis(); void setWellSlope(double f);//井间倾斜 double getWellSlope(); void setWmLen(double f);//井长 double getWmLen(); void setWmDev(double f);//井斜 double getWmDev(); void setSegCount(int n);//段数 int getSegCount(); void setSegLenV(double n);//裂缝半长 double getSegLenV(); double getItemValueOf(QString s); void setItemValueOf(QString s, double f); public: // 是否有效 bool isDataValid(); //void setDataValid(bool b); // 类型 void setWmt(m_Wel_Type o); m_Wel_Type getWmt(); // 数据获取 QMap* getMapInfos(); VVecDouble* getVVecDataF(); //流量数据 VVecDouble* getVVecDataP(); //压力数据 // 本身的ZxDataWell对象 void setDataObj(ZxDataWell* p); ZxDataWell* getDataObj(); // 是否中心井 bool isCenterWmPt(); void setAsCenterWmPt(bool b); // 中心井 ZxObjWmPoint* getWmPtC(); void setWmPtC(ZxObjWmPoint *p); // 设置压力、流量 bool setDataPF(QVector& vecP, //Pressure Data QVector& vecF); void setDataP(VVecDouble& vvec); void setDataF(VVecDouble& vvec); // 自动添加的部分 QStringList getDefaultParas(); protected: ZxObjWmPoint* m_pWmPt; //本身绑定的对象 ZxObjWmPoint* m_pWmPtC; //中心井对应的对象 bool m_bWmPtC; //是否中心井 bool m_bDataValid; // m_sName; //Name m_Wel_Type m_oWmt; //井型 QMap m_mapInfos; //基础信息 VVecDouble m_vvecDataF; //流量数据 VVecDouble m_vvecDataP; //压力数据 ZxDataWell* m_pDataObj; //设置的WellObj };