33 lines
813 B
C
33 lines
813 B
C
|
#ifndef CTRANSLATENODECOMMAND_H
|
||
|
#define CTRANSLATENODECOMMAND_H
|
||
|
|
||
|
#include <QUndoCommand>
|
||
|
#include <QList>
|
||
|
#include <Scene/CSceneNode.h>
|
||
|
#include "../INodeEditor.h"
|
||
|
|
||
|
class CTranslateNodeCommand : public QUndoCommand
|
||
|
{
|
||
|
struct SNodeTranslate
|
||
|
{
|
||
|
CSceneNode *pNode;
|
||
|
CVector3f initialPos;
|
||
|
CVector3f newPos;
|
||
|
};
|
||
|
QList<SNodeTranslate> mNodeList;
|
||
|
INodeEditor *mpEditor;
|
||
|
bool mCommandEnded;
|
||
|
|
||
|
public:
|
||
|
CTranslateNodeCommand();
|
||
|
CTranslateNodeCommand(INodeEditor *pEditor, const QList<CSceneNode*>& nodes, const CVector3f& delta, ETransformSpace transformSpace);
|
||
|
~CTranslateNodeCommand();
|
||
|
int id() const;
|
||
|
bool mergeWith(const QUndoCommand *other);
|
||
|
void undo();
|
||
|
void redo();
|
||
|
static CTranslateNodeCommand* End();
|
||
|
};
|
||
|
|
||
|
#endif // CTRANSLATENODECOMMAND_H
|