Files
envi-code/SourceCode/Code2026/tg_shs/inc/geo/TEntityField.h
T
2026-09-28 15:28:50 +08:00

191 lines
3.7 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : TEntityField 类
// = Version : ver2.0
// = Author : wlw
// = CreateDate : 2002-09-09
// = Description: TEntityField 声明
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#ifndef _TENTITYFIELD_H_
#define _TENTITYFIELD_H_
#ifndef _TACSTRING_H_
#include "TACString.h"
#endif
#ifndef _TWCSTRING_H_
#include "TWCString.h"
#endif
#ifndef _TCHGLOBALDEF_H_
#include "TchGlobalDef.h"
#endif
class TEntityFields;
class GEOAPI TEntityField
{
public:
enum DataType
{
kUnknown = -1,
kBoolean = 0,
kChar = 1,
kInt8 = 2,
kUInt8 = 3,
kInt16 = 4,
kUInt16 = 5,
kInt32 = 6,
kUInt32 = 7,
kGroup = 100,
kString = 101,
kDouble = 200,
kAcGePoint2d = 201,
kAcGePoint3d = 202,
kAcGeVector2d = 203,
kAcGeVector3d = 204,
kAcGeScale3d = 205,
kAcDbHardOwnershipId= 206,
kAcDbSoftOwnershipId= 207,
kAcDbHardPointerId = 208,
kAcDbSoftPointerId = 209,
kAcDbHandle = 210,
};
TEntityField(const TCHAR *sName = _T(""),DataType type = kUnknown);
TEntityField &operator =(const TEntityField &ef);
TEntityField(const TEntityField&ef);
virtual ~TEntityField();
const TCHAR* GetName()const;
void SetName(const TCHAR* sName);
DataType GetDataType()const;
void SetData(const Adesk::Boolean& val);
void SetData(const Adesk::Int8& val);
void SetData(const Adesk::UInt8& val);
void SetData(const Adesk::Int16& val);
void SetData(const Adesk::UInt16& val);
void SetData(const Adesk::Int32& val);
void SetData(const Adesk::UInt32& val);
void SetData(TEntityFields *pVal);//仅内部使用!
void SetData(const TEntityFields &val);
void SetData(const TCHAR* val);
void SetData(const double& val);
void SetData(const AcGePoint2d& val);
void SetData(const AcGePoint3d& val);
void SetData(const AcGeVector2d& val);
void SetData(const AcGeVector3d& val);
void SetData(const AcGeScale3d& val);
void SetData(const AcDbHardOwnershipId& val);
void SetData(const AcDbSoftOwnershipId& val);
void SetData(const AcDbHardPointerId& val);
void SetData(const AcDbSoftPointerId& val);
void SetData(const AcDbHandle&val);
bool GetData(Adesk::Boolean& val)const;
bool GetData(Adesk::Int8& val)const;
bool GetData(Adesk::UInt8& val)const;
bool GetData(Adesk::Int16& val)const;
bool GetData(Adesk::UInt16& val)const;
bool GetData(Adesk::Int32& val)const;
bool GetData(Adesk::UInt32& val)const;
bool GetData(TEntityFields *&pVal)const;//仅内部使用!
bool GetData(TEntityFields &val)const;
bool GetData(CString&val)const;
bool GetData(double& val)const;
bool GetData(AcGePoint2d& val)const;
bool GetData(AcGePoint3d& val)const;
bool GetData(AcGeVector2d& val)const;
bool GetData(AcGeVector3d& val)const;
bool GetData(AcGeScale3d& val)const;
bool GetData(AcDbHardOwnershipId& val)const;
bool GetData(AcDbSoftOwnershipId& val)const;
bool GetData(AcDbHardPointerId& val)const;
bool GetData(AcDbSoftPointerId& val)const;
bool GetData(AcDbHandle&val)const;
bool operator> (const TEntityField&ent)const;
bool operator< (const TEntityField&ent)const;
bool operator==(const TEntityField&ent)const;
bool operator!=(const TEntityField&ent)const;
void DwgIn(AcDbDwgFiler* pFiler);
void DwgOut(AcDbDwgFiler* pFiler)const;
void DxfIn(AcDbDxfFiler* pFiler);
void DxfOut(AcDbDxfFiler* pFiler)const;
protected:
//名称,不区分大小写
TCString m_sName;
//类型
DataType m_nType;
//数据,甚至可以是子对象
void* m_pData;
private:
void Init();
void Clear();
void ChangeType(DataType type);
};
#endif