Split off lots of editor functionality into new abstract INodeEditor class and viewport functionality into CBasicViewport class; added viewport subclasses and undo/redo system in the World Editor

This commit is contained in:
parax0
2015-09-01 13:05:48 -04:00
parent 281a605586
commit dbf002d12a
45 changed files with 1760 additions and 908 deletions

View File

@@ -0,0 +1,34 @@
#ifndef CSCALENODECOMMAND_H
#define CSCALENODECOMMAND_H
#include <QUndoCommand>
#include <QList>
#include <Scene/CSceneNode.h>
#include "../INodeEditor.h"
class CScaleNodeCommand : public QUndoCommand
{
struct SNodeScale
{
CSceneNode *pNode;
CVector3f initialPos;
CVector3f initialScale;
CVector3f newPos;
CVector3f newScale;
};
QList<SNodeScale> mNodeList;
INodeEditor *mpEditor;
bool mCommandEnded;
public:
CScaleNodeCommand();
CScaleNodeCommand(INodeEditor *pEditor, const QList<CSceneNode*>& nodes, const CVector3f& pivot, const CVector3f& delta);
~CScaleNodeCommand();
int id() const;
bool mergeWith(const QUndoCommand *other);
void undo();
void redo();
static CScaleNodeCommand* End();
};
#endif // CScaleNODECOMMAND_H