portfolio/cpp/vague/ocean.h

53 lines
1.5 KiB
C++
Executable File

#ifndef OCEAN_H
#define OCEAN_H
#include "vague.h"
#include <deque>
#include<QString>
#include <QTime>
/* amelioration à prévoire :
* - rendre de vangue variable en amplitude superieur a 1 idem direction OK
* - ajouter de la mascotte ... ('.')'
* - optimiser au mieux les boucle cf openmp qtconcurent ... ('.')
* */
class sommet
{
public:
sommet(uint i,uint j):i(i),j(j) {}
uint i,j;
};
class face
{
public:
face(sommet s1, sommet s2, sommet s3): S1(s1),S2(s2),S3(s3) {}
sommet S1,S2,S3;
};
class Ocean
{
public:
~Ocean();
Ocean(QString spectre= QString(), int nbvague =0, int x_size= 20, int z_size = 20);
bool loadSpectre(QString = 0); // charge les spectre de propagation des vages
bool loadMap(int x, int z ); // chage un maille de taill x * z
void affiche();// affiche l'océan
double calcule_hauteur(const int& x, const int& z, const double& t);
void calcul_normales_faces();
void calcul_normales_points();
void calcule_coordonnees_texture();
void anime(double& t);
void anime(void);
bool smooth, ligth;
float* lpos;// postion de la lumiere
private:
int nombre_de_vagues;//
deque<Vague> Vagues;//tableau de vague
int x_points, z_points;//
double x_size, z_size;//distance séparant deux points en x et en z
deque< deque<Vpoint> > Maillage;//tableau de VPoint permettant de stocker les coordonnées du maillage
deque< face > lfaces;
deque<point3D> lfacesnormales;
QTime lastT;
};
#endif // OCEAN_H