#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