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.
161 lines
3.8 KiB
C++
161 lines
3.8 KiB
C++
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//文件 Layer.h
|
|
//主要功能:
|
|
//
|
|
//程序编写: 2005-12-07
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#include ".\name.h"
|
|
|
|
#define LAYER_HowToViewCurve 100
|
|
#define LAYER_HowToViewPoint 101
|
|
#define LAYER_COLOR 102
|
|
#define LAYER_Name 103
|
|
|
|
#define LAYER_ViewEdit 10
|
|
#define LAYER_ViewNotEdit 11
|
|
#define LAYER_NotViewNotEdit 12
|
|
|
|
#include "howtoviewcurve.h"
|
|
#include "howtoviewpoint.h"
|
|
|
|
class CLayerList;
|
|
class AFX_EXT_API CLayer : public CName
|
|
{
|
|
public:
|
|
//遮罩使用 2026/1/6
|
|
enum class ELayerMaskRole
|
|
{
|
|
AboveMask = 0, // 在遮罩之上 (显式)
|
|
Mask = 1, // 遮罩层本身
|
|
BelowMask = 2 // 在遮罩之下
|
|
};
|
|
|
|
public:
|
|
CLayer(CLayerList* pParentClass=NULL);
|
|
virtual ~CLayer(void);
|
|
|
|
private:
|
|
void SerializeHowToCurve(CArchive& ar, const short &ver);
|
|
void SerializeHowToPoint(CArchive& ar, const short &ver);
|
|
|
|
BYTE state;
|
|
CLayerList* m_pParentClass;
|
|
|
|
protected:
|
|
void WriteViewEditState(CFile& fw);
|
|
|
|
public:
|
|
//新增遮罩属性
|
|
ELayerMaskRole m_MaskRole = ELayerMaskRole::AboveMask;
|
|
void SetMaskRole(ELayerMaskRole role) { m_MaskRole = role; }
|
|
ELayerMaskRole GetMaskRole() const { return m_MaskRole; }
|
|
// 获取排序优先级(辅助函数)
|
|
int GetSortPriority() const
|
|
{
|
|
return static_cast<int>(m_MaskRole);
|
|
}
|
|
|
|
CHowToViewCurve* HowToViewCurve;
|
|
CHowToViewPoint* HowToViewPoint;
|
|
|
|
void SetHowToViewCurve(CHowToViewCurve* hc);
|
|
void SetHowToViewPoint(CHowToViewPoint* hp);
|
|
|
|
static void WriteNullLegend(CFile& fw, const short& ver);
|
|
static void WriteCurveNullLegend(CFile& fw, const short& ver);
|
|
static void WritePointNullLegend(CFile& fw, const short& ver);
|
|
|
|
virtual CString GetName(void);
|
|
CString GetPathName(void);
|
|
|
|
CLayerList* GetParentClass(void);
|
|
CLayerList* SetParentClass(CLayerList* pNewParentClass);
|
|
|
|
void SerializeLegend(CArchive& ar, const short &ver); //仅增加了写功能
|
|
int WriteLegend(CFile& fw, const short& ver, double cc);
|
|
void WriteLayerName(CFile& fw, const short& ver);
|
|
BOOL WriteMemory(BYTE*& outBuffer, int& destLen, int formatCode);
|
|
|
|
virtual void WritePCG(CFile& fw, const short& ver, int nBaseTabNum, int isClosed);
|
|
virtual void WriteDML(CFile& fw, const short& ver, int nBaseTabNum, int isClosed);
|
|
virtual void WriteDML(CFile& fw, const short& ver, int nBaseTabNum);
|
|
int WriteLegendDML(CFile& fw, const short& ver, double cc, int nBaseTabNum);
|
|
static void WriteNullLegendDML(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
virtual void WritePCG(CFile& fw, const short& ver, int nBaseTabNum);
|
|
int WriteLegendPCG(CFile& fw, const short& ver, double cc, int nBaseTabNum);
|
|
static void WriteNullLegendPCG(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
virtual void Write(CFile& fw, const short& ver);
|
|
virtual int Read(CFile& fr, const short& ver);
|
|
virtual void ScaleProperty(double sx, double sy);
|
|
virtual void Serialize(CArchive& ar, short ver);
|
|
int PositionNew(int bReplace=1);
|
|
|
|
/**
|
|
* 可见可编辑
|
|
*
|
|
* \return
|
|
*/
|
|
BOOL IsViewAndEdit();
|
|
|
|
/**
|
|
* 可见不可编辑
|
|
*
|
|
* \return
|
|
*/
|
|
BOOL IsViewNotEdit();
|
|
|
|
/**
|
|
* 不可见不可编辑
|
|
*
|
|
* \return
|
|
*/
|
|
BOOL IsNotViewNotEdit();
|
|
|
|
void SetState(BYTE nvd);
|
|
BYTE GetState(void);
|
|
void operator=(CLayer& layer);
|
|
BOOL operator==(CString strLayer);
|
|
void Empty(void);
|
|
void EmptyLegend(void);
|
|
|
|
CString GetClassName(void);
|
|
|
|
private:
|
|
};
|
|
|
|
AFX_INLINE BOOL CLayer::IsViewAndEdit()
|
|
{
|
|
return (state==LAYER_ViewEdit) ? TRUE:FALSE;
|
|
}
|
|
|
|
AFX_INLINE BOOL CLayer::IsViewNotEdit()
|
|
{
|
|
return (state==LAYER_ViewNotEdit) ? TRUE:FALSE;
|
|
}
|
|
|
|
AFX_INLINE BOOL CLayer::IsNotViewNotEdit()
|
|
{
|
|
return (state==LAYER_NotViewNotEdit) ? TRUE:FALSE;
|
|
}
|
|
|
|
AFX_INLINE void CLayer::SetState(BYTE nvd)
|
|
{
|
|
state=nvd;
|
|
}
|
|
|
|
AFX_INLINE BYTE CLayer::GetState(void)
|
|
{
|
|
return state;
|
|
}
|
|
|
|
AFX_INLINE CLayerList* CLayer::GetParentClass(void)
|
|
{
|
|
return m_pParentClass;
|
|
}
|