- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# src/Physic/PhysicState.hpp

Go to the documentation of this file.

    00001 #ifndef PHYSIC_STATE_HPP
    00002 #define PHYSIC_STATE_HPP
    00003
    00004 // Détection du système cible...
    00005 #include "usgeDetectSystem.h"
    00006
    00007 // Les types "USpeed Game Engine"
    00008 #include "Core/CoreTypes.hpp"
    00009
    00010 #include "Physic.hpp"
    00011
    00012 namespace USpeedGameEngine
    00013 {
    00014
    00015 class Physic::PhysicState
    00016 {
    00017     /****************
    00018     * Les attributs *
    00019     ****************/
    00020     public :
    00021     protected :
    00022     private :
    00023         void *object;
    00024         void *shape;
    00025         void *motion;
    00026
    00027         bool loaded;
    00028         float mass;
    00029         USGE_Float3 position;
    00030         USGE_Float3 rotation;
    00031         USGE_Float3 linearVelocity;
    00032         USGE_Float3 angularVelocity;
    00033
    00034     /***************
    00035     * Les méthodes *
    00036     ***************/
    00037     public :
    00038         // Constructeur par défaut
    00039         PhysicState();
    00040         // Destructeur par défaut
    00041         ~PhysicState();
    00042
    00044         // Les formes possibles //
    00046         // Chargement de l'état physique selon un modèle parallèlépipèdique
    00047         bool loadBox(USGE_Float3 dim);
    00048         // Chargement de l'état physique selon un modèle sphérique
    00049         bool loadSphere(float radius);
    00050         // Chargement de l'état physique selon un modèle cônique
    00051         bool loadCone(float radius, float height);
    00052         // Chargement de l'état physique selon un modèle de capsule
    00053         bool loadCapsule(float radius, float height);
    00054         // Chargement de l'état physique selon un modèle cylindrique
    00055         //bool loadCylinder(USGE_Float3 ???);
    00056
    00057         // Remise à zéro de l'état de l'objet
    00058         void unload();
    00059         void unload(bool resetState);
    00060         // Permet de savoir si l'objet est chargé (valide pour une utilisation)
    00061         bool isLoaded();
    00062
    00063         // Sauvegarde de l'état physique actuel.
    00064         void saveState();
    00065         void saveState(bool unload);
    00066
    00068         // Affectations : à faire avant le "load" //
    00070         // Définition de la position initiale (x, y, z)
    00071         void setPosition(USGE_Float3 position);
    00072         void setPosition(float x, float y, float z);
    00073         // Définition de la rotation d'Euler initiale selon x, y et z
    00074         void setRotation(USGE_Float3 rotation);
    00075         void setRotation(float x, float y, float z);
    00076         // Définition de la masse initiale
    00077         void setMass(float mass);
    00078         // Définition de la vitesse initial (linéaire et angulaire)
    00079         void setVelocity(USGE_Float3 linear, USGE_Float3 angular);
    00080
    00082         // Accesseurs //
    00084         // Récupération de la position (x, y, z)
    00085         void getPosition(USGE_Float3 *position);
    00086         void getPosition(float *x, float *y, float *z);
    00087         // Récupération de la rotation d'Euler selon x, y et z
    00088         void getRotation(USGE_Float3 *rotation);
    00089         void getRotation(float *x, float *y, float *z);
    00090         // Retourne le pointeur vers le "object" de l'objet physique
    00091         void *getObject();
    00092
    00093     protected :
    00094     private :
    00095         // Chargement de l'état physique du modèle.
    00096         bool load();
    00097 };
    00098
    00099 }        // Fin "namespace USpeedGameEngine"
    00100
    00101 #endif