53 lines
1.5 KiB
C++
Executable File
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
|