Sirikata
libspace/plugins/physics/BulletCharacterObject.hpp
Go to the documentation of this file.
00001 // Copyright (c) 2011 Sirikata Authors. All rights reserved.
00002 // Use of this source code is governed by a BSD-style license that can
00003 // be found in the LICENSE file.
00004 
00005 #ifndef _SIRIKATA_BULLET_PHYSICS_CHARACTER_OBJECT_HPP_
00006 #define _SIRIKATA_BULLET_PHYSICS_CHARACTER_OBJECT_HPP_
00007 
00008 #include "BulletObject.hpp"
00009 
00010 class btPairCachingGhostObject;
00011 
00012 namespace Sirikata {
00013 
00014 class BulletCharacterController;
00015 
00021 class BulletCharacterObject : public BulletObject {
00022 public:
00023     BulletCharacterObject(BulletPhysicsService* parent, const UUID& uuid, bulletObjBBox bb = BULLET_OBJECT_BOUNDS_SPHERE);
00024     virtual ~BulletCharacterObject();
00025 
00026     virtual bool fixed();
00027     virtual bulletObjTreatment treatment();
00028     virtual bulletObjBBox bbox();
00029     virtual float32 mass();
00030 
00031     virtual void load(Mesh::MeshdataPtr mesh);
00032     virtual void unload();
00033     virtual void preTick(const Time& t);
00034     virtual void postTick(const Time& t);
00035     virtual void deactivationTick(const Time& t);
00036 
00037 
00038     virtual bool applyRequestedLocation(const TimedMotionVector3f& loc, uint64 epoch);
00039     virtual bool applyRequestedOrientation(const TimedMotionQuaternion& orient, uint64 epoch);
00040     virtual void applyForcedLocation(const TimedMotionVector3f& loc, uint64 epoch);
00041     virtual void applyForcedOrientation(const TimedMotionQuaternion& orient, uint64 epoch);
00042 
00043 private:
00044     UUID mID;
00045 
00046     bulletObjBBox mBBox;
00047 
00048     btPairCachingGhostObject* mGhostObject;
00049     BulletCharacterController* mCharacter;
00050     btCollisionShape* mCollisionShape;
00051 }; // class BulletCharacterObject
00052 
00053 } // namespace Sirikata
00054 
00055 #endif //_SIRIKATA_BULLET_PHYSICS_CHARACTER_OBJECT_HPP_