148 lines
4.4 KiB
C++
148 lines
4.4 KiB
C++
#include "StdAfx.h"
|
|
#include "AcDbProxyAcGiEntity.h"
|
|
#include "AecUnknownViewportDraw.h"
|
|
#include "AecUnknownWorldDraw.h"
|
|
#include "EarThwormDef.h"
|
|
|
|
ACRX_DXF_DEFINE_MEMBERS (
|
|
AecDbProxyAcGiEntity, AcDbEntity,
|
|
AcDb::kDHL_CURRENT, AcDb::kMReleaseCurrent,
|
|
AcDbProxyEntity::kNoOperation,
|
|
DB_AECPROXY,
|
|
"ACDBGIPROXYENTITY"
|
|
"|Product Desc: Autodesk Dwg licence obj"
|
|
"|Company: Autodesk inc"
|
|
"|WEB Address: www.Autodesk.com"
|
|
)
|
|
|
|
AecDbProxyAcGiEntity::AecDbProxyAcGiEntity(void)
|
|
{
|
|
m_pUnknownWorldDraw = new AecUnknownWorldDraw;
|
|
m_pUnknownViewportDraw = new AecUnknownViewportDraw;
|
|
m_xform.setToIdentity();
|
|
m_eType = kAcGiStandardDisplay;
|
|
}
|
|
|
|
AecDbProxyAcGiEntity::~AecDbProxyAcGiEntity(void)
|
|
{
|
|
if (m_pUnknownWorldDraw) DELETE_PTR(m_pUnknownWorldDraw);
|
|
if (m_pUnknownViewportDraw) DELETE_PTR(m_pUnknownViewportDraw);
|
|
}
|
|
|
|
void AecDbProxyAcGiEntity::setSubEntity(AcDbObjectId& id)
|
|
{
|
|
assertWriteEnabled();
|
|
m_idSubObj = id;
|
|
}
|
|
|
|
void AecDbProxyAcGiEntity::setTransform(AcGeMatrix3d& xform)
|
|
{
|
|
assertWriteEnabled();
|
|
m_xform = xform;
|
|
}
|
|
|
|
void AecDbProxyAcGiEntity::setRegenType(AcGiRegenType eType)
|
|
{
|
|
assertWriteEnabled();
|
|
m_eType = eType;
|
|
((AecUnknownWorldDraw*)m_pUnknownWorldDraw)->setRegenType(eType);
|
|
((AecUnknownViewportDraw*)m_pUnknownViewportDraw)->setRegenType(eType);
|
|
}
|
|
|
|
void AecDbProxyAcGiEntity::setDrawingStreamRecord(AecDrawingStreamRecord* pRec)
|
|
{
|
|
((AecUnknownWorldDraw*)m_pUnknownWorldDraw)->setDrawingStreamRecord(pRec);
|
|
((AecUnknownViewportDraw*)m_pUnknownViewportDraw)->setDrawingStreamRecord(pRec);
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbProxyAcGiEntity::dwgOutFields (AcDbDwgFiler *pFiler) const
|
|
{
|
|
assertReadEnabled();
|
|
return AcDbEntity::dwgOutFields(pFiler);
|
|
}
|
|
|
|
Acad::ErrorStatus AecDbProxyAcGiEntity::dwgInFields (AcDbDwgFiler *pFiler)
|
|
{
|
|
assertWriteEnabled(Adesk::kFalse, Adesk::kTrue);
|
|
return AcDbEntity::dwgInFields(pFiler);
|
|
}
|
|
|
|
#if ARX<18
|
|
Adesk::Boolean AecDbProxyAcGiEntity::worldDraw (AcGiWorldDraw *mode)
|
|
{
|
|
AcDbObject* pObj = NULL;
|
|
if ( m_idSubObj.isValid() && acdbOpenObject(pObj, m_idSubObj, AcDb::kForRead ) == Acad::eOk)
|
|
{
|
|
((AecUnknownWorldDraw*)m_pUnknownWorldDraw)->setWorldDraw(mode);
|
|
AcDbEntity* pEnt = AcDbEntity::cast(pObj);
|
|
if (pEnt != NULL)
|
|
{
|
|
m_pUnknownWorldDraw->subEntityTraits().setLayer(pEnt->layerId());
|
|
m_pUnknownWorldDraw->subEntityTraits().setColor(pEnt->colorIndex());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineType(pEnt->linetypeId());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineTypeScale(pEnt->linetypeScale());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineWeight(pEnt->lineWeight());
|
|
}
|
|
|
|
Adesk::Boolean bRet = pObj->worldDraw(m_pUnknownWorldDraw);
|
|
|
|
pObj->close();
|
|
return bRet;
|
|
}
|
|
|
|
return Adesk::kFalse;
|
|
}
|
|
|
|
void AecDbProxyAcGiEntity::viewportDraw(AcGiViewportDraw * mode)
|
|
{
|
|
assertReadEnabled();
|
|
|
|
AcDbObject* pObj = NULL;
|
|
if (m_idSubObj.isValid() && acdbOpenObject(pObj, m_idSubObj, AcDb::kForRead ) == Acad::eOk)
|
|
{
|
|
((AecUnknownViewportDraw*)m_pUnknownViewportDraw)->setVportDraw(mode);
|
|
AcDbEntity* pEnt = AcDbEntity::cast(pObj);
|
|
if (pEnt != NULL)
|
|
{
|
|
m_pUnknownWorldDraw->subEntityTraits().setLayer(pEnt->layerId());
|
|
m_pUnknownWorldDraw->subEntityTraits().setColor(pEnt->colorIndex());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineType(pEnt->linetypeId());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineTypeScale(pEnt->linetypeScale());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineWeight(pEnt->lineWeight());
|
|
}
|
|
|
|
pObj->viewportDraw(m_pUnknownViewportDraw);
|
|
|
|
pObj->close();
|
|
}
|
|
}
|
|
#else
|
|
Adesk::Boolean AecDbProxyAcGiEntity::subWorldDraw (AcGiWorldDraw *mode)
|
|
{
|
|
return Adesk::kFalse;
|
|
}
|
|
|
|
void AecDbProxyAcGiEntity::subViewportDraw(AcGiViewportDraw * mode)
|
|
{
|
|
assertReadEnabled();
|
|
|
|
AcDbObject* pObj = NULL;
|
|
if (m_idSubObj.isValid() && acdbOpenObject(pObj, m_idSubObj, AcDb::kForRead ) == Acad::eOk)
|
|
{
|
|
((AecUnknownViewportDraw*)m_pUnknownViewportDraw)->setVportDraw(mode);
|
|
AcDbEntity* pEnt = AcDbEntity::cast(pObj);
|
|
if (pEnt != NULL)
|
|
{
|
|
m_pUnknownWorldDraw->subEntityTraits().setLayer(pEnt->layerId());
|
|
m_pUnknownWorldDraw->subEntityTraits().setColor(pEnt->colorIndex());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineType(pEnt->linetypeId());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineTypeScale(pEnt->linetypeScale());
|
|
m_pUnknownWorldDraw->subEntityTraits().setLineWeight(pEnt->lineWeight());
|
|
}
|
|
|
|
pObj->viewportDraw(m_pUnknownViewportDraw);
|
|
|
|
pObj->close();
|
|
}
|
|
}
|
|
#endif |