#include "stdafx.h" #include "AecDbXDrawPointer.h" AecDbXDrawPointer::AecDbXDrawPointer(const AcDbEntity* pEnt,LPCTSTR pszClassName) { m_pAecDbXDraw = NULL; AcRxClass* pClass = AcRxClass::cast(acrxClassDictionary->at(pszClassName)); if (pClass != NULL) { AcRxObject* pAecDrawObj = pClass->create(); if (pAecDrawObj != NULL) { AecDbXDraw* pAecDbXDraw = AecDbXDraw::cast(pAecDrawObj); if (pAecDbXDraw != NULL) { m_pAecDbXDraw = pAecDbXDraw; m_pAecDbXDraw->Attach((AcDbEntity*)pEnt); } } } } AecDbXDrawPointer::AecDbXDrawPointer(const AcDbObjectId &id, LPCTSTR pszClassName) { m_pAecDbXDraw = NULL; AcRxClass *pClass = AcRxClass::cast(acrxClassDictionary->at(pszClassName)); if (pClass != NULL) { AcRxObject *pAecDrawObj = pClass->create(); if (pAecDrawObj != NULL) { AecDbXDraw *pAecDbXDraw = AecDbXDraw::cast(pAecDrawObj); if (pAecDbXDraw != NULL) { m_pAecDbXDraw = pAecDbXDraw; m_pAecDbXDraw->Attach(id); } } } } AecDbXDrawPointer::~AecDbXDrawPointer(void) { if (m_pAecDbXDraw) delete m_pAecDbXDraw; } Acad::ErrorStatus AecDbXDrawPointer::Draw2d(AcGiDraw &dc) const { if (m_pAecDbXDraw != NULL) m_pAecDbXDraw->Draw2d(dc); return Acad::eOk; } Acad::ErrorStatus AecDbXDrawPointer::Edit() { if (m_pAecDbXDraw != NULL) m_pAecDbXDraw->Edit(); return Acad::eOk; } Acad::ErrorStatus AecDbXDrawPointer::Draw3d(AcGiDraw &dc) const { if (m_pAecDbXDraw != NULL) m_pAecDbXDraw->Draw3d(dc); return Acad::eOk; }