Page principale | Liste des namespaces | Hiérarchie des classes | Liste par ordre alphabétique | Liste des composants | Liste des fichiers | Composants | Déclarations

MotionController.h

Aller à la documentation de ce fichier.
00001 /*=========================================================================
00002 UberSim Source Code Release
00003 -------------------------------------------------------------------------
00004 Copyright (C) 2002 Manuela Veloso, Brett Browning, Mike Bowling,
00005                    James Bruce; {mmv, brettb, mhb, jbruce}@cs.cmu.edu
00006                    Erick Tryzelaar {erickt}@andrew.cmu.edu
00007 School of Computer Science, Carnegie Mellon University
00008 -------------------------------------------------------------------------
00009 This software is distributed under the GNU General Public License,
00010 version 2.  If you do not have a copy of this licence, visit
00011 www.gnu.org, or write: Free Software Foundation, 59 Temple Place,
00012 Suite 330 Boston, MA 02111-1307 USA.  This program is distributed
00013 in the hope that it will be useful, but WITHOUT ANY WARRANTY,
00014 including MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00015 -------------------------------------------------------------------------*/
00016 
00017 #ifndef __SIM_MOTION_CONTROLLER_H__
00018 #define __SIM_MOTION_CONTROLLER_H__
00019 
00020 #include "Controller.h"
00021 #include "Matrix33.h"
00022 #include "Vector3.h"
00028 class Spatial;
00029 
00030 class MotionController : Controller
00031 {
00032     public: 
00033         MotionController ();
00034         virtual ~MotionController ();
00035 
00036     public:
00037         Spatial* getModel ();
00038 
00039         Vector3&  getLocalPosition            ();
00040         Matrix33& getLocalRotation            ();
00041         Vector3&  getLocalVelocity            ();
00042         Vector3&  getLocalAngularVelocity     ();
00043         Vector3&  getLocalAcceleration        ();
00044         Vector3&  getLocalAngularAcceleration ();
00045 
00046         Vector3&  getWorldPosition            ();
00047         Matrix33& getWorldRotation            ();
00048         Vector3&  getWorldVelocity            ();
00049         Vector3&  getWorldAngularVelocity     ();
00050         Vector3&  getWorldAcceleration        ();
00051         Vector3&  getWorldAngularAcceleration ();
00052 
00053     public:
00054         virtual void setModel (Spatial* model);
00055 
00056         virtual void setLocalPosition            (const Vector3&  localPosition);
00057         virtual void setLocalRotation            (const Matrix33& localRotation);
00058         virtual void setLocalVelocity            (const Vector3&  localVelocity);
00059         virtual void setLocalAngularVelocity     (const Vector3&  localAngularVelocity);
00060         virtual void setLocalAcceleration        (const Vector3&  localAcceleration);
00061         virtual void setLocalAngularAcceleration (const Vector3&  localAngularAcceleration);
00062 
00063         virtual void setWorldPosition            (const Vector3&  worldPosition);
00064         virtual void setWorldRotation            (const Matrix33& worldRotation);
00065         virtual void setWorldVelocity            (const Vector3&  worldVelocity);
00066         virtual void setWorldAngularVelocity     (const Vector3&  worldAngularVelocity);
00067         virtual void setWorldAcceleration        (const Vector3&  worldAcceleration);
00068         virtual void setWorldAngularAcceleration (const Vector3&  worldAngularAcceleration);
00069 
00070     public:
00071         virtual void update (Real deltaTime);
00072 
00073     protected:
00074         Spatial* model;
00075 
00076         Vector3  localVelocity;
00077         Vector3  localAngularVelocity;
00078         Vector3  localAcceleration;
00079         Vector3  localAngularAcceleration;
00080 
00081         Vector3  worldVelocity;
00082         Vector3  worldAngularVelocity;
00083         Vector3  worldAcceleration;
00084         Vector3  worldAngularAcceleration;
00085 };
00086 
00087 #endif

Généré le Mon Mar 1 01:29:41 2004 par doxygen 1.3.3