From b3806b534a748babbf64b21489c463be5d657ba2 Mon Sep 17 00:00:00 2001 From: Krisjanis Rijnieks Date: Sun, 14 Aug 2016 18:32:06 +0200 Subject: [PATCH] Change `BaseSurface` virtual methods to pure virtual --- src/Surfaces/BaseSurface.h | 35 +++++++++++++++++--------------- src/Surfaces/GridWarpSurface.cpp | 4 ++++ src/Surfaces/GridWarpSurface.h | 1 + 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/Surfaces/BaseSurface.h b/src/Surfaces/BaseSurface.h index 4f1093b..676748c 100644 --- a/src/Surfaces/BaseSurface.h +++ b/src/Surfaces/BaseSurface.h @@ -14,35 +14,38 @@ class BaseSurface { public: BaseSurface(); ~BaseSurface(); - virtual void setup(){} - virtual void draw(){} - virtual void setVertex(int index, ofVec2f p){} - virtual void setVertices(vector v){} + virtual void setup() = 0; + virtual void draw() = 0; + virtual void setVertex(int index, ofVec2f p) = 0; + virtual void setVertices(vector v) = 0; + virtual void setTexCoord(int index, ofVec2f t) = 0; + virtual void setTexCoords(vector t) = 0; + virtual void moveBy(ofVec2f v) = 0; - virtual void setTexCoord(int index, ofVec2f t){} - virtual void setTexCoords(vector t){} + virtual int getType() = 0; - virtual void moveBy(ofVec2f v){} - virtual int getType(){ return 0; } - virtual bool hitTest(ofVec2f p){ return false; } - virtual ofPolyline getHitArea(){ ofPolyline p; return p; } - virtual ofPolyline getTextureHitArea(){ ofPolyline p; return p; } - virtual vector & getVertices(){ return mesh.getVertices(); } - virtual vector & getTexCoords(){ return mesh.getTexCoords(); } - virtual BaseSurface * clone(){ return 0; } + virtual bool hitTest(ofVec2f p) = 0; + + virtual ofPolyline getHitArea() = 0; + virtual ofPolyline getTextureHitArea() = 0; + + virtual vector & getVertices() = 0; + virtual vector & getTexCoords() = 0; + + virtual BaseSurface * clone() = 0; void drawTexture(ofVec2f position); void setSource(BaseSource * newSource); + void setMoved(bool moved); + BaseSource * getSource(); BaseSource * getDefaultSource(); - void setMoved(bool moved); bool getMoved(); ofMesh & getMesh(); - // TODO: The surface should emit an event once vertex has changed ofEvent > verticesChangedEvent; ofEvent vertexChangedEvent; diff --git a/src/Surfaces/GridWarpSurface.cpp b/src/Surfaces/GridWarpSurface.cpp index e2ad6af..6cabbb8 100644 --- a/src/Surfaces/GridWarpSurface.cpp +++ b/src/Surfaces/GridWarpSurface.cpp @@ -9,6 +9,10 @@ GridWarpSurface::GridWarpSurface(){ createGridMesh(); } +void GridWarpSurface::setup(){ + // Nothing here yet +} + void GridWarpSurface::draw(){ if(source->getTexture() == 0){ return; diff --git a/src/Surfaces/GridWarpSurface.h b/src/Surfaces/GridWarpSurface.h index 5c8dba9..122405c 100644 --- a/src/Surfaces/GridWarpSurface.h +++ b/src/Surfaces/GridWarpSurface.h @@ -12,6 +12,7 @@ class GridWarpSurface : public BaseSurface { public: GridWarpSurface(); + void setup(); void draw(); void moveBy(ofVec2f v);