Browse Source

Make use of `SurfaceFactory` in `AddSurfaceCmd`

master
Krisjanis Rijnieks 10 years ago
parent
commit
77340cd9e4
  1. 42
      src/Commands/AddSurfaceCmd.cpp
  2. 1
      src/Commands/AddSurfaceCmd.h

42
src/Commands/AddSurfaceCmd.cpp

@ -9,11 +9,8 @@ AddSurfaceCmd::AddSurfaceCmd(ofxPiMapper * app, int surfaceType){
}
void AddSurfaceCmd::exec(){
if(_surfaceType == SurfaceType::TRIANGLE_SURFACE){
addTriangleSurface();
}else if(_surfaceType == SurfaceType::QUAD_SURFACE){
addQuadSurface();
}
BaseSurface * surface = SurfaceFactory::instance()->createSurface(_surfaceType);
_app->getSurfaceManager()->addSurface(surface);
}
void AddSurfaceCmd::undo(){
@ -21,41 +18,6 @@ void AddSurfaceCmd::undo(){
_app->getSurfaceManager()->removeSurface();
}
void AddSurfaceCmd::addTriangleSurface(){
int surfaceType = ofx::piMapper::SurfaceType::TRIANGLE_SURFACE;
vector <ofVec2f> vertices;
float margin = 50.0f;
vertices.push_back(ofVec2f((float)ofGetWidth() / 2.0f, margin));
vertices.push_back(ofVec2f((float)ofGetWidth() - margin, (float)ofGetHeight() - margin));
vertices.push_back(ofVec2f(margin, (float)ofGetHeight() - margin));
vector <ofVec2f> texCoords;
texCoords.push_back(ofVec2f(0.5f, 0.0f));
texCoords.push_back(ofVec2f(1.0f, 1.0f));
texCoords.push_back(ofVec2f(0.0f, 1.0f));
_app->getSurfaceManager()->createSurface(surfaceType, vertices, texCoords);
}
void AddSurfaceCmd::addQuadSurface(){
int surfaceType = ofx::piMapper::SurfaceType::QUAD_SURFACE;
vector <ofVec2f> vertices;
float margin = 50.0f;
vertices.push_back(ofVec2f(margin, margin));
vertices.push_back(ofVec2f((float)ofGetWidth() - margin, margin));
vertices.push_back(ofVec2f((float)ofGetWidth() - margin, (float)ofGetHeight() - margin));
vertices.push_back(ofVec2f(margin, (float)ofGetHeight() - margin));
vector <ofVec2f> texCoords;
texCoords.push_back(ofVec2f(ofVec2f(0.0f, 0.0f)));
texCoords.push_back(ofVec2f(ofVec2f(1.0f, 0.0f)));
texCoords.push_back(ofVec2f(ofVec2f(1.0f, 1.0f)));
texCoords.push_back(ofVec2f(ofVec2f(0.0f, 1.0f)));
_app->getSurfaceManager()->createSurface(surfaceType, vertices, texCoords);
}
} // namespace piMapper
} // namespace ofx

1
src/Commands/AddSurfaceCmd.h

@ -4,6 +4,7 @@
#include "BaseCmd.h"
#include "SurfaceType.h"
#include "BaseSurface.h"
#include "SurfaceFactory.h"
class ofxPiMapper;

Loading…
Cancel
Save