15 connect(
m_menu_quiter,SIGNAL(triggered()),
this,SLOT(close()));
65 QMenu *me_fichier = menuBar()->addMenu(
"Fichier");
72 QMenu *me_rendu = menuBar()->addMenu(
"Model Rendu");
77 QMenu *me_vue = menuBar()->addMenu(
"Vue");
82 QMenu *me_util = menuBar()->addMenu(
"Util");
93 object =
new QVector<BaseObject*>();
123 this->setCentralWidget(afficheur);
124 this->installEventFilter(
this);
151 for(
int i = 0; i <
object->count(); i++)
153 delete object->at(i);
167 connect(fen,SIGNAL(finished(
int)),
this,SLOT(
rend()));
175 QString fileName = QFileDialog::getSaveFileName(
this,
176 "Save Image", QDir::currentPath(),
"Image Files (*.ppm)");
177 if(!fileName.isEmpty())
188 QString fileName = QFileDialog::getSaveFileName(
this,
189 "Save Image", QDir::currentPath(),
"Image Files (*.pgm)");
190 if(!fileName.isEmpty())
310 connect(fen,SIGNAL(finished(
int)),
this,SLOT(
rend()));
318 if(event->type() == QEvent::KeyRelease)
320 QKeyEvent *c =
dynamic_cast<QKeyEvent *
>(
event);
321 if(c && c->key() == Qt::Key_Z)
329 if(c && c->key() == Qt::Key_S)
336 if(c && c->key() == Qt::Key_Q)
343 if(c && c->key() == Qt::Key_D)
350 if(c && c->key() == Qt::Key_A)
357 if(c && c->key() == Qt::Key_E)
377 for(
int i = 0; i <
object->count(); i++)
382 for(
unsigned int u = 0; u <
object->at(i)->getNbInstance();u++)
void SetShader(ShaderBase *VS)
Pipeline::SetShader(ShaderBase *VS) Permet de definir le shader qui sera utiliser pour le traitement...
bool event(QEvent *event)
MainWindow::event(QEvent *event) Permet de gerer les evenement dans l'aplication notament les touche ...
QVector< BaseObject * > * object
unsigned char * getDisplay()
Pipeline::getDisplay() Permet de recuperer le tableau de unsigned char du buffer de rendu...
void SaveRenderTarget(std::string fichier)
Pipeline::SaveRenderTarget(std::string name) Sauvegarde le resultat du rendu dans un fichier...
void SetMaterial(Material &material)
Fixe le matériau utilisé par le shader.
void setCliping(bool var)
Pipeline::setCliping(bool var) Slot permetant de changer si le pipeline utilise le cliping...
void ChangeDoCliping()
MainWindow::ChangeDoCliping() Permet de changer si on fait du cliping ou pas.
void exportimage()
MainWindow::exportimage() Permet d'ouvrir une fenetre pour exporter l'image de rendu final...
void SetVertexBuffer(unsigned int VBsz, void *VB, unsigned int VSstride)
Pipeline::SetVertexBuffer(unsigned int VBsz, void *VB, unsigned int VSstride) Permet de definir le ve...
void setViewPoint(bool var)
Pipeline::setViewPoint(bool var) Slot permetant de changer la vue du Pipeline en desactivant ou activ...
Light_Global * pointLight(unsigned int id)
~MainWindow()
MainWindow::~MainWindow() Destructeur de la fenetre principale, suprimme tout les ellement allouer dy...
void Update()
ShaderBase::Update() Fonction permetant de metre a jour le shader pour prendre en compte de nouvelle ...
void exportimagezbuffer()
MainWindow::exportimagezbuffer() Permet d'ouvrir une fenetre pour exporter l'image de zbuffer...
void ChangeViewRemplisage()
MainWindow::ChangeViewRemplisage() Permet d'afficher ou pas le remplisage et deffectuer après un rend...
QAction * m_menu_save_zbuffer
void ChangeDoCulling()
MainWindow::ChangeDoCulling() Permet de changer si on fait du culling ou pas.
void DrawTriangles()
Pipeline::DrawTriangles() Lance l'execution du pipeline ! Il commence par envoiyer 3 sommet au vertex...
void ChangeShadertoGoureau()
MainWindow::ChangeShadertoGoureau() Permet de changer le shader du pipeline en shader de goureau...
void SetWorldTransform(Math::matrice44 &mat)
Fixe la transformation globale de l'objet.
unsigned int getNbLight()
void ClearRenderTarget(defColor::color Couleur)
Pipeline::ClearRenderTarget(defColor::color Couleur) Permet de remplir l'image de buffer avec une cou...
QAction * m_menu_remplissage
void ChangeShadertoPhong()
MainWindow::ChangeShadertoPhong() Permet de changer le shader du pipeline en shader de phong...
void SetPosAtUpFov(Math::vecteur3d &, Math::vecteur3d &, Math::vecteur3d &, float)
setter : valeurs de pObs, pAt, vV et phi
void openaddobject()
MainWindow::openaddobject() Permet d'afficher une fenetre pour ajouter un object dans la scene Une fo...
void SaveZBuffer(std::string name)
Pipeline::SaveZBuffer(std::string name) Sauvegarde le contenu du Zbuffer sous la forme d'une image en...
Classe de gestion du pipeline.
void openaddligth()
MainWindow::openaddligth() Permet d'ouvrir une fenetre pour ajouter une lampe.
void SetCamera(Camera *camera)
Fixe la définition de la caméra.
void setViewRemplisage(bool var)
Pipeline::setViewRemplisage(bool var) Slot permetant de changer la vue du Pipeline en desactivant ou ...
void Update()
mise à jour de la base et des matrices de projection et d'observation
void setViewMaille(bool var)
Pipeline::setViewMaille(bool var) Slot permetant de changer la vue du Pipeline en desactivant ou acti...
void ChangeViewPoint()
MainWindow::ChangeViewPoint() Permet d'afficher ou pas les point et deffectuer après un rendu...
void SetIndexBuffer(unsigned int IBsz, unsigned int *IB)
Pipeline::SetIndexBuffer(unsigned int IBsz, unsigned int *IB) Permet de definir le vertex buffer qui ...
void rend()
MainWindow::rend() Permet d'effectuer un rendu et de metre a jour le widget d'affichage.
MainWindow(QWidget *parent=0)
MainWindow::MainWindow(QWidget *parent) Construit la fenetre principale.
void AddLights(Light_Global *light)
ShaderBase::AddLights(Light_Global * light) Fonction permetant d'ajouter une lampe a la scene...
void ChangeViewMaille()
MainWindow::ChangeViewMaille() Permet d'afficher ou pas le mailliage et deffectuer après un rendu...
void setCulling(bool var)
Pipeline::setCulling(bool var) Slot permetant de changer si le pipeline utilise le culling...
QAction * m_menu_addligth
QAction * m_menu_addobject
void ClearZBuffer(float Zmax=FLT_MAX)
Pipeline::ClearZBuffer(float Zmax) Permet de remplir le ZBuffer avec la valeur Zmax a toute les cordo...