Files

64 lines
1.8 KiB
C++
Raw Permalink Normal View History

2026-10-04 00:04:20 +08:00
#if !defined(__KTENTITYDUMB_H__)
2026-09-28 15:28:50 +08:00
#define __KTENTITYDUMB_H__
// Description:
2026-10-04 00:04:20 +08:00
// 类CKTEntityDumb用于在AcEdJig中管理多个实体一起拖动是的操作.
// 作为哑元类使用
2026-09-28 15:28:50 +08:00
// Company: Kingtouch Software Corporation. Copyright 2002-2005
// Author: WangYongguang
// Date: 2002.05.01
#ifdef EARTHWORM_EXPORT
#define DLLIMPEXP __declspec(dllexport)
#else
#define DLLIMPEXP __declspec(dllimport)
#endif
#include "KTObjLifeMgr.h"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class DLLIMPEXP CKTEntityDumb : public AcDbEntity, CKTObjLifeMgr
{
public:
ACRX_DECLARE_MEMBERS(CKTEntityDumb);
2026-10-04 00:04:20 +08:00
// 默认构造函数
2026-09-28 15:28:50 +08:00
CKTEntityDumb(BOOL bAutoRelease = TRUE);
2026-10-04 00:04:20 +08:00
// 构造函数, 加入管理实体
2026-09-28 15:28:50 +08:00
CKTEntityDumb(AcDbEntity* pEnt, BOOL bAutoRelease = FALSE);
2026-10-04 00:04:20 +08:00
// 构造函数, 加入管理实体
2026-09-28 15:28:50 +08:00
CKTEntityDumb(const AcDbVoidPtrArray& arpEnts, BOOL bAutoRelease = FALSE);
2026-10-04 00:04:20 +08:00
// 构造函数, 加入管理实体
2026-09-28 15:28:50 +08:00
CKTEntityDumb(const AcDbObjectId& idEnt, BOOL bAutoRelease = TRUE);
2026-10-04 00:04:20 +08:00
// 构造函数, 加入管理实体
2026-09-28 15:28:50 +08:00
CKTEntityDumb(const AcDbObjectIdArray& aridEnts, BOOL bAutoRelease = TRUE);
2026-10-04 00:04:20 +08:00
// 析构函数
2026-09-28 15:28:50 +08:00
virtual ~CKTEntityDumb();
2026-10-04 00:04:20 +08:00
// 判断是否自动close/delete管理的实体
2026-09-28 15:28:50 +08:00
BOOL IsAutoRelease();
2026-10-04 00:04:20 +08:00
// 设置自动close/delete标志
2026-09-28 15:28:50 +08:00
void EnableAutoRelease(BOOL bEnable = TRUE);
protected:
2026-10-04 00:04:20 +08:00
// 实体被添加
2026-09-28 15:28:50 +08:00
virtual void OnObjectAdded(AcDbObject* pObj);
2026-10-04 00:04:20 +08:00
// 重载函数
2026-09-28 15:28:50 +08:00
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
virtual void subViewportDraw(AcGiViewportDraw* mode);
virtual Adesk::Boolean subWorldDraw(AcGiWorldDraw* mode);
2026-10-04 00:04:20 +08:00
// 析构时处理标志
2026-09-28 15:28:50 +08:00
BOOL m_bAutoRelease;
void *operator new[](size_t nSize) {return 0;}
void operator delete[](void *p) {};
void *operator new[](size_t nSize, const char *file, int line) {return 0;}
friend class CKTEntityDragMgr;
};
#endif // !defined(__KTENTITYDUMB_H__)