Files
envi-code/SourceCode/Code2026/Dimension/EntityFields.h
T
2026-09-28 15:28:50 +08:00

263 lines
6.1 KiB
C++

#pragma once
#include "PDList.h"
#include "EntityField.h"
class 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,SHList<CString> &res);
//创建直接父节点(不存在的话)
EntityFields* CreateParentField(const TCHAR *sPathName,CString &sLastName);
//查找直接父节点,返回NULL不存在
EntityFields* FindParentField(const TCHAR *sPathName,CString &sLastName)const;
protected:
PDList<EntityField> m_lstField;
};