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

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD> Layer.h
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 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
{
1 month ago
public:
//<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> 2026/1/6
enum class ELayerMaskRole
{
AboveMask = 0, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE> (<28><>ʽ)
Mask = 1, // <20><><EFBFBD>ֲ㱾<D6B2><E3B1BE>
BelowMask = 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
};
1 month ago
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:
1 month ago
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ELayerMaskRole m_MaskRole = ELayerMaskRole::AboveMask;
void SetMaskRole(ELayerMaskRole role) { m_MaskRole = role; }
ELayerMaskRole GetMaskRole() const { return m_MaskRole; }
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int GetSortPriority() const
{
return static_cast<int>(m_MaskRole);
}
1 month ago
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); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
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);
/**
* <EFBFBD>ɼ<EFBFBD><EFBFBD>ɱ
*
* \return
*/
BOOL IsViewAndEdit();
/**
* <EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ
*
* \return
*/
BOOL IsViewNotEdit();
/**
* <EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ
*
* \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;
}