Browse Source

Add `RmGridRowCmd`

master
Krisjanis Rijnieks 9 years ago
parent
commit
1d58a9b7a6
  1. 46
      src/Commands/RmGridRowCmd.cpp
  2. 31
      src/Commands/RmGridRowCmd.h

46
src/Commands/RmGridRowCmd.cpp

@ -0,0 +1,46 @@
#include "RmGridRowCmd.h"
namespace ofx {
namespace piMapper {
RmGridRowCmd::RmGridRowCmd(GridWarpSurface * s, ProjectionEditor * e){
_surface = s;
_editor = e;
_doNotUndo = false;
}
void RmGridRowCmd::exec(){
if(_surface->getGridRows() > 1){
_vertices = _surface->getVertices();
_texCoords = _surface->getTexCoords();
_surface->setGridRows(_surface->getGridRows() - 1);
_editor->createJoints();
}else{
_doNotUndo = true;
}
}
void RmGridRowCmd::undo(){
ofLogNotice("RmGridRowCmd", "undo");
if(_doNotUndo){
return;
}
_surface->setGridRows(_surface->getGridRows() + 1);
vector <ofVec2f> v;
for(int i = 0; i < _vertices.size(); ++i){
v.push_back( ofVec2f(_vertices[i].x, _vertices[i].y) );
}
_surface->setVertices(v);
_surface->setTexCoords(_texCoords);
_editor->createJoints();
}
} // namespace piMapper
} // namespace ofx

31
src/Commands/RmGridRowCmd.h

@ -0,0 +1,31 @@
#pragma once
#include "SurfaceManager.h"
#include "BaseCmd.h"
#include "GridWarpSurface.h"
#include "ProjectionEditor.h"
class ofxPiMapper;
namespace ofx {
namespace piMapper {
class RmGridRowCmd : public BaseUndoCmd {
public:
RmGridRowCmd(GridWarpSurface * s, ProjectionEditor * e);
void exec();
void undo();
private:
vector <ofVec3f> _vertices;
vector <ofVec2f> _texCoords;
GridWarpSurface * _surface;
ProjectionEditor * _editor;
bool _doNotUndo;
};
} // namespace piMapper
} // namespace ofx
Loading…
Cancel
Save