Files
envi-code/SourceCode/Code2026/Dimension/SHAcDbLayerTableRecPtr.h
T
2026-09-28 15:28:50 +08:00

51 lines
899 B
C++

#pragma once
class SHAcDbLayerTableRecPtr
{
public:
SHAcDbLayerTableRecPtr(const TCHAR *pszLayer, AcDb::OpenMode opMode);
~SHAcDbLayerTableRecPtr();
int operator !() ;
operator AcDbLayerTableRecord & ();
public:
AcDbLayerTableRecord *m_pLayer;
};
inline SHAcDbLayerTableRecPtr::SHAcDbLayerTableRecPtr(const TCHAR *pszLayer, AcDb::OpenMode opMode)
: m_pLayer(NULL)
{
AcDbLayerTable *pLayerTable;
Acad::ErrorStatus es = acdbCurDwg()->getLayerTable(pLayerTable, AcDb::kForRead);
if (es != Acad::eOk)
{
return;
}
es = pLayerTable->getAt(pszLayer, m_pLayer, opMode);
pLayerTable->close();
}
inline SHAcDbLayerTableRecPtr::~SHAcDbLayerTableRecPtr()
{
if (m_pLayer)
{
m_pLayer->close();
}
}
inline int SHAcDbLayerTableRecPtr::operator !()
{
return !m_pLayer;
}
inline SHAcDbLayerTableRecPtr::operator AcDbLayerTableRecord & ()
{
assert(m_pLayer);
return *m_pLayer;
}