From 57f13f3a7cfc507a90942de886f289937cdd0354 Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Wed, 5 Nov 2014 17:05:26 -0800 Subject: [PATCH] entities lib now depends on bullet (if exists) --- libraries/entities/CMakeLists.txt | 1 + libraries/entities/src/EntityItem.h | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/libraries/entities/CMakeLists.txt b/libraries/entities/CMakeLists.txt index e48baa7615..5e3ab70f76 100644 --- a/libraries/entities/CMakeLists.txt +++ b/libraries/entities/CMakeLists.txt @@ -4,6 +4,7 @@ set(TARGET_NAME entities) setup_hifi_library(Network Script) include_glm() +include_bullet() link_hifi_libraries(shared octree fbx networking animation physics) diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index dba1a04bf0..f1d4e42b81 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -34,6 +34,10 @@ class EntityTreeElementExtraEncodeData; #define DONT_ALLOW_INSTANTIATION virtual void pureVirtualFunctionPlaceHolder() = 0; #define ALLOW_INSTANTIATION virtual void pureVirtualFunctionPlaceHolder() { }; +#ifdef USE_BULLET_PHYSICS +class EntityMotionState; +#endif // USE_BULLET_PHYSICS + /// EntityItem class this is the base class for all entity types. It handles the basic properties and functionality available /// to all other entity types. In particular: postion, size, rotation, age, lifetime, velocity, gravity. You can not instantiate @@ -254,6 +258,11 @@ public: void applyHardCollision(const CollisionInfo& collisionInfo); virtual const Shape& getCollisionShapeInMeters() const { return _collisionShape; } virtual bool contains(const glm::vec3& point) const { return getAABox().contains(point); } + +#ifdef USE_BULLET_PHYSICS + //EntityMotionState* createMotionState() = 0; + EntityMotionState* createMotionState() { return NULL; } +#endif // USE_BULLET_PHYSICS protected: virtual void initFromEntityItemID(const EntityItemID& entityItemID); // maybe useful to allow subclasses to init