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

RigidBody.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_RIGIDBODY_H__
00018 #define __SIM_RIGIDBODY_H__
00019 
00020 #include "nommgr.h"
00021 #include <ode/ode.h>
00022 #include "mmgr.h"
00023 
00024 #include "MotionController.h"
00031 class Island;
00032 class RigidBodyCollider;
00033 class Surface;
00034 
00035 class RigidBody : public MotionController
00036 {
00037     public:
00038         RigidBody          ();
00039         virtual ~RigidBody ();
00040 
00041     public:
00042         dBodyID& getBody ();
00043         
00044         virtual Island* getIsland ();
00045 
00046         RigidBodyCollider* getRigidBodyCollider ();
00047         
00048         Vector3 getAppliedForce  ();
00049         Vector3 getAppliedTorque ();
00050 
00051         void setBody   (dBodyID& body);
00052         virtual void setIsland (Island* island);
00053 
00054         void setRigidBodyCollider (RigidBodyCollider* rigidBodyCollider);
00055         
00056         void setAppliedForce  (const Vector3& force);
00057         void setAppliedTorque (const Vector3& torque);
00058         
00059         void setRollingMu (const Real rollingMu);
00060         
00061         virtual void setLocalPosition            (const Vector3&  localPosition);
00062         virtual void setLocalRotation            (const Matrix33& localRotation);
00063         virtual void setLocalVelocity            (const Vector3&  localVelocity);
00064         virtual void setLocalAngularVelocity     (const Vector3&  localAngularVelocity);
00065         virtual void setLocalAcceleration        (const Vector3&  localAcceleration);
00066         virtual void setLocalAngularAcceleration (const Vector3&  localAngularAcceleration);
00067 
00068         virtual void setWorldPosition            (const Vector3&  worldPosition);
00069         virtual void setWorldRotation            (const Matrix33& worldRotation);
00070         virtual void setWorldVelocity            (const Vector3&  worldVelocity);
00071         virtual void setWorldAngularVelocity     (const Vector3&  worldAngularVelocity);
00072         virtual void setWorldAcceleration        (const Vector3&  worldAcceleration);
00073         virtual void setWorldAngularAcceleration (const Vector3&  worldAngularAcceleration);
00074 
00075     public:
00076         void addForce  (const Vector3& force);
00077         void addTorque (const Vector3& torque);
00078         
00079     public:
00080         virtual void update (Real deltaTime);
00081         
00082     protected:
00083         Island* island;
00084 
00085         dBodyID body;
00086         Real    rollingMu;
00087 
00088         RigidBodyCollider* rigidBodyCollider;
00089 };
00090 
00091 #endif

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