Newer
Older
cg / include / model.h
@glproj03 glproj03 on 3 Feb 2006 1 KB added GluModel - GluSphere
#ifndef _MODEL_H
#define _MODEL_H

#include "vec.h"
#include "poly.h"
#include <string>

class Model : public Thing {
	private:
		std::vector<Poly*> faces;

		Vec* position;
		Vec* rotation;

		float delta;

		bool drawMe;

	public:
		Model();
		Model(std::vector<Poly*> & _faces);
		~Model();
		void setCenter(Vec& c);
		void setCenter(Vec* c);
		void setPosition(Vec c);
		void setPosition(Vec* c);
		Vec calcCenter();
		void rotate(Vec rot);
		void draw();
		void addFace(Poly* face);
		int numFaces();
		void vardump(std::string whitespace);
		void setDelta(float d);
		void setMaterial(Color ambient, Color specular);
		float getDelta();
		void showNormals();
		void hideNormals();
		Model* clone();
		void setColor(Color* c);
		void show();
		void hide();
		void translate(Vec d);
		void scale(float f);
};
#endif

class GluModel : public Thing {
 public:  
  GLUquadricObj* pt;
  Vec* pos;
  Vec* rot;
  Material* mat;
  float scale;
  bool enabled;
  GluModel();
  GluModel(Vec _pos, Material _mat);
  void init(Vec _pos, Material _mat);
  
  void setMaterial(Color _amb);
  void setMaterial(Color _amb, Color _spec);  
};

class GluSphere : public GluModel {
 public:
  float rad;
  GluSphere();
  GluSphere(Vec _pos, Material _mat, float _rad);
  void init(Vec _pos, Material _mat, float _rad);
  void draw();
};