Newer
Older
cg / include / thing.h
@glproj03 glproj03 on 9 Feb 2006 1 KB ooo
#ifndef _THING_H
#define _THING_H

#include "vec.h"
#include "color.h"

using namespace std;

class Thing {
	public:
		virtual void draw();
		virtual void rotate(Vec rot);
		virtual void setColor(Color* c);
		virtual void setColor(Color c);
		virtual void setDelta(float d);
		virtual void showNormals();
		virtual void hideNormals();
		virtual void show();
		virtual void hide();
		virtual void setPosition(Vec newpos);
		virtual void setCenter(Vec newcenter);
		virtual void translate(Vec d);
		virtual void scale(float f);
		virtual void trace(bool s);
		virtual void setIterations(int i);
		virtual ~Thing();
};

class View : public Thing {
	private:
		Vec* rotation;
		Vec* position;
		Color* bgcolor;
	public:
		View();
		View(Vec pos);
		View(Vec pos, Vec rot);
		void rotate(Vec rot);
		void setPosition(Vec newpos);
		void translate(Vec d);
		void draw();
		void setColor(Color* c);
};

class ThingGroup : public Thing {
	private:
		std::vector<Thing*> things;
	public:
		ThingGroup();
		void addThing(Thing* t);
		void show();
		void hide();
		void draw();
		void rotate(Vec r);
};

#endif