1332 lines
26 KiB
C++
1332 lines
26 KiB
C++
//-----------------------------------------------------------------------------+
|
|
// Copyright (C), 1998-2007, SH Software Co. Ltd.
|
|
// = FileName : EntityFields 类
|
|
// = Version : ver2.0
|
|
// = Author : zjq
|
|
// = CreateDate : 2002-09-09
|
|
// = Description: EntityFields 定义
|
|
// = Maintainers:
|
|
//
|
|
//-----------------------------------------------------------------------------+
|
|
#include "StdAfx.h"
|
|
#include "EntityFields.h"
|
|
//#include "EntityField.h"
|
|
#include "dbcfilrs.h"
|
|
|
|
EntityFields::EntityFields()
|
|
{
|
|
|
|
}
|
|
|
|
EntityFields::EntityFields(const EntityFields&efs)
|
|
{
|
|
(*this) = efs;
|
|
}
|
|
|
|
EntityFields::~EntityFields()
|
|
{
|
|
|
|
}
|
|
|
|
long EntityFields::GetSubFieldNum()const
|
|
{
|
|
return m_lstField.GetLength();
|
|
}
|
|
|
|
EntityField& EntityFields::GetSubField(long i)
|
|
{
|
|
return m_lstField(i);
|
|
}
|
|
|
|
const EntityField& EntityFields::GetSubField(long i)const
|
|
{
|
|
return *m_lstField.GetAt(i);
|
|
}
|
|
|
|
long EntityFields::Find(const TCHAR* sName)
|
|
{
|
|
EntityField ef;
|
|
ef.SetName(sName);
|
|
if (m_lstField.BFindDataTo(ef))
|
|
{
|
|
return m_lstField.GetCur();
|
|
}
|
|
else
|
|
{
|
|
return NOT_FOUND;
|
|
}
|
|
}
|
|
|
|
long EntityFields::Add(EntityField*pField)
|
|
{
|
|
m_lstField.SortIn(pField,true);
|
|
return m_lstField.GetCur();
|
|
}
|
|
|
|
void EntityFields::Clear()
|
|
{
|
|
m_lstField.Clear();
|
|
}
|
|
|
|
void EntityFields::Del(long i)
|
|
{
|
|
m_lstField.Del(i);
|
|
}
|
|
|
|
void EntityFields::DwgIn(AcDbDwgFiler* pFiler)
|
|
{
|
|
m_lstField.Clear();
|
|
|
|
Adesk::Int32 length;
|
|
pFiler->readItem(&length);
|
|
|
|
for(long i = 0; i < length; i++)
|
|
{
|
|
EntityField *pField = new EntityField;
|
|
pField->DwgIn(pFiler);
|
|
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
}
|
|
|
|
void EntityFields::DwgOut(AcDbDwgFiler* pFiler) const
|
|
{
|
|
Adesk::Int32 length = GetSubFieldNum();
|
|
pFiler->writeItem(length);
|
|
|
|
for(EntityField*const*pField = m_lstField.GetFirst(); pField != NULL; pField = m_lstField.GetNext(pField))
|
|
{
|
|
(*pField)->DwgOut(pFiler);
|
|
}
|
|
}
|
|
|
|
EntityFields& EntityFields::operator = (const EntityFields&efs)
|
|
{
|
|
AcDbDeepCloneFiler filer;
|
|
efs.DwgOut(&filer);
|
|
filer.seek(0L,0);
|
|
DwgIn(&filer);
|
|
|
|
return *this;
|
|
}
|
|
|
|
void EntityFields::DxfIn (AcDbDxfFiler* pFiler)
|
|
{
|
|
m_lstField.Clear();
|
|
}
|
|
|
|
void EntityFields::DxfOut(AcDbDxfFiler* pFiler) const
|
|
{
|
|
|
|
}
|
|
|
|
void EntityFields::GetFieldPath(const TCHAR *sPath,List<CString> &res)
|
|
{
|
|
CString sPathName(sPath);
|
|
|
|
int iFrom = sPathName.Find(_T('\\'));
|
|
if (iFrom > 0)
|
|
{
|
|
res.AddTail(sPathName.Left(iFrom));
|
|
GetFieldPath(sPathName.Right(sPathName.GetLength() - 1 - iFrom),res);
|
|
}
|
|
else if (iFrom == 0)
|
|
{
|
|
GetFieldPath(sPathName.Right(sPathName.GetLength() - 1),res);
|
|
}
|
|
else
|
|
{
|
|
res.AddTail(sPathName);
|
|
}
|
|
}
|
|
|
|
EntityFields* EntityFields::CreateParentField(const TCHAR *sPathName,CString &sLastName)
|
|
{
|
|
List<CString> lstName;
|
|
GetFieldPath(sPathName,lstName);
|
|
|
|
if (lstName.IsEmpty())
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
EntityFields *pParent = this;
|
|
for(lstName.MoveToFirst(); lstName.GetCur()<lstName.GetLastIndex(); lstName.MoveToNext())
|
|
{
|
|
const TCHAR* sName = lstName.GetCurData();
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
EntityField*pField = new EntityField(sName,EntityField::kGroup);
|
|
pParent->Add(pField);
|
|
pField->GetData(pParent);
|
|
}
|
|
else if (pParent->GetSubField(index).GetDataType() != EntityField::kGroup)//存在但不是kGroup
|
|
{
|
|
return NULL;
|
|
}
|
|
else
|
|
{
|
|
EntityField &ef = pParent->GetSubField(index);
|
|
ef.GetData(pParent);
|
|
}
|
|
}
|
|
|
|
sLastName = lstName.GetCurData();
|
|
return pParent;
|
|
}
|
|
|
|
EntityFields* EntityFields::FindParentField(const TCHAR *sPathName,CString &sLastName)const
|
|
{
|
|
List<CString> lstName;
|
|
GetFieldPath(sPathName,lstName);
|
|
|
|
if (lstName.IsEmpty())
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
EntityFields *pParent = (EntityFields*)this; //强制转换了!
|
|
for(lstName.MoveToFirst(); lstName.GetCur() < lstName.GetLastIndex(); lstName.MoveToNext())
|
|
{
|
|
const TCHAR* sName = lstName.GetCurData();
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
return NULL;
|
|
}
|
|
else if (pParent->GetSubField(index).GetDataType() != EntityField::kGroup)//存在但不是kGroup
|
|
{
|
|
return NULL;
|
|
}
|
|
else
|
|
{
|
|
EntityField &ef = pParent->GetSubField(index);
|
|
ef.GetData(pParent);
|
|
}
|
|
}
|
|
|
|
sLastName = lstName.GetCurData();
|
|
return pParent;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const Adesk::Boolean &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kBoolean));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const Adesk::Int8 &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kInt8));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const Adesk::UInt8 &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kUInt8));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const Adesk::Int16 &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kInt16));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const Adesk::UInt16 &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kUInt16));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const Adesk::Int32 &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kInt32));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const Adesk::UInt32 &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kUInt32));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const EntityFields &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kGroup));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const TCHAR* val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kString));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const double &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kDouble));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcGePoint2d &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcGePoint2d));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcGePoint3d &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcGePoint3d));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcGeVector2d &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcGeVector2d));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcGeVector3d &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcGeVector3d));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcGeScale3d &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcGeScale3d));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcDbHardOwnershipId &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcDbHardOwnershipId));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcDbSoftOwnershipId &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcDbSoftOwnershipId));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcDbHardPointerId &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcDbHardPointerId));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcDbSoftPointerId &val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcDbSoftPointerId));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::SFD(const TCHAR *sPathName,const AcDbHandle&val)
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = CreateParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index == NOT_FOUND)
|
|
{
|
|
index = pParent->Add(new EntityField(sName,EntityField::kAcDbHandle));
|
|
}
|
|
|
|
pParent->GetSubField(index).SetData(val);
|
|
return true;
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,Adesk::Boolean& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,Adesk::Int8& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,Adesk::UInt8& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,Adesk::Int16& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,Adesk::UInt16& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,Adesk::Int32& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,Adesk::UInt32& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,EntityFields &val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,CString&val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,double& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcGePoint2d& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcGePoint3d& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcGeVector2d& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcGeVector3d& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcGeScale3d& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcDbHardOwnershipId& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcDbSoftOwnershipId& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcDbHardPointerId& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcDbSoftPointerId& val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool EntityFields::GFD(const TCHAR *sPathName,AcDbHandle&val)const
|
|
{
|
|
CString sName;
|
|
EntityFields *pParent = FindParentField(sPathName,sName);
|
|
if (pParent == NULL)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
long index = pParent->Find(sName);
|
|
if (index != NOT_FOUND)
|
|
{
|
|
return pParent->GetSubField(index).GetData(val);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
void EntityFields::AFD(const Adesk::Boolean&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kBoolean);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const Adesk::Int8&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kInt8);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const Adesk::UInt8&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kUInt8);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const Adesk::Int16&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kInt16);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const Adesk::UInt16&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kUInt16);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const Adesk::Int32&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kInt32);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const Adesk::UInt32&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kUInt32);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const EntityFields& val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kGroup);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const TCHAR*val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kString);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const double&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kDouble);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcGePoint2d&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcGePoint2d);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcGePoint3d&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcGePoint3d);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcGeVector2d&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcGeVector2d);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcGeVector3d&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcGeVector3d);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcGeScale3d&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcGeScale3d);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcDbHardOwnershipId&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcDbHardOwnershipId);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcDbSoftOwnershipId&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcDbSoftOwnershipId);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcDbHardPointerId&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcDbHardPointerId);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcDbSoftPointerId&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcDbSoftPointerId);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
void EntityFields::AFD(const AcDbHandle&val)
|
|
{
|
|
EntityField* pField = new EntityField(_T(""),EntityField::kAcDbHandle);
|
|
pField->SetData(val);
|
|
m_lstField.AddTail(pField);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Boolean& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Int8& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::UInt8& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Int16& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::UInt16& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Int32& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::UInt32& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,EntityFields& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,CString&val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,double& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGePoint2d& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGePoint3d& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGeVector2d& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGeVector3d& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGeScale3d& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbHardOwnershipId& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbSoftOwnershipId& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbHardPointerId& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbSoftPointerId& val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbHandle&val)const
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Boolean& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Int8& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::UInt8& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Int16& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::UInt16& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::Int32& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,Adesk::UInt32& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,EntityFields &val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,CString&val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,double& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGePoint2d& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGePoint3d& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGeVector2d& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGeVector3d& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcGeScale3d& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbHardOwnershipId& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbSoftOwnershipId& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbHardPointerId& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbSoftPointerId& val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|
|
|
|
bool EntityFields::GFD(long index,AcDbHandle&val)
|
|
{
|
|
return GetSubField(index).GetData(val);
|
|
}
|