#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(float f); //坐标X float getPosX(); void setPosY(float f); float getPosY(); void setWellDis(float f); //井间距离 float getWellDis(); void setWellSlope(float f);//井间倾斜 float getWellSlope(); void setWmLen(float f);//井长 float getWmLen(); void setWmDev(float f);//井斜 float getWmDev(); void setSegCount(int n);//段数 int getSegCount(); void setSegLenV(float n);//裂缝半长 float getSegLenV(); float getItemValueOf(QString s); void setItemValueOf(QString s, float f); public: // 是否有效 bool isDataValid(); //void setDataValid(bool b); // 类型 void setWmt(m_Wel_Type o); m_Wel_Type getWmt(); // 数据获取 QMap* getMapInfos(); VVecFloat* getVVecDataF(); //流量数据 VVecFloat* 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(VVecFloat& vvec); void setDataF(VVecFloat& 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; //基础信息 VVecFloat m_vvecDataF; //流量数据 VVecFloat m_vvecDataP; //压力数据 ZxDataWell* m_pDataObj; //设置的WellObj };