#pragma once #include "ofMain.h" #include #include "BaseSource.h" using namespace std; namespace ofx { namespace piMapper { class BaseSurface { public: BaseSurface(); ~BaseSurface(); 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 scaleTo(float scale) = 0; virtual int getType() = 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(); bool getMoved(); ofMesh & getMesh(); ofEvent > verticesChangedEvent; ofEvent vertexChangedEvent; protected: ofMesh mesh; ofTexture defaultTexture; BaseSource * source; BaseSource * defaultSource; void createDefaultTexture(); bool _moved; }; } // namespace piMapper } // namespace ofx