Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

282 lines
6.7 KiB
C++

//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : EntityFields 类
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: EntityFields 声明
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#ifndef _EntityFields_H_
#define _EntityFields_H_
#ifndef _PDLIST_H_
#include "PDList.h"
#endif
#ifndef _EntityField_H_
#include "EntityField.h"
#endif
class GEOAPI EntityFields
{
public:
EntityFields();
EntityFields &operator =(const EntityFields&efs);
EntityFields(const EntityFields&efs);
virtual ~EntityFields();
//表编辑
long Add(EntityField *pField);//允许重名!
void Del(long i);
void Clear();
//遍历
long GetSubFieldNum()const;
EntityField& GetSubField(long i);
const EntityField& GetSubField(long i)const;
//查找
long Find(const TCHAR* sName);
//读写
void DwgIn(AcDbDwgFiler* pFiler);
void DwgOut(AcDbDwgFiler* pFiler)const;
void DxfIn(AcDbDxfFiler* pFiler);
void DxfOut(AcDbDxfFiler* pFiler)const;
//SetFieldData,有自动建立字段功能,不允许重名
bool SFD(const TCHAR *sPathName,const Adesk::Boolean& val);
bool SFD(const TCHAR *sPathName,const Adesk::Int8& val);
bool SFD(const TCHAR *sPathName,const Adesk::UInt8& val);
bool SFD(const TCHAR *sPathName,const Adesk::Int16& val);
bool SFD(const TCHAR *sPathName,const Adesk::UInt16& val);
bool SFD(const TCHAR *sPathName,const Adesk::Int32& val);
bool SFD(const TCHAR *sPathName,const Adesk::UInt32& val);
bool SFD(const TCHAR *sPathName,const EntityFields&val);
bool SFD(const TCHAR *sPathName,const TCHAR* val);
bool SFD(const TCHAR *sPathName,const double& val);
bool SFD(const TCHAR *sPathName,const AcGePoint2d& val);
bool SFD(const TCHAR *sPathName,const AcGePoint3d& val);
bool SFD(const TCHAR *sPathName,const AcGeVector2d& val);
bool SFD(const TCHAR *sPathName,const AcGeVector3d& val);
bool SFD(const TCHAR *sPathName,const AcGeScale3d& val);
bool SFD(const TCHAR *sPathName,const AcDbHardOwnershipId& val);
bool SFD(const TCHAR *sPathName,const AcDbSoftOwnershipId& val);
bool SFD(const TCHAR *sPathName,const AcDbHardPointerId& val);
bool SFD(const TCHAR *sPathName,const AcDbSoftPointerId& val);
bool SFD(const TCHAR *sPathName,const AcDbHandle&val);
//GetFieldData,不允许重名
bool GFD(const TCHAR *sPathName,Adesk::Boolean& val)const;
bool GFD(const TCHAR *sPathName,Adesk::Int8& val)const;
bool GFD(const TCHAR *sPathName,Adesk::UInt8& val)const;
bool GFD(const TCHAR *sPathName,Adesk::Int16& val)const;
bool GFD(const TCHAR *sPathName,Adesk::UInt16& val)const;
bool GFD(const TCHAR *sPathName,Adesk::Int32& val)const;
bool GFD(const TCHAR *sPathName,Adesk::UInt32& val)const;
bool GFD(const TCHAR *sPathName,EntityFields& val)const;
bool GFD(const TCHAR *sPathName,CString&val)const;
bool GFD(const TCHAR *sPathName,double& val)const;
bool GFD(const TCHAR *sPathName,AcGePoint2d& val)const;
bool GFD(const TCHAR *sPathName,AcGePoint3d& val)const;
bool GFD(const TCHAR *sPathName,AcGeVector2d& val)const;
bool GFD(const TCHAR *sPathName,AcGeVector3d& val)const;
bool GFD(const TCHAR *sPathName,AcGeScale3d& val)const;
bool GFD(const TCHAR *sPathName,AcDbHardOwnershipId& val)const;
bool GFD(const TCHAR *sPathName,AcDbSoftOwnershipId& val)const;
bool GFD(const TCHAR *sPathName,AcDbHardPointerId& val)const;
bool GFD(const TCHAR *sPathName,AcDbSoftPointerId& val)const;
bool GFD(const TCHAR *sPathName,AcDbHandle&val)const;
//匿名AddFieldData,用于数组(使用这个接口时,数组内字段必须全部匿名!)
void AFD(const Adesk::Boolean& val);
void AFD(const Adesk::Int8& val);
void AFD(const Adesk::UInt8& val);
void AFD(const Adesk::Int16& val);
void AFD(const Adesk::UInt16& val);
void AFD(const Adesk::Int32& val);
void AFD(const Adesk::UInt32& val);
void AFD(const EntityFields &val);
void AFD(const TCHAR* val);
void AFD(const double& val);
void AFD(const AcGePoint2d& val);
void AFD(const AcGePoint3d& val);
void AFD(const AcGeVector2d& val);
void AFD(const AcGeVector3d& val);
void AFD(const AcGeScale3d& val);
void AFD(const AcDbHardOwnershipId& val);
void AFD(const AcDbSoftOwnershipId& val);
void AFD(const AcDbHardPointerId& val);
void AFD(const AcDbSoftPointerId& val);
void AFD(const AcDbHandle&val);
//匿名const GetFieldData
bool GFD(long index,Adesk::Boolean& val)const;
bool GFD(long index,Adesk::Int8& val)const;
bool GFD(long index,Adesk::UInt8& val)const;
bool GFD(long index,Adesk::Int16& val)const;
bool GFD(long index,Adesk::UInt16& val)const;
bool GFD(long index,Adesk::Int32& val)const;
bool GFD(long index,Adesk::UInt32& val)const;
bool GFD(long index,EntityFields& val)const;
bool GFD(long index,CString&val)const;
bool GFD(long index,double& val)const;
bool GFD(long index,AcGePoint2d& val)const;
bool GFD(long index,AcGePoint3d& val)const;
bool GFD(long index,AcGeVector2d& val)const;
bool GFD(long index,AcGeVector3d& val)const;
bool GFD(long index,AcGeScale3d& val)const;
bool GFD(long indexe,AcDbHardOwnershipId& val)const;
bool GFD(long index,AcDbSoftOwnershipId& val)const;
bool GFD(long index,AcDbHardPointerId& val)const;
bool GFD(long index,AcDbSoftPointerId& val)const;
bool GFD(long index,AcDbHandle&val)const;
//匿名读取GetFieldData
bool GFD(long index,Adesk::Boolean& val);
bool GFD(long index,Adesk::Int8& val);
bool GFD(long index,Adesk::UInt8& val);
bool GFD(long index,Adesk::Int16& val);
bool GFD(long index,Adesk::UInt16& val);
bool GFD(long index,Adesk::Int32& val);
bool GFD(long index,Adesk::UInt32& val);
bool GFD(long index,EntityFields& pVal);
bool GFD(long index,CString&val);
bool GFD(long index,double& val);
bool GFD(long index,AcGePoint2d& val);
bool GFD(long index,AcGePoint3d& val);
bool GFD(long index,AcGeVector2d& val);
bool GFD(long index,AcGeVector3d& val);
bool GFD(long index,AcGeScale3d& val);
bool GFD(long indexe,AcDbHardOwnershipId& val);
bool GFD(long index,AcDbSoftOwnershipId& val);
bool GFD(long index,AcDbHardPointerId& val);
bool GFD(long index,AcDbSoftPointerId& val);
bool GFD(long index,AcDbHandle&val);
protected:
//解析路径
static void GetFieldPath(const TCHAR *sPathName,List<CString> &res);
//创建直接父节点(不存在的话)
EntityFields* CreateParentField(const TCHAR *sPathName,CString &sLastName);
//查找直接父节点,返回NULL不存在
EntityFields* FindParentField(const TCHAR *sPathName,CString &sLastName)const;
protected:
PDList<EntityField> m_lstField;
};
#define TEntityFields EntityFields
#endif