- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# src/Material/Material.hpp

Go to the documentation of this file.

    00001 #ifndef MATERIAL_HPP
    00002 #define MATERIAL_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 namespace USpeedGameEngine
    00008 {
    00009
    00010 class Material
    00011 {
    00012     /****************
    00013     * Les attributs *
    00014     ****************/
    00015     public :
    00016         class Texture;
    00017
    00018         Texture *texture;
    00019         USGE_Float3 color;
    00020         USGE_Float3 ambient;
    00021         USGE_Float3 diffuse;
    00022         USGE_Float3 specular;
    00023         USGE_Float3 emission;
    00024         float shininess;
    00025         float opacity;
    00026     protected :
    00027     private :
    00028
    00029     /***************
    00030     * Les méthodes *
    00031     ***************/
    00032     public :
    00033         // Constructeur par défaut
    00034         Material();
    00035         // Destructeur par défaut
    00036         ~Material();
    00037
    00038         // Permet d'effacer les données et ré-initialiser les variables.
    00039         void clear();
    00040
    00042         // Affectation //
    00044         // Application d'une texture.
    00045         void setTexture(Texture *tex);
    00046         // Définition de la couleur de surface.
    00047         void setColor(USGE_Float3 const &color);
    00048         // Définition de la couleur ambiante.
    00049         void setAmbient(USGE_Float3 const &color);
    00050         // Définition de la couleur diffuse.
    00051         void setDiffuse(USGE_Float3 const &color);
    00052         // Définition de la couleur spéculaire.
    00053         void setSpecular(USGE_Float3 const &color);
    00054         // Définition de la couleur d'émission.
    00055         void setEmission(USGE_Float3 const &color);
    00056         // Définition du pourcentage de surbrillance.
    00057         void setShininess(float percent);
    00058         // Définition du pourcentage d'opacité.
    00059         void setOpacity(float percent);
    00060
    00062         // Accès //
    00064         // Récupération de la texture.
    00065         Texture *getTexture();
    00066         // Récupération de la couleur de surface.
    00067         USGE_Float3 getColor();
    00068         void getColor(USGE_Float3 &target);
    00069         // Récupération de la couleur ambiante.
    00070         USGE_Float3 getAmbient();
    00071         void getAmbient(USGE_Float3 &target);
    00072         // Récupération de la couleur diffuse.
    00073         USGE_Float3 getDiffuse();
    00074         void getDiffuse(USGE_Float3 &target);
    00075         // Récupération de la couleur spéculaire.
    00076         USGE_Float3 getSpecular();
    00077         void getSpecular(USGE_Float3 &target);
    00078         // Récupération de la couleur d'émission.
    00079         USGE_Float3 getEmission();
    00080         void getEmission(USGE_Float3 &target);
    00081         // Récupération du pourcentage de surbrillance.
    00082         float getShininess();
    00083         // Récupération du pourcentage d'opacité.
    00084         float getOpacity();
    00085
    00086     protected :
    00087     private :
    00088 };
    00089
    00090 }        // Fin "namespace USpeedGameEngine"
    00091
    00092 #endif