Sirikata
|
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_