220 lines
5.8 KiB
C++
220 lines
5.8 KiB
C++
/**
|
||
* @file ObjWell.h
|
||
* @brief "井"数据模型
|
||
* @date 2014-6-3
|
||
* @author: liyonggang
|
||
*/
|
||
#ifndef PAI_FRAME_OSGWELL_H
|
||
#define PAI_FRAME_OSGWELL_H
|
||
#pragma warning( push ,0)
|
||
|
||
#include <vector>
|
||
|
||
#include <QUuid>
|
||
|
||
#include "ObjectID.h"
|
||
// #include "LineProperty.h"
|
||
#include "Well.h"
|
||
#include "BaseObject.h"
|
||
// #include "ObjWellTrack.h"
|
||
#include "BaseFun.h"
|
||
#include "ObjWelllogRound.h"
|
||
// #include "ObjectViewInfo.h"
|
||
|
||
#pragma warning( pop )
|
||
|
||
BEGIN_OSGDATAMODEL_NAMESPACE;
|
||
class CObjWellLog;
|
||
OSGDATAMODEL_EXPORT CObjWell *GetCurrentObjWell();
|
||
OSGDATAMODEL_EXPORT void SetCurrentObjWell( CObjWell *pObjWell );
|
||
|
||
class OSGDATAMODEL_EXPORT CObjWell/* : public CObjBaseObject*/
|
||
{
|
||
// Q_OBJECT;
|
||
public:
|
||
CObjWell();
|
||
|
||
~CObjWell();
|
||
|
||
public:
|
||
QString GetWellCode() const
|
||
{
|
||
return m_WellCode;
|
||
}
|
||
void SetWellCode(QString WellCode)
|
||
{
|
||
m_WellCode=WellCode;
|
||
}
|
||
void SaveWellHead(QString filename);
|
||
//往井次下加入曲线时,根据曲线的类型返回其对应的目录id
|
||
QUuid GetTragetFolderID(QUuid aLogTypeid);
|
||
//根据folderid找到对应的folder,如果没有则创建
|
||
// CObjectFolder* GetTragetFolder(QUuid aFolderTypeid);
|
||
//获得井次数
|
||
int GetWellRoundCount();
|
||
// int GetAllWellRound(QList<PaiObject*> &wellroundchildren);
|
||
virtual QUuid GetTypeID()const;
|
||
|
||
// virtual bool Serialize( CObjectArchive &ar );
|
||
// virtual bool AddChild(PaiObject* pChild, bool mountNow = true);
|
||
|
||
// virtual pai::ios::welllog::DataObject *GetDbObject();
|
||
|
||
/**
|
||
* Well的MD得到对应的x,y,z
|
||
*/
|
||
// bool GetXYZByMD(float fMD,double &x,double &y,double &z );
|
||
// bool LoadXYZ(bool isreCreateXYZ=false);
|
||
void ClearXYZ();
|
||
/**
|
||
* Well的点MD对应井口位置的相对位置dx、dy、dz
|
||
*/
|
||
// bool GetDXDYDZByMD(float fMD,double &dx,double &dy,double &dz );
|
||
WellHead &GetWellHead();
|
||
/**
|
||
* Well log的最上点MD
|
||
*/
|
||
double GetTopWellLogDepth();
|
||
|
||
double GetBottomWellLogDepth();
|
||
CObjWelllogRound* GetCurrentObjWellRound();
|
||
void SetCurrentObjWellRound(CObjWelllogRound*pWellRound);
|
||
/**
|
||
* Well x,y,z井轨迹信息
|
||
*/
|
||
// void Compute2DTrajectory(float _HScale=10000,float _VScale=10000);
|
||
// void Compute2DTrajectory(float _ProjAngle,double _HorizBoreXE,double _HorizBoreYN,float _HScale=10000,float _VScale=10000);
|
||
FLOATPROPERTY & GetDX();
|
||
FLOATPROPERTY & GetDY();
|
||
float GetDX(float dep);
|
||
float GetDY(float dep);
|
||
float GetDZ(float dep);
|
||
FLOATPROPERTY & GetAngle();
|
||
float GetDYToDep(float dy);
|
||
float GetDXToDep(float dx);
|
||
void SetDX( const FLOATPROPERTY *vDX );
|
||
void SetDY( const FLOATPROPERTY *vDX );
|
||
void SetAngle(const FLOATPROPERTY *Angle);
|
||
DOUBLEPROPERTY & GetX();
|
||
DOUBLEPROPERTY & GetY();
|
||
DOUBLEPROPERTY & GetZ();
|
||
void SetX( const DOUBLEPROPERTY *vX );
|
||
void SetY( const DOUBLEPROPERTY *vX );
|
||
void SetZ( const DOUBLEPROPERTY *vX );
|
||
void SetStartDep(float dep);
|
||
void SetEndDep(float dep);
|
||
void SetRlev(float rlev);
|
||
void SetDepth(float sdep,float edep,float rlev);
|
||
float GetStartDep();
|
||
float GetEndDep();
|
||
float GetRlev();
|
||
|
||
void SetWellFileName(QString WellName)
|
||
{
|
||
m_WellFileName=WellName;
|
||
}
|
||
QString GetWellFileName()
|
||
{
|
||
CObjWelllogRound *pWR=GetCurrentObjWellRound();
|
||
if(pWR) return pWR->GetSlfFileName();
|
||
return m_WellFileName;
|
||
}
|
||
virtual QString GetWellMessageFileName()
|
||
{
|
||
return m_WellFileName;
|
||
}
|
||
|
||
bool isUsed()
|
||
{
|
||
return isFLAG;
|
||
}
|
||
void SetUsed(bool flag)
|
||
{
|
||
isFLAG=flag;
|
||
}
|
||
// void SetDepth(CObjWell *pWell);
|
||
|
||
/**
|
||
* 井符号图片
|
||
*/
|
||
QString GetWellSymbol();
|
||
void SetWellSymbol(QString imagef)
|
||
{
|
||
m_strWellImage=imagef;
|
||
}
|
||
|
||
virtual void SetDBWell(pai::ios::welllog::Well &DbWell);
|
||
|
||
pai::ios::welllog::Well &GetDBWell();
|
||
|
||
|
||
// virtual void CopyFrom( CBaseObject *pOSGObjectOther );
|
||
|
||
/**
|
||
*@brief 判断井名是否存在
|
||
*/
|
||
// virtual bool isExistsName(QString name);
|
||
/************************************************************************/
|
||
/* @brief 得到本井下的对应模板值的井曲线[遍历所有井次,拿到第一条] */
|
||
/************************************************************************/
|
||
// pai::datamodel::CObjWellLog* GetWellLogByTemplate(const QVariant& templateKey);
|
||
/************************************************************************/
|
||
/* @brief 得到本井次下的对应模板值的井曲线 */
|
||
/************************************************************************/
|
||
// pai::datamodel::CObjWellLog* GetWellLogByTemplate(QString wellroundPath,const QVariant& templateKey);
|
||
// static int ComputeTrajectory(CObjWell *pWell,QString Slffilename);
|
||
private:
|
||
|
||
/**
|
||
* @brief 设置数据所属ID
|
||
*/
|
||
// void SetBelongID();
|
||
private:
|
||
|
||
//井轨迹x,y,z,MD
|
||
FLOATPROPERTY m_vDX;
|
||
FLOATPROPERTY m_vDY;
|
||
FLOATPROPERTY m_vAngle;
|
||
|
||
DOUBLEPROPERTY m_vX;
|
||
DOUBLEPROPERTY m_vY;
|
||
DOUBLEPROPERTY m_vZ;
|
||
DOUBLEPROPERTY m_vMD;
|
||
WellHead m_WellHead;
|
||
double m_StartDep,m_EndDep,m_Rlev;
|
||
QString m_strWellImage; //井类型符号
|
||
pai::ios::welllog::Well m_DbWell; //Db 里的well对象
|
||
QString m_WellFileName;
|
||
QString m_WellCode; ///<井编码 API编码
|
||
CObjWelllogRound*m_pCurrentWelllogRound;
|
||
bool isFLAG;
|
||
double m_XYZStartDep,m_XYZEndDep,m_XYZRlev;
|
||
public slots:
|
||
// void slotWellMessage(QString slffile);
|
||
};
|
||
|
||
/**
|
||
* @class CWellViewInfo3DBasemap
|
||
* @brief well在3D窗口,Basemap窗口上的viewinfo
|
||
*/
|
||
// class OSGDATAMODEL_EXPORT CWellViewInfo3DBasemap: public CObjectViewInfo
|
||
// {
|
||
// Q_OBJECT
|
||
// public:
|
||
// CWellViewInfo3DBasemap();
|
||
|
||
// IMPLE_META_PROPERTY();
|
||
|
||
// GM_PROPERTY_NORMAL( CLineProperty,LineProperty );
|
||
// Q_PROPERTY(CLineProperty LineProperty READ GetLineProperty WRITE SetLineProperty );
|
||
|
||
// GM_PROPERTY_NORMAL( bool,DrawWellPath);
|
||
// Q_PROPERTY(bool DrawWellPath READ GetDrawWellPath WRITE SetDrawWellPath );
|
||
// };
|
||
|
||
using namespace pai::datamodel;
|
||
|
||
END_OSGDATAMODEL_NAMESPACE
|
||
|
||
#endif
|