//-----------------------------------------------------------------------------+ // Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd. // = FileName : TEntityFields 类 // = Version : ver2.0 // = Author : wlw // = CreateDate : 2002-09-09 // = Description: TEntityFields 声明 // = Maintainers: // //-----------------------------------------------------------------------------+ #ifndef _TENTITYFIELDS_H_ #define _TENTITYFIELDS_H_ #ifndef _TPDLIST_H_ #include "TPDList.h" #endif #ifndef _TENTITYFIELD_H_ #include "TEntityField.h" #endif class GEOAPI TEntityFields { public: TEntityFields(); TEntityFields &operator =(const TEntityFields&efs); TEntityFields(const TEntityFields&efs); virtual ~TEntityFields(); //表编辑 long Add(TEntityField *pField);//允许重名! void Del(long i); void Clear(); //遍历 long GetSubFieldNum()const; TEntityField& GetSubField(long i); const TEntityField& 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 TEntityFields&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,TEntityFields& 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 TEntityFields &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,TEntityFields& 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,TEntityFields& 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,TList &res); //创建直接父节点(不存在的话) TEntityFields* CreateParentField(const TCHAR *sPathName,CString &sLastName); //查找直接父节点,返回NULL不存在 TEntityFields* FindParentField(const TCHAR *sPathName,CString &sLastName)const; protected: TPDList m_lstField; }; #endif