Files
envi-code/SourceCode/Code2026/tg_shs/shs_siteplan/RoolBackNew.h
T

41 lines
858 B
C++
Raw Normal View History

2026-10-04 00:04:20 +08:00
#pragma once
2026-09-28 15:28:50 +08:00
typedef AcArray<AcDbObjectId> ArObjID;
2026-10-04 00:04:20 +08:00
// 每一步操作包含的添加和删除的元素数组。
2026-09-28 15:28:50 +08:00
struct RoolStep
{
ArObjID arObjRemed;
ArObjID arObjAdded;
};
typedef AcArray<RoolStep, AcArrayObjectCopyReallocator<RoolStep> > ArAllStep;
class CCADEnt;
class CDataRoolBack
{
public:
2026-10-04 00:04:20 +08:00
// 清理所有保存的步骤
2026-09-28 15:28:50 +08:00
static void ClearAllStep();
2026-10-04 00:04:20 +08:00
// 新添加一步
2026-09-28 15:28:50 +08:00
static void AddNewStep();
2026-10-04 00:04:20 +08:00
// 添加一个删除的数据
2026-09-28 15:28:50 +08:00
static void AddRemoveData(AcDbObjectId &idRemoved);
2026-10-04 00:04:20 +08:00
// 添加一个新添加的数据
2026-09-28 15:28:50 +08:00
static void AddNewData(AcDbObjectId &idNew);
2026-10-04 00:04:20 +08:00
// 回退一步
2026-09-28 15:28:50 +08:00
static void RoolAStep();
private:
CDataRoolBack();
static ArAllStep m_steps;
};
2026-10-04 00:04:20 +08:00
// 添加需要回退的新数据。
2026-09-28 15:28:50 +08:00
AcDbObjectId RoolBackAddNewData(AcDbEntity *pEnt);
2026-10-04 00:04:20 +08:00
//删除,并且添加到回退数组
2026-09-28 15:28:50 +08:00
void RoolBackAddRemoveData(CCADEnt *pEnt);