#ifndef _GRAPHICS_MODULE_BASE
#define _GRAPHICS_MODULE_BASE

#include "ofMain.h"
#include "ofVec3f.h"


//	----------------------------
//
// 	I draw stuff on screen
//


class graphicsModuleBase : public ofSimpleApp{
	
	public:
		
		graphicsModuleBase(){
			bPointNew = false;
			bgColor.set(255,255,255);
		};
		
		virtual void 		setup(){};
		virtual void 		reset(){};
		virtual void 		update(){};
		virtual void 		draw(){};
		
		virtual bool 		bAmIdone(){return false;};
		
		virtual ofVec3f		getStartPosition(){return ofVec3f(0,0,0);};
		virtual float		getStartAngle(){ return 0;};
		
		// graphics modules can "add" their points...
		//-------------------------------------------
		void 				addPoint(ofVec3f point){ pt = point; bPointNew = true;}
		bool				bHaveNewPoint(){return bPointNew;}
		ofVec3f				getNewPoint(){bPointNew = false; return pt;}

		bool 				bPointNew;
		ofVec3f 			pt;
		
		//-------------------------------------------
		// our way of drawing:
		
		ofVec3f 		bgColor;
		
		// things we might want to know about the world:
		//-------------------------------------------
		ofVec3f 		endPos;
		float 			endAngle;
		
};

#endif	