#include "title.hpp"

//constructeur
title::title()
{
    _arwing = loadShell("../data/arwing.shell");
    _titre = loadShell("../data/Titre.shell");
    _cam.setRadius(10);

    _posCam = point(0,0,4);
    _posObj = point(0,0,0);
    _posTitre = point(0,-0.8,0);

    _rotObjX = 0.01;
    _rotObjY = 0.01;
    _rotObjZ = 0;
}

//mise à jour
void title::update()
{
    _cam.moveTo(_posCam);       //deplace la camera a sa position d'origine

    _arwing.add(_posObj);       //deplace l'objet a son debut
    _arwing.rotX(_rotObjX);     //fait les rotations stockes
    _arwing.rotY(_rotObjY);
    _arwing.rotZ(_rotObjX);

    _titre.add(_posTitre);      //deplace le titre a sa bonne place

    _cam.addShell(_arwing);     //entre l'objet et ses parametres dans le buffer
    _cam.addShell(_titre);      //entre le titre et ses parametres dans le buffer

    _posObj = point(0,0,0);     //retourne les points a leur valeur initiale pour eviter le mouvement
    _posTitre = point(0,0,0);
}

//tout les setteur pour la rotation a l'interne de l'objet
void title::rotationObjX(float r=0)
{
    _rotObjX = r;
}

void title::rotationObjY(float r=0)
{
    _rotObjY = r;
}

void title::rotationObjZ(float r=0)
{
    _rotObjZ = r;
}

//determine la position de la camera avec un point
void title::setPosCam(const point& p)
{
    _posCam = p;
}

//determine la position d'un objet avec un point
void title::setPosObj(const point& p)
{
    _posObj = p;
}

//determine la position du titre avec un point
void title::setPosTitre(const point& p)
{
    _posTitre = p;
}
