1502 lines
31 KiB
C++
1502 lines
31 KiB
C++
#include "stdafx.h"
|
|
#include "dbcfilrs.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[]=__FILE__;
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
static BOOL DeepCloneObject(AcDbObject* pSrc, AcDbObject*& pDest)
|
|
{
|
|
ASSERT(pSrc);
|
|
if (pSrc == NULL)
|
|
return FALSE;
|
|
|
|
AcDbDeepCloneFiler cloneFiler;
|
|
if (pSrc->dwgOut(&cloneFiler) != Acad::eOk)
|
|
return FALSE;
|
|
cloneFiler.seek(0L, AcDb::kSeekFromStart);
|
|
|
|
AcDbObject* pClone = AcDbObject::cast(pSrc->isA()->create());
|
|
if (pClone == NULL)
|
|
return FALSE;
|
|
|
|
if (pClone->dwgIn(&cloneFiler) != Acad::eOk)
|
|
{
|
|
delete pClone;
|
|
return FALSE;
|
|
}
|
|
|
|
pDest = pClone;
|
|
return TRUE;
|
|
}
|
|
|
|
CSolidData::CSolidData()
|
|
{
|
|
m_eType = CSolidData::eNull;
|
|
m_pData = NULL;
|
|
m_nColorIndex = 256;
|
|
|
|
m_ptUcsXDir.set(1.0, 0.0, 0.0);
|
|
m_ptUcsYDir.set(0.0, 1.0, 0.0);
|
|
m_ptUcsZDir.set(0.0, 0.0, 1.0);
|
|
}
|
|
|
|
CSolidData::CSolidData(CSolidData& data)
|
|
{
|
|
m_eType = CSolidData::eNull;
|
|
m_pData = NULL;
|
|
Copy(&data);
|
|
}
|
|
|
|
CSolidData::~CSolidData()
|
|
{
|
|
Clean();
|
|
}
|
|
|
|
void CSolidData::Clean()
|
|
{
|
|
m_eType = CSolidData::eNull;
|
|
m_idSolid = NULL;
|
|
m_nColorIndex = 256;
|
|
|
|
m_ptPosition.set(0.0, 0.0, 0.0);
|
|
m_ptUcsOrigin.set(0.0, 0.0, 0.0);
|
|
m_ptUcsXDir.set(1.0, 0.0, 0.0);
|
|
m_ptUcsYDir.set(0.0, 1.0, 0.0);
|
|
m_ptUcsZDir.set(0.0, 0.0, 1.0);
|
|
|
|
if (m_pData)
|
|
delete m_pData;
|
|
m_pData = NULL;
|
|
}
|
|
|
|
BOOL CSolidData::SetType(CSolidData::SolidType eType)
|
|
{
|
|
Clean();
|
|
m_eType = eType;
|
|
return CreateData();
|
|
}
|
|
|
|
CSolidData::SolidType CSolidData::GetType() const
|
|
{
|
|
return m_eType;
|
|
}
|
|
|
|
void CSolidData::SetColorIndex(UINT nColor)
|
|
{
|
|
m_nColorIndex = nColor;
|
|
}
|
|
|
|
UINT CSolidData::GetColorIndex()
|
|
{
|
|
return m_nColorIndex;
|
|
}
|
|
|
|
AcDbObjectId CSolidData::GetObjectId()
|
|
{
|
|
return m_idSolid;
|
|
}
|
|
|
|
void CSolidData::SetObjectId(AcDbObjectId idEnt)
|
|
{
|
|
m_idSolid = idEnt;
|
|
}
|
|
|
|
void CSolidData::SetPosition(AcGePoint3d ptPosition)
|
|
{
|
|
m_ptPosition = ptPosition;
|
|
}
|
|
|
|
AcGePoint3d CSolidData::GetPosition()
|
|
{
|
|
return m_ptPosition;
|
|
}
|
|
|
|
void CSolidData::SetUcsCoordinateSystem(AcGePoint3d pt, AcGeVector3d vecX, AcGeVector3d vecY, AcGeVector3d vecZ)
|
|
{
|
|
m_ptUcsOrigin = pt;
|
|
m_ptUcsXDir = pt + vecX;
|
|
m_ptUcsYDir = pt + vecY;
|
|
m_ptUcsZDir = pt + vecZ;
|
|
}
|
|
|
|
void CSolidData::GetUcsCoordinateSystem(AcGePoint3d& pt, AcGeVector3d& vecX, AcGeVector3d& vecY, AcGeVector3d& vecZ)
|
|
{
|
|
pt = m_ptUcsOrigin;
|
|
vecX = m_ptUcsXDir - m_ptUcsOrigin;
|
|
vecY = m_ptUcsYDir - m_ptUcsOrigin;
|
|
vecZ = m_ptUcsZDir - m_ptUcsOrigin;
|
|
}
|
|
|
|
void CSolidData::GetUcsScale(double& dXScale, double& dYScale, double& dZScale)
|
|
{
|
|
dXScale = m_ptUcsXDir.distanceTo(m_ptUcsOrigin);
|
|
dYScale = m_ptUcsYDir.distanceTo(m_ptUcsOrigin);
|
|
dZScale = m_ptUcsZDir.distanceTo(m_ptUcsOrigin);
|
|
}
|
|
|
|
const CBaseData* CSolidData::GetData() const
|
|
{
|
|
return m_pData;
|
|
}
|
|
|
|
BOOL CSolidData::CreateData()
|
|
{
|
|
switch (m_eType)
|
|
{
|
|
case CSolidData::eUnknown:
|
|
m_pData = new CUnknownData;
|
|
break;
|
|
case CSolidData::eBox:
|
|
m_pData = new CBoxData;
|
|
break;
|
|
case CSolidData::eFrustum:
|
|
m_pData = new CFrustumData;
|
|
break;
|
|
case CSolidData::eSphere:
|
|
m_pData = new CSphereData;
|
|
break;
|
|
case CSolidData::eTorus:
|
|
m_pData = new CTorusData;
|
|
break;
|
|
case CSolidData::eWedge:
|
|
m_pData = new CWedgeData;
|
|
break;
|
|
case CSolidData::eExtrude:
|
|
m_pData = new CExtrudeData;
|
|
break;
|
|
case CSolidData::eRevolve:
|
|
m_pData = new CRevolveData;
|
|
break;
|
|
case CSolidData::eBoolean:
|
|
m_pData = new CBooleanData;
|
|
break;
|
|
case CSolidData::eSlice:
|
|
m_pData = new CSliceData;
|
|
break;
|
|
case CSolidData::eArcBridge:
|
|
m_pData = new CArcBridgeData;
|
|
break;
|
|
case CSolidData::eArcColumn:
|
|
m_pData = new CArcColumnData;
|
|
break;
|
|
case CSolidData::eHillWall:
|
|
m_pData = new CHillWallData;
|
|
break;
|
|
case CSolidData::ePyramid:
|
|
m_pData = new CPyramidData;
|
|
break;
|
|
case CSolidData::eSpherePiece:
|
|
m_pData = new CSpherePieceData;
|
|
break;
|
|
default:
|
|
return FALSE;
|
|
}
|
|
ASSERT(m_pData);
|
|
return (m_pData != NULL);
|
|
}
|
|
|
|
CSolidData& CSolidData::operator=(const CSolidData& data)
|
|
{
|
|
Copy(&data);
|
|
return (*this);
|
|
}
|
|
|
|
BOOL CSolidData::Clone(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
if (m_eType != ((CSolidData*)pData)->m_eType)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
m_idSolid = ((CSolidData*)pData)->m_idSolid;
|
|
m_nColorIndex = ((CSolidData*)pData)->m_nColorIndex;
|
|
m_ptPosition = ((CSolidData*)pData)->m_ptPosition;
|
|
m_ptUcsOrigin = ((CSolidData*)pData)->m_ptUcsOrigin;
|
|
m_ptUcsXDir = ((CSolidData*)pData)->m_ptUcsXDir;
|
|
m_ptUcsYDir = ((CSolidData*)pData)->m_ptUcsYDir;
|
|
m_ptUcsZDir = ((CSolidData*)pData)->m_ptUcsZDir;
|
|
|
|
if (m_pData)
|
|
{
|
|
m_pData->Clone(((CSolidData*)pData)->m_pData);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CSolidData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
Clean();
|
|
|
|
m_eType = ((CSolidData*)pData)->m_eType;
|
|
|
|
m_idSolid = ((CSolidData*)pData)->m_idSolid;
|
|
|
|
m_nColorIndex = ((CSolidData*)pData)->m_nColorIndex;
|
|
|
|
m_ptPosition = ((CSolidData*)pData)->m_ptPosition;
|
|
|
|
m_ptUcsOrigin = ((CSolidData*)pData)->m_ptUcsOrigin;
|
|
m_ptUcsXDir = ((CSolidData*)pData)->m_ptUcsXDir;
|
|
m_ptUcsYDir = ((CSolidData*)pData)->m_ptUcsYDir;
|
|
m_ptUcsZDir = ((CSolidData*)pData)->m_ptUcsZDir;
|
|
|
|
if (CreateData())
|
|
{
|
|
m_pData->Copy(((CSolidData*)pData)->m_pData);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CSolidData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSolidData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSolidData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eType);
|
|
|
|
pFiler->writeItem((Adesk::Int32)m_nColorIndex);
|
|
|
|
pFiler->writeItem(m_ptPosition);
|
|
|
|
pFiler->writeItem(m_ptUcsOrigin);
|
|
pFiler->writeItem(m_ptUcsXDir);
|
|
pFiler->writeItem(m_ptUcsYDir);
|
|
pFiler->writeItem(m_ptUcsZDir);
|
|
|
|
if (m_pData != NULL)
|
|
{
|
|
m_pData->dwgOutFields(pFiler);
|
|
}
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSolidData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
Clean();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eType);
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_nColorIndex);
|
|
|
|
pFiler->readItem(&m_ptPosition);
|
|
|
|
pFiler->readItem(&m_ptUcsOrigin);
|
|
pFiler->readItem(&m_ptUcsXDir);
|
|
pFiler->readItem(&m_ptUcsYDir);
|
|
pFiler->readItem(&m_ptUcsZDir);
|
|
|
|
if (CreateData())
|
|
{
|
|
m_pData->dwgInFields(pFiler);
|
|
}
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
CUnknownData::CUnknownData()
|
|
{
|
|
}
|
|
|
|
CUnknownData::~CUnknownData()
|
|
{
|
|
}
|
|
|
|
BOOL CUnknownData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CUnknownData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_arsAcis.RemoveAll();
|
|
m_arsAcis.Copy(((CUnknownData*)pData)->m_arsAcis);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CUnknownData::Create3dSolid(AcDb3dSolid*& pSolid)
|
|
{
|
|
INT_PTR iCount = m_arsAcis.GetSize();
|
|
if (iCount <= 0)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
struct resbuf* pRb = acutNewRb(0);
|
|
struct resbuf* pRbTemp = pRb;
|
|
RBList rb(pRb);
|
|
pRbTemp->resval.rstring = _tcsdup(_T("3DSOLID"));
|
|
|
|
pRbTemp->rbnext = acutNewRb(100);
|
|
pRbTemp = pRbTemp->rbnext;
|
|
pRbTemp->resval.rstring = _tcsdup(_T("AcDbEntity"));
|
|
|
|
pRbTemp->rbnext = acutNewRb(100);
|
|
pRbTemp = pRbTemp->rbnext;
|
|
pRbTemp->resval.rstring = _tcsdup(_T("AcDbModelerGeometry"));
|
|
|
|
pRbTemp->rbnext = acutNewRb(70);
|
|
pRbTemp = pRbTemp->rbnext;
|
|
pRbTemp->resval.rint = 1;
|
|
|
|
for (INT_PTR i = 0; i < iCount; i++)
|
|
{
|
|
pRbTemp->rbnext = acutNewRb(1);
|
|
pRbTemp = pRbTemp->rbnext;
|
|
pRbTemp->resval.rstring = _tcsdup(m_arsAcis[i]);
|
|
}
|
|
pRbTemp->rbnext = NULL;
|
|
|
|
ads_name adsName;
|
|
if (acdbEntMake(pRb) != RTNORM || acdbEntLast(adsName) != RTNORM)
|
|
return FALSE;
|
|
|
|
AcDbObjectId idEnt;
|
|
acdbGetObjectId(idEnt, adsName);
|
|
AcDbObject* pObj;
|
|
if (acdbOpenObject(pObj, idEnt, AcDb::kForWrite) != Acad::eOk)
|
|
return FALSE;
|
|
|
|
if (!pObj->isKindOf(AcDb3dSolid::desc()))
|
|
{
|
|
pObj->close();
|
|
return FALSE;
|
|
}
|
|
pSolid = (AcDb3dSolid*)pObj;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CUnknownData::GetAcisString(AcDbObjectId idEnt, CStringArray& arsAcis)
|
|
{
|
|
arsAcis.RemoveAll();
|
|
ads_name adsName;
|
|
acdbGetAdsName(adsName, idEnt);
|
|
struct resbuf* pRb = acdbEntGet(adsName);
|
|
RBList rb(pRb);
|
|
|
|
if (pRb == NULL)
|
|
return FALSE;
|
|
|
|
struct resbuf* pRbTemp;
|
|
for (pRbTemp = pRb; pRbTemp != NULL; pRbTemp = pRbTemp->rbnext)
|
|
{
|
|
if (pRbTemp->restype == 1)
|
|
break;
|
|
}
|
|
|
|
for (; pRbTemp != NULL; pRbTemp = pRbTemp->rbnext)
|
|
{
|
|
if (pRbTemp->restype == 1)
|
|
arsAcis.Add(pRbTemp->resval.rstring);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CUnknownData::From3dSolid(AcDbObjectId idEnt)
|
|
{
|
|
return GetAcisString(idEnt, m_arsAcis);
|
|
}
|
|
|
|
Acad::ErrorStatus CUnknownData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CUnknownData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CUnknownData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
INT_PTR iCount = m_arsAcis.GetSize();
|
|
pFiler->writeItem((Adesk::Int32)iCount);
|
|
for (INT_PTR i = 0; i < iCount; i++)
|
|
pFiler->writeItem((LPCTSTR)m_arsAcis[i]);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CUnknownData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
m_arsAcis.RemoveAll();
|
|
|
|
int iCount = 0;
|
|
LPTSTR pszAcis = NULL;
|
|
pFiler->readItem((Adesk::Int32*)&iCount);
|
|
for (int i = 0; i < iCount; i++)
|
|
{
|
|
pFiler->readItem(&pszAcis);
|
|
m_arsAcis.Add(pszAcis);
|
|
}
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CBoxData::CBoxData()
|
|
{
|
|
m_eBaseType = CBoxData::eCorner;
|
|
m_dXLen = 0.0;
|
|
m_dYLen = 0.0;
|
|
m_dZLen = 0.0;
|
|
}
|
|
|
|
CBoxData::~CBoxData()
|
|
{
|
|
}
|
|
|
|
BOOL CBoxData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CBoxData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_eBaseType = ((CBoxData*)pData)->m_eBaseType;
|
|
m_dXLen = ((CBoxData*)pData)->m_dXLen;
|
|
m_dYLen = ((CBoxData*)pData)->m_dYLen;
|
|
m_dZLen = ((CBoxData*)pData)->m_dZLen;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CBoxData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CBoxData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CBoxData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem(m_dXLen);
|
|
pFiler->writeItem(m_dYLen);
|
|
pFiler->writeItem(m_dZLen);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CBoxData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
pFiler->readItem(&m_dXLen);
|
|
pFiler->readItem(&m_dYLen);
|
|
pFiler->readItem(&m_dZLen);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CBooleanData::CBooleanData()
|
|
{
|
|
m_eOperateType = AcDb::kBoolUnite;
|
|
}
|
|
|
|
CBooleanData::~CBooleanData()
|
|
{
|
|
Clean();
|
|
}
|
|
|
|
void CBooleanData::Clean()
|
|
{
|
|
INT_PTR iCount = m_arpSrcObj.GetSize();
|
|
for (INT_PTR i = 0; i < iCount; i++)
|
|
delete m_arpSrcObj[i];
|
|
iCount = m_arpDesObj.GetSize();
|
|
for (i = 0; i < iCount; i++)
|
|
delete m_arpDesObj[i];
|
|
m_arpSrcObj.RemoveAll();
|
|
m_arpDesObj.RemoveAll();
|
|
}
|
|
|
|
BOOL CBooleanData::Clone(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_eOperateType = ((CBooleanData*)pData)->m_eOperateType;
|
|
m_arpDesObj.Copy(((CBooleanData*)pData)->m_arpDesObj);
|
|
m_arpSrcObj.Copy(((CBooleanData*)pData)->m_arpSrcObj);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CBooleanData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
Clean();
|
|
m_eOperateType = ((CBooleanData*)pData)->m_eOperateType;
|
|
CSolidData* pSubData;
|
|
INT_PTR iCount = ((CBooleanData*)pData)->m_arpSrcObj.GetSize();
|
|
for (INT_PTR i = 0; i < iCount; i++)
|
|
{
|
|
pSubData = new CSolidData;
|
|
ASSERT(pSubData);
|
|
pSubData->Copy((const CBaseData *)((CBooleanData*)pData)->m_arpSrcObj[i]);
|
|
m_arpSrcObj.Add(pSubData);
|
|
}
|
|
iCount = ((CBooleanData*)pData)->m_arpDesObj.GetSize();
|
|
for (i = 0; i < iCount; i++)
|
|
{
|
|
pSubData = new CSolidData;
|
|
ASSERT(pSubData);
|
|
pSubData->Copy((const CBaseData *)((CBooleanData*)pData)->m_arpDesObj[i]);
|
|
m_arpDesObj.Add(pSubData);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CBooleanData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CBooleanData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CBooleanData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eOperateType);
|
|
|
|
INT_PTR iCount = m_arpSrcObj.GetSize();
|
|
pFiler->writeItem((Adesk::Int32)iCount);
|
|
for (INT_PTR i = 0; i < iCount; i++)
|
|
{
|
|
((CSolidData*)m_arpSrcObj[i])->dwgOutFields(pFiler);
|
|
}
|
|
|
|
iCount = m_arpDesObj.GetSize();
|
|
pFiler->writeItem((Adesk::Int32)iCount);
|
|
for (i = 0; i < iCount; i++)
|
|
{
|
|
((CSolidData*)m_arpDesObj[i])->dwgOutFields(pFiler);
|
|
}
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CBooleanData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
Clean();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eOperateType);
|
|
|
|
int iCount = 0;
|
|
CSolidData* pData;
|
|
pFiler->readItem((Adesk::Int32*)&iCount);
|
|
for (int i = 0; i < iCount; i++)
|
|
{
|
|
pData = new CSolidData;
|
|
ASSERT(pData);
|
|
pData->dwgInFields(pFiler);
|
|
m_arpSrcObj.Add(pData);
|
|
}
|
|
|
|
iCount = 0;
|
|
pFiler->readItem((Adesk::Int32*)&iCount);
|
|
for (i = 0; i < iCount; i++)
|
|
{
|
|
pData = new CSolidData;
|
|
ASSERT(pData);
|
|
pData->dwgInFields(pFiler);
|
|
m_arpDesObj.Add(pData);
|
|
}
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CFrustumData::CFrustumData()
|
|
{
|
|
m_eBaseType = CFrustumData::eBase;
|
|
m_dHeight = 0.0;
|
|
m_dXRadius = 0.0;
|
|
m_dYRadius = 0.0;
|
|
m_dTopXRadius = 0.0;
|
|
}
|
|
|
|
CFrustumData::~CFrustumData()
|
|
{
|
|
}
|
|
|
|
BOOL CFrustumData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CFrustumData::Copy(const CBaseData* pData)
|
|
{
|
|
m_eBaseType = ((CFrustumData*)pData)->m_eBaseType;
|
|
m_dHeight = ((CFrustumData*)pData)->m_dHeight;
|
|
m_dXRadius = ((CFrustumData*)pData)->m_dXRadius;
|
|
m_dYRadius = ((CFrustumData*)pData)->m_dYRadius;
|
|
m_dTopXRadius = ((CFrustumData*)pData)->m_dTopXRadius;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CFrustumData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CFrustumData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CFrustumData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem(m_dHeight);
|
|
pFiler->writeItem(m_dXRadius);
|
|
pFiler->writeItem(m_dYRadius);
|
|
pFiler->writeItem(m_dTopXRadius);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CFrustumData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
pFiler->readItem(&m_dHeight);
|
|
pFiler->readItem(&m_dXRadius);
|
|
pFiler->readItem(&m_dYRadius);
|
|
pFiler->readItem(&m_dTopXRadius);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CSphereData::CSphereData()
|
|
{
|
|
m_dRadius = 0.0;
|
|
}
|
|
|
|
CSphereData::~CSphereData()
|
|
{
|
|
}
|
|
|
|
BOOL CSphereData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CSphereData::Copy(const CBaseData* pData)
|
|
{
|
|
m_dRadius = ((CSphereData*)pData)->m_dRadius;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CSphereData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSphereData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSphereData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem(m_dRadius);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSphereData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem(&m_dRadius);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CTorusData::CTorusData()
|
|
{
|
|
m_dMajorRadius = 0.0;
|
|
m_dMinorRadius = 0.0;
|
|
}
|
|
|
|
CTorusData::~CTorusData()
|
|
{
|
|
}
|
|
|
|
BOOL CTorusData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CTorusData::Copy(const CBaseData* pData)
|
|
{
|
|
m_dMajorRadius = ((CTorusData*)pData)->m_dMajorRadius;
|
|
m_dMinorRadius = ((CTorusData*)pData)->m_dMinorRadius;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CTorusData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CTorusData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CTorusData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem(m_dMajorRadius);
|
|
pFiler->writeItem(m_dMinorRadius);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CTorusData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem(&m_dMajorRadius);
|
|
pFiler->readItem(&m_dMinorRadius);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CWedgeData::CWedgeData()
|
|
{
|
|
m_eBaseType = CWedgeData::eCorner;
|
|
m_bEqualSide = FALSE;
|
|
m_dXLen = 0.0;
|
|
m_dYLen = 0.0;
|
|
m_dZLen = 0.0;
|
|
}
|
|
|
|
CWedgeData::~CWedgeData()
|
|
{
|
|
}
|
|
|
|
BOOL CWedgeData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CWedgeData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_eBaseType = ((CWedgeData*)pData)->m_eBaseType;
|
|
m_bEqualSide = ((CWedgeData*)pData)->m_bEqualSide;
|
|
m_dXLen = ((CWedgeData*)pData)->m_dXLen;
|
|
m_dYLen = ((CWedgeData*)pData)->m_dYLen;
|
|
m_dZLen = ((CWedgeData*)pData)->m_dZLen;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CWedgeData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CWedgeData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CWedgeData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem((Adesk::Boolean)m_bEqualSide);
|
|
pFiler->writeItem(m_dXLen);
|
|
pFiler->writeItem(m_dYLen);
|
|
pFiler->writeItem(m_dZLen);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CWedgeData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
pFiler->readItem((Adesk::Boolean*)&m_bEqualSide);
|
|
pFiler->readItem(&m_dXLen);
|
|
pFiler->readItem(&m_dYLen);
|
|
pFiler->readItem(&m_dZLen);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CExtrudeData::CExtrudeData()
|
|
{
|
|
m_eBaseType = CExtrudeData::eBase;
|
|
m_pProfile = NULL;
|
|
m_pPath = NULL;
|
|
m_dHeight = 0.0;
|
|
m_dTaper = 0.0;
|
|
}
|
|
|
|
CExtrudeData::~CExtrudeData()
|
|
{
|
|
Clean();
|
|
}
|
|
|
|
void CExtrudeData::Clean()
|
|
{
|
|
m_eBaseType = CExtrudeData::eBase;
|
|
if (m_pProfile != NULL)
|
|
delete m_pProfile;
|
|
m_pProfile = NULL;
|
|
|
|
if (m_pPath != NULL)
|
|
delete m_pPath;
|
|
m_pPath = NULL;
|
|
}
|
|
|
|
BOOL CExtrudeData::Clone(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_eBaseType = ((CExtrudeData*)pData)->m_eBaseType;
|
|
m_dHeight = ((CExtrudeData*)pData)->m_dHeight;
|
|
m_dTaper = ((CExtrudeData*)pData)->m_dTaper;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExtrudeData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
Clean();
|
|
m_eBaseType = ((CExtrudeData*)pData)->m_eBaseType;
|
|
m_dHeight = ((CExtrudeData*)pData)->m_dHeight;
|
|
m_dTaper = ((CExtrudeData*)pData)->m_dTaper;
|
|
|
|
if (((CExtrudeData*)pData)->m_pPath)
|
|
{
|
|
DeepCloneObject(((CExtrudeData*)pData)->m_pPath, (AcDbObject*&)m_pPath);
|
|
}
|
|
|
|
if (((CExtrudeData*)pData)->m_pProfile)
|
|
{
|
|
DeepCloneObject(((CExtrudeData*)pData)->m_pProfile, (AcDbObject*&)m_pProfile);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CExtrudeData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CExtrudeData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CExtrudeData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem(m_pProfile->isA()->name());
|
|
m_pProfile->dwgOutFields(pFiler);
|
|
|
|
if (m_eBaseType == CExtrudeData::ePath)
|
|
{
|
|
pFiler->writeItem(m_pPath->isA()->name());
|
|
m_pPath->dwgOutFields(pFiler);
|
|
}
|
|
else
|
|
{
|
|
pFiler->writeItem(m_dHeight);
|
|
pFiler->writeItem(m_dTaper);
|
|
}
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CExtrudeData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
Clean();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
|
|
LPTSTR pszTemp = NULL;
|
|
AcDbObject* pObj;
|
|
AcRxClass* pClass;
|
|
|
|
pFiler->readItem(&pszTemp);
|
|
pClass = AcRxClass::cast(acrxClassDictionary->at(pszTemp));
|
|
if (pClass == NULL)
|
|
{
|
|
return Acad::eMakeMeProxy;
|
|
}
|
|
|
|
pObj = AcDbObject::cast(pClass->create());
|
|
if (pObj == NULL)
|
|
{
|
|
return Acad::eMakeMeProxy;
|
|
}
|
|
pObj->dwgInFields(pFiler);
|
|
m_pProfile = AcDbRegion::cast(pObj);
|
|
|
|
if (m_eBaseType == CExtrudeData::ePath)
|
|
{
|
|
pFiler->readItem(&pszTemp);
|
|
pClass = AcRxClass::cast(acrxClassDictionary->at(pszTemp));
|
|
if (pClass == NULL)
|
|
{
|
|
return Acad::eMakeMeProxy;
|
|
}
|
|
|
|
pObj = AcDbObject::cast(pClass->create());
|
|
if (pObj == NULL)
|
|
{
|
|
return Acad::eMakeMeProxy;
|
|
}
|
|
pObj->dwgInFields(pFiler);
|
|
m_pPath = AcDbCurve::cast(pObj);
|
|
}
|
|
else
|
|
{
|
|
pFiler->readItem(&m_dHeight);
|
|
pFiler->readItem(&m_dTaper);
|
|
}
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CRevolveData::CRevolveData()
|
|
{
|
|
m_dAngle = 0.0;
|
|
m_ptAxis.set(0.0, 0.0, 0.0);
|
|
m_vecAxis.set(0.0, 0.0, 1.0);
|
|
m_pProfile = NULL;
|
|
}
|
|
|
|
CRevolveData::~CRevolveData()
|
|
{
|
|
Clean();
|
|
}
|
|
|
|
void CRevolveData::Clean()
|
|
{
|
|
if (m_pProfile != NULL)
|
|
delete m_pProfile;
|
|
m_pProfile = NULL;
|
|
}
|
|
|
|
BOOL CRevolveData::Clone(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_dAngle = ((CRevolveData*)pData)->m_dAngle;
|
|
m_ptAxis = ((CRevolveData*)pData)->m_ptAxis;
|
|
m_vecAxis = ((CRevolveData*)pData)->m_vecAxis;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CRevolveData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
Clean();
|
|
m_dAngle = ((CRevolveData*)pData)->m_dAngle;
|
|
m_ptAxis = ((CRevolveData*)pData)->m_ptAxis;
|
|
m_vecAxis = ((CRevolveData*)pData)->m_vecAxis;
|
|
if (((CRevolveData*)pData)->m_pProfile)
|
|
DeepCloneObject(((CRevolveData*)pData)->m_pProfile, (AcDbObject*&)m_pProfile);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CRevolveData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CRevolveData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CRevolveData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem(m_dAngle);
|
|
pFiler->writeItem(m_ptAxis);
|
|
pFiler->writeItem(m_vecAxis);
|
|
pFiler->writeItem(m_pProfile->isA()->name());
|
|
m_pProfile->dwgOutFields(pFiler);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CRevolveData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
Clean();
|
|
|
|
pFiler->readItem(&m_dAngle);
|
|
pFiler->readItem(&m_ptAxis);
|
|
pFiler->readItem(&m_vecAxis);
|
|
|
|
LPTSTR pszTemp = NULL;
|
|
AcDbObject* pObj;
|
|
AcRxClass* pClass;
|
|
|
|
pFiler->readItem(&pszTemp);
|
|
pClass = AcRxClass::cast(acrxClassDictionary->at(pszTemp));
|
|
if (pClass == NULL)
|
|
return Acad::eMakeMeProxy;
|
|
pObj = AcDbObject::cast(pClass->create());
|
|
if (pObj == NULL)
|
|
return Acad::eMakeMeProxy;
|
|
pObj->dwgInFields(pFiler);
|
|
m_pProfile = AcDbRegion::cast(pObj);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CSliceData::CSliceData()
|
|
{
|
|
m_ptOrigin.set(0.0, 0.0, 0.0);
|
|
m_vecNormal.set(0.0, 0.0, 1.0);
|
|
}
|
|
|
|
CSliceData::~CSliceData()
|
|
{
|
|
}
|
|
|
|
BOOL CSliceData::Clone(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_ptOrigin = ((CSliceData*)pData)->m_ptOrigin;
|
|
m_vecNormal = ((CSliceData*)pData)->m_vecNormal;
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CSliceData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
m_ptOrigin = ((CSliceData*)pData)->m_ptOrigin;
|
|
m_vecNormal = ((CSliceData*)pData)->m_vecNormal;
|
|
m_Solid = ((CSliceData*)pData)->m_Solid;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CSliceData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSliceData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSliceData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem(m_ptOrigin);
|
|
pFiler->writeItem(m_vecNormal);
|
|
m_Solid.dwgOutFields(pFiler);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSliceData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem(&m_ptOrigin);
|
|
pFiler->readItem(&m_vecNormal);
|
|
m_Solid.dwgInFields(pFiler);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CArcBridgeData::CArcBridgeData()
|
|
{
|
|
m_eBaseType = CArcBridgeData::eCorner;
|
|
m_dX = 0.0;
|
|
m_dY = 0.0;
|
|
m_dZ = 0.0;
|
|
m_dW = 0.0;
|
|
m_dH = 0.0;
|
|
}
|
|
|
|
CArcBridgeData::~CArcBridgeData()
|
|
{
|
|
}
|
|
|
|
BOOL CArcBridgeData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CArcBridgeData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
m_eBaseType = ((CArcBridgeData*)pData)->m_eBaseType;
|
|
m_dX = ((CArcBridgeData*)pData)->m_dX;
|
|
m_dY = ((CArcBridgeData*)pData)->m_dY;
|
|
m_dZ = ((CArcBridgeData*)pData)->m_dZ;
|
|
m_dW = ((CArcBridgeData*)pData)->m_dW;
|
|
m_dH = ((CArcBridgeData*)pData)->m_dH;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CArcBridgeData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CArcBridgeData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CArcBridgeData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem(m_dX);
|
|
pFiler->writeItem(m_dY);
|
|
pFiler->writeItem(m_dZ);
|
|
pFiler->writeItem(m_dW);
|
|
pFiler->writeItem(m_dH);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CArcBridgeData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
pFiler->readItem(&m_dX);
|
|
pFiler->readItem(&m_dY);
|
|
pFiler->readItem(&m_dZ);
|
|
pFiler->readItem(&m_dW);
|
|
pFiler->readItem(&m_dH);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CArcColumnData::CArcColumnData()
|
|
{
|
|
m_eBaseType = CArcColumnData::eCorner;
|
|
m_dX = 0.0;
|
|
m_dY = 0.0;
|
|
m_dZ = 0.0;
|
|
}
|
|
|
|
CArcColumnData::~CArcColumnData()
|
|
{
|
|
}
|
|
|
|
BOOL CArcColumnData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CArcColumnData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
m_eBaseType = ((CArcColumnData*)pData)->m_eBaseType;
|
|
m_dX = ((CArcColumnData*)pData)->m_dX;
|
|
m_dY = ((CArcColumnData*)pData)->m_dY;
|
|
m_dZ = ((CArcColumnData*)pData)->m_dZ;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CArcColumnData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CArcColumnData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CArcColumnData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem(m_dX);
|
|
pFiler->writeItem(m_dY);
|
|
pFiler->writeItem(m_dZ);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CArcColumnData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
pFiler->readItem(&m_dX);
|
|
pFiler->readItem(&m_dY);
|
|
pFiler->readItem(&m_dZ);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CHillWallData::CHillWallData()
|
|
{
|
|
m_eBaseType = CHillWallData::eCorner;
|
|
m_dX = 0.0;
|
|
m_dY = 0.0;
|
|
m_dZ = 0.0;
|
|
m_dH = 0.0;
|
|
}
|
|
|
|
CHillWallData::~CHillWallData()
|
|
{
|
|
}
|
|
|
|
BOOL CHillWallData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CHillWallData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
m_eBaseType = ((CHillWallData*)pData)->m_eBaseType;
|
|
m_dX = ((CHillWallData*)pData)->m_dX;
|
|
m_dY = ((CHillWallData*)pData)->m_dY;
|
|
m_dZ = ((CHillWallData*)pData)->m_dZ;
|
|
m_dH = ((CHillWallData*)pData)->m_dH;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CHillWallData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CHillWallData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CHillWallData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem(m_dX);
|
|
pFiler->writeItem(m_dY);
|
|
pFiler->writeItem(m_dZ);
|
|
pFiler->writeItem(m_dH);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CHillWallData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
pFiler->readItem(&m_dX);
|
|
pFiler->readItem(&m_dY);
|
|
pFiler->readItem(&m_dZ);
|
|
pFiler->readItem(&m_dH);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CPyramidData::CPyramidData()
|
|
{
|
|
m_eBaseType = CPyramidData::eCorner;
|
|
m_dX = 0.0;
|
|
m_dY = 0.0;
|
|
m_dZ = 0.0;
|
|
}
|
|
|
|
CPyramidData::~CPyramidData()
|
|
{
|
|
}
|
|
|
|
BOOL CPyramidData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CPyramidData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
m_eBaseType = ((CPyramidData*)pData)->m_eBaseType;
|
|
m_dX = ((CPyramidData*)pData)->m_dX;
|
|
m_dY = ((CPyramidData*)pData)->m_dY;
|
|
m_dZ = ((CPyramidData*)pData)->m_dZ;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CPyramidData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CPyramidData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CPyramidData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem((Adesk::Int32)m_eBaseType);
|
|
pFiler->writeItem(m_dX);
|
|
pFiler->writeItem(m_dY);
|
|
pFiler->writeItem(m_dZ);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CPyramidData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem((Adesk::Int32*)&m_eBaseType);
|
|
pFiler->readItem(&m_dX);
|
|
pFiler->readItem(&m_dY);
|
|
pFiler->readItem(&m_dZ);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CSpherePieceData::CSpherePieceData()
|
|
{
|
|
m_dW = 0.0;
|
|
m_dH = 0.0;
|
|
}
|
|
|
|
CSpherePieceData::~CSpherePieceData()
|
|
{
|
|
}
|
|
|
|
BOOL CSpherePieceData::Clone(const CBaseData* pData)
|
|
{
|
|
return Copy(pData);
|
|
}
|
|
|
|
BOOL CSpherePieceData::Copy(const CBaseData* pData)
|
|
{
|
|
ASSERT(pData);
|
|
|
|
m_dW = ((CSpherePieceData*)pData)->m_dW;
|
|
m_dH = ((CSpherePieceData*)pData)->m_dH;
|
|
return TRUE;
|
|
}
|
|
|
|
Acad::ErrorStatus CSpherePieceData::dxfOutFields(AcDbDxfFiler* pFiler) const
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSpherePieceData::dxfInFields(AcDbDxfFiler* pFiler)
|
|
{
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSpherePieceData::dwgOutFields(AcDbDwgFiler* pFiler) const
|
|
{
|
|
pFiler->writeItem(m_dW);
|
|
pFiler->writeItem(m_dH);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
Acad::ErrorStatus CSpherePieceData::dwgInFields(AcDbDwgFiler* pFiler)
|
|
{
|
|
if (pFiler->filerStatus() != Acad::eOk)
|
|
return pFiler->filerStatus();
|
|
|
|
pFiler->readItem(&m_dW);
|
|
pFiler->readItem(&m_dH);
|
|
|
|
return pFiler->filerStatus();
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|