Browse Source

Make `BaseSurface::scaleTo()` non-virtual

master
Krisjanis Rijnieks 9 years ago
parent
commit
103e29b881
  1. 14
      src/Surfaces/BaseSurface.cpp
  2. 2
      src/Surfaces/BaseSurface.h
  3. 1
      src/Surfaces/GridWarpSurface.h
  4. 1
      src/Surfaces/QuadSurface.h
  5. 13
      src/Surfaces/TriangleSurface.cpp
  6. 1
      src/Surfaces/TriangleSurface.h

14
src/Surfaces/BaseSurface.cpp

@ -91,6 +91,20 @@ BaseSource * BaseSurface::getDefaultSource(){
void BaseSurface::setMoved(bool moved){
_moved = moved;
}
void BaseSurface::scaleTo(float scale){
cout << "TriangleSurface::scaleTo()" << endl;
ofVec3f centroid = mesh.getCentroid();
for(unsigned int i = 0; i < mesh.getVertices().size(); ++i){
ofVec3f d = mesh.getVertices()[i] - centroid;
d *= scale;
mesh.getVertices()[i] = centroid + d;
}
ofNotifyEvent(verticesChangedEvent, mesh.getVertices(), this);
}
bool BaseSurface::getMoved(){
return _moved;
}

2
src/Surfaces/BaseSurface.h

@ -22,7 +22,6 @@ class BaseSurface {
virtual void setTexCoord(int index, ofVec2f t) = 0;
virtual void setTexCoords(vector<ofVec2f> t) = 0;
virtual void moveBy(ofVec2f v) = 0;
virtual void scaleTo(float scale) = 0;
virtual int getType() = 0;
@ -39,6 +38,7 @@ class BaseSurface {
void drawTexture(ofVec2f position);
void setSource(BaseSource * newSource);
void setMoved(bool moved);
void scaleTo(float scale);
BaseSource * getSource();
BaseSource * getDefaultSource();

1
src/Surfaces/GridWarpSurface.h

@ -15,7 +15,6 @@ class GridWarpSurface : public BaseSurface {
void setup();
void draw();
void moveBy(ofVec2f v);
void scaleTo(float scale){}
int getType();
int getGridRows();

1
src/Surfaces/QuadSurface.h

@ -27,7 +27,6 @@ class QuadSurface : public BaseSurface {
void setTexCoords(vector<ofVec2f> t);
void moveBy(ofVec2f v);
void scaleTo(float scale){} // TODO: fill this
int getType();
bool hitTest(ofVec2f p);

13
src/Surfaces/TriangleSurface.cpp

@ -133,19 +133,6 @@ void TriangleSurface::moveBy(ofVec2f v){
ofNotifyEvent(verticesChangedEvent, mesh.getVertices(), this);
}
void TriangleSurface::scaleTo(float scale){
cout << "TriangleSurface::scaleTo()" << endl;
ofVec3f centroid = mesh.getCentroid();
for(unsigned int i = 0; i < mesh.getVertices().size(); ++i){
ofVec3f d = mesh.getVertices()[i] - centroid;
d *= scale;
mesh.getVertices()[i] = centroid + d;
}
ofNotifyEvent(verticesChangedEvent, mesh.getVertices(), this);
}
int TriangleSurface::getType(){
return SurfaceType::TRIANGLE_SURFACE;
}

1
src/Surfaces/TriangleSurface.h

@ -25,7 +25,6 @@ class TriangleSurface : public BaseSurface {
void setTexCoords(vector<ofVec2f> t);
void moveBy(ofVec2f v);
void scaleTo(float scale);
int getType();
bool hitTest(ofVec2f p);

Loading…
Cancel
Save