#ifndef ETOILE_HH #define ETOILE_HH #include #include #include #include "matrix.hh" #include "music.hh" /* Globals */ class Etoile_Parameters { public: char *name; char key; int mode; myfloat k; // cst du ressort myfloat d0min; // longueur min myfloat d1; // longueur du cercle du centre myfloat ag; // antigravité int antigorder; int agnumparts; myfloat maxantig; int noagexplosion; myfloat dancingpart; // in % int dancingpartk; myfloat velocity; int numfrq; myfloat visc; myfloat rotspeed1; myfloat rotspeed2; int strombo; // 1 = no strombo int numpart; myfloat size; myfloat sizeloudness; int chance; int duration_f; int duration_b; FloatPoint *Centers; int numCenters; void load_epic(char *file); }; class MetaBalls; class Etoile { public: FloatPoint *pts; float *ptsSize; int ptsNum, ptsNumMax; protected: FloatPoint *speed; FloatPoint *Centers; int numCenters; FloatPoint Center; // center to move the other centers matrix rot; Etoile_Parameters p; Etoile_Parameters *ps; int nump; char *paramFilename; void tourne(short i); void elast_antig(short i,FloatPoint &c); void update_center(); static GLuint texture[2]; int init_parameters(char *name); void changep(); void allocParts(); void freeparams(); public: Etoile(char *paramfile) { paramFilename=strdup(paramfile); } static void make_texture(); virtual void draw(); virtual int init() { if(!init_parameters(paramFilename)) return -1; changep(); return 0; }; virtual void animate(); void mouse(int b, int m, int x, int y){}; void motion(int x, int y){}; }; /* Prototypes */ // parameters #endif /*ETOILE_HH*/