Files
envi-code/SourceCode/Code2026/CoreLibrary/AcDbProxyAcGiEntity.cpp
T

148 lines
4.4 KiB
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#include "StdAfx.h"
2026-09-28 15:28:50 +08:00
#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