68 lines
1.5 KiB
C++
68 lines
1.5 KiB
C++
#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;
|
|
}
|