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