📄 rdatabasereactor.cpp
字号:
/////////////////////////////////////////////
// AcDbDatabaseReactor reactors.
#include "StdAfx.h"
#include "StdArx.h"
#include "ChDbSurfD.h"
#include "SurfDFun.h"
ChSurfDObjDbRt::ChSurfDObjDbRt(const bool storeInDocVars, AcApDocument* pDoc)
{
if (storeInDocVars) {
assert(DocVars.docData(pDoc).m_pChSurfDObjDbRt == NULL);
m_pDoc = pDoc;
m_pDoc->database()->addReactor(this);
DocVars.docData(m_pDoc).m_pChSurfDObjDbRt = this;
} else
m_pDoc = NULL;
}
ChSurfDObjDbRt::~ChSurfDObjDbRt()
{
if (m_pDoc) {
if (DocVars.docData(m_pDoc).m_pChSurfDObjDbRt)
DocVars.docData(m_pDoc).m_pChSurfDObjDbRt = NULL;
m_pDoc->database()->removeReactor(this);
m_pDoc = NULL;
}
}
void ChSurfDObjDbRt::objectErased(const AcDbDatabase* dwg,
const AcDbObject* dbObj,
Adesk::Boolean pErased)
{
// TODO: implement this function.
if (strcmp(dbObj->isA()->name(),SURF_CLASS_NAME) != 0 ) {
return;
}
struct resbuf *pRb;
pRb = dbObj->xData(appName);
if (pRb == NULL) {
return;
}
ChDbSurfD *pDSurf;
if (getSurfDObjFromMainObj(dbObj,pDSurf,AcDb::kForRead)
!= Acad::eOk) {
return;
}
if (pErased) {
if (!pDSurf->isErased()) {
deleteSurfDDictEntry(pDSurf);
pDSurf->upgradeOpen();
pDSurf->erase(true);
}
} else {
pDSurf->upgradeOpen();
pDSurf->erase(false);
pDSurf->downgradeOpen();
addSurfDDictEntry(pDSurf);
}
pDSurf->close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -