263 lines
6.1 KiB
C++
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;
|
|
};
|