⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rdatabasereactor.cpp

📁 能在MDT5/6环境下对已经存在地曲面进行全部和局部区域展开
💻 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 + -