#ifndef _GLUMODEL_H #define _GLUMODEL_H #include "vec.h" #include "thing.h" #include "poly.h" #include <string> class GenericModel : public Thing { public: GLUquadricObj* pt; Vec* pos; Vec* rot; Material* mat; float scale; bool enabled; GenericModel(); GenericModel(Vec _pos, Material _mat); void init(Vec _pos, Material _mat); void setMaterial(Color _amb); void setMaterial(Color _amb, Color _spec); }; class GluSphere : public GenericModel { public: float rad; GluSphere(); GluSphere(Vec _pos, Material _mat, float _rad); void init(Vec _pos, Material _mat, float _rad); void draw(); }; class Fractal : public GenericModel { public: float iters; float len; float multiplicity; float mult_angle; Fractal(); void init(float _iters, float _len); }; class KochFractal : public Fractal { public: KochFractal(); //TODO: move draw function to Fractal class, it's common for all //inheriting fractals.... void draw(); void iter(float nbit); }; #endif