You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.3 KiB
C++

#pragma once
#include "ActionItem.h"
#include "WellPoleLib/WellBaseObj.h"
#include "WellPoleLib/WellClassObjGroup.h"
#include "WellPoleLib/TrackObj.h"
#include "WellPoleLib/TrackGroup.h"
#include "../Visitor.h"
namespace NAction
{
typedef struct _delTrackInfo {
_delTrackInfo(){
pDelTrack = NULL; pParentGroup = NULL;
m_iDelTrackPos = m_iDelParentGroupPos = -1;
};
CTrackObj *pDelTrack;
int m_iDelTrackPos;
CTrackGroup* pParentGroup; //当此父对象指针为空时,表示是只是删除单道,不影响父亲道。
int m_iDelParentGroupPos;
TRACKLIST groupTrackTrackList;
} DELTRACKINFO;
class CActionWellTrackDeleteItem : public CActionItem
{
public:
CActionWellTrackDeleteItem(CSigmaDoc* ppDoc, UINT actionType, TRACKLIST& delTrackList);
virtual ~CActionWellTrackDeleteItem(void);
std::string GetActionName() const override
{
return typeid(*this).name();
}
virtual void accept(CActionVisitor& visitor);
virtual void Undo(void);
virtual void Redo(void);
virtual void Finish();
virtual void AddOperation();
virtual void RemoveOperation();
BOOL m_bPerformOperation;
protected:
bool m_bDeleted;
//virtual void PerformOperation();
void GetTrackInfo(TRACKLIST& AddTrackList);
//std::vector<int> m_iTracksPos;
//TRACKLIST m_DelTrackList;
std::vector< DELTRACKINFO>m_DelTrackInfos;
};
};