You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.3 KiB
C++

#pragma once
#include "GDFLOGPEN.h"
class CCurveEx;
class CXyDC;
class CFaultLineConMgr;
/* @brief 断层线 */
class AFX_EXT_CLASS CFaultLine : public CBaseObject
{
public:
CFaultLine(void);
~CFaultLine(void);
/// 重载CBaseObject函数
virtual void Serialize(CArchive& ar, const short &ver);
virtual int Read(CFile& fr, const short& ver);
virtual void Write(CFile& fw, const short& ver);
virtual CRect8 GetRect(void);
virtual void GetRange(CRect8& range);
virtual BOOL IsInRange(CRect8& range);
virtual void Offset(double dx, double dy);
virtual void ScaleCoor(double xs, double ys, double dx, double dy);
virtual void Rotate(double xs, double ys, double angle);
/* @brief 根据曲线生成断层线 */
void Create(vector<CCurveEx *> &curves);
void Draw(CXyDC &dc);
void SetLeftFault(double dValue);
double GetLeftFault();
void SetRightFault(double dValue);
double GetRightFault();
BOOL IsBlocked();
void SetBlocked(BOOL bValue);
NGraph::GDFLOGPEN &GetLinePen();
void SetLinePen(NGraph::GDFLOGPEN &pen);
CCurveEx *GetCurveImp();
protected:
double m_dLeftFault;
double m_dRightFault;
BOOL m_IsBlocked; ///< 是否为封堵断层
CCurveEx *m_pCurveImp; ///< 用于保存断层上点的对象
GDFLOGPEN m_penLine;
CFaultLineConMgr *m_pFaultLineConMgr; ///< 与断层关联的曲线关系管理器
};