Changeset 2178
- Timestamp:
- Nov 11, 2008, 10:30:49 PM (16 years ago)
- Location:
- code/branches/physics
- Files:
-
- 2 added
- 4 deleted
- 15 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
code/branches/physics/src/orxonox/OrxonoxPrereqs.h
r2151 r2178 203 203 } 204 204 205 // Bullet Physics Engine 206 207 class btRigidBody; 208 class btCollisionObject; 209 class btGhostObject; 210 class btCollisionShape; 211 class btSphereShape; 212 213 205 214 struct lua_State; 206 215 -
code/branches/physics/src/orxonox/OrxonoxStableHeaders.h
r2087 r2178 48 48 #include <CEGUI.h> 49 49 #include "ois/OIS.h" 50 //#include "btBulletCollisionCommon.h" 51 //#include "btBulletDynamicsCommon.h" 50 52 #include <boost/thread/recursive_mutex.hpp> 51 53 //#include <boost/thread/mutex.hpp> … … 97 99 #include "network/Synchronisable.h" 98 100 99 #include "Settings.h"101 //#include "Settings.h" 100 102 101 103 //#endif /* ifdef NDEBUG */ -
code/branches/physics/src/orxonox/objects/HelloBullet.cc
r2177 r2178 34 34 #include <OgreEntity.h> 35 35 36 // #include "ogreode/OgreOde_Core.h"37 // #include "ogreode/OgreOdeGeometry.h"38 36 #include "util/Convert.h" 39 37 #include "core/CoreIncludes.h" … … 52 50 : BaseObject(creator) 53 51 { 54 55 56 52 RegisterObject(HelloBullet); 53 COUT(0) << "HelloBullet loaded" << std::endl ; 54 int maxProxies = 1024; 57 55 58 56 … … 68 66 // dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration); 69 67 70 dynamicsWorld = creator->getScene()->getPhysicalWorld(); 71 dynamicsWorld-> setGravity(btVector3(0,-10,0)); 68 dynamicsWorld = getCreator()->getScene()->getPhysicalWorld(); 72 69 73 70 … … 94 91 95 92 96 97 //load floor mash 93 //load floor mash 98 94 Ogre::SceneManager* sceneMgr = creator->getScene()->getSceneManager(); 99 95 … … 119 115 120 116 121 // crate117 // crate 122 118 123 119 entity_ = sceneMgr->createEntity("crate","crate.mesh"); … … 127 123 entity_->setNormaliseNormals(true); 128 124 entity_->setCastShadows(true); 129 sceneNode_ -> setPosition(Vector3(0,100,0)); 130 131 132 133 134 125 sceneNode_ -> setPosition(Vector3(0,100,0)); 135 126 } 136 127 … … 181 172 void HelloBullet::tick(float dt) 182 173 { 183 dynamicsWorld->stepSimulation(dt,10); 184 btTransform trans; 185 fallRigidBody->getMotionState()->getWorldTransform(trans); 186 // COUT(0) << "sphere height: " << trans.getOrigin().getY() << std::endl; 187 sceneNode_ -> setPosition(Vector3(0,trans.getOrigin().getY(),0)); 188 // msleep(20); 189 190 174 dynamicsWorld->stepSimulation(dt,10); 175 btTransform trans; 176 fallRigidBody->getMotionState()->getWorldTransform(trans); 177 // COUT(0) << "sphere height: " << trans.getOrigin().getY() << std::endl; 178 sceneNode_ -> setPosition(Vector3(0,trans.getOrigin().getY(),0)); 179 // msleep(20); 191 180 } 192 193 181 } -
code/branches/physics/src/orxonox/objects/HelloBullet.h
r2124 r2178 33 33 #include "core/BaseObject.h" 34 34 35 #include "ogrebullet/Dynamics/OgreBulletDynamics.h" 35 #include "btBulletCollisionCommon.h" 36 #include "btBulletDynamicsCommon.h" 36 37 37 38 #include "Tickable.h" -
code/branches/physics/src/orxonox/objects/Scene.cc
r2150 r2178 62 62 this->rootSceneNode_ = 0; 63 63 } 64 // create bullet world; bullet solver etc. 64 } 65 else 66 { 67 // create a dummy SceneManager of our own since we don't have Ogre::Root. 68 this->sceneManager_ = new Ogre::DefaultSceneManager(""); 69 this->rootSceneNode_ = this->sceneManager_->getRootSceneNode(); 70 } 71 72 ///////////// 73 // Physics // 74 ///////////// 75 76 // create bullet world; bullet solver etc. 65 77 66 78 // int maxProxies = 1024; … … 70 82 bt32BitAxisSweep3* broadphase = new bt32BitAxisSweep3(worldAabbMin,worldAabbMax); 71 83 72 84 this -> collisionConfiguration_ = new btDefaultCollisionConfiguration(); 73 85 this -> dispatcher_ = new btCollisionDispatcher(collisionConfiguration_); 74 86 … … 77 89 this -> dynamicsWorld_ = new btDiscreteDynamicsWorld(dispatcher_,broadphase,solver_,collisionConfiguration_); 78 90 79 // dynamicsWorld->setGravity(btVector3(0,-10,0));91 dynamicsWorld_->setGravity(btVector3(0,-10,0)); 80 92 81 }82 else83 {84 // create a dummy SceneManager of our own since we don't have Ogre::Root.85 this->sceneManager_ = new Ogre::DefaultSceneManager("");86 this->rootSceneNode_ = this->sceneManager_->getRootSceneNode();87 }88 93 89 94 // test test test … … 108 113 if (Ogre::Root::getSingletonPtr()) 109 114 { 110 // this->sceneManager_->destroySceneNode(this->rootSceneNode_->getName()); // TODO: remove getName() for newer versions of Ogre111 115 Ogre::Root::getSingleton().destroySceneManager(this->sceneManager_); 112 116 } -
code/branches/physics/src/orxonox/objects/worldentities/ControllableEntity.cc
r2087 r2178 44 44 CreateFactory(ControllableEntity); 45 45 46 ControllableEntity::ControllableEntity(BaseObject* creator) : WorldEntity(creator)46 ControllableEntity::ControllableEntity(BaseObject* creator) : MovableEntity(creator) 47 47 { 48 48 RegisterObject(ControllableEntity); -
code/branches/physics/src/orxonox/objects/worldentities/ControllableEntity.h
r2087 r2178 32 32 #include "OrxonoxPrereqs.h" 33 33 34 #include " WorldEntity.h"34 #include "MovableEntity.h" 35 35 #include "objects/Tickable.h" 36 36 37 37 namespace orxonox 38 38 { 39 class _OrxonoxExport ControllableEntity : public WorldEntity, public Tickable39 class _OrxonoxExport ControllableEntity : public MovableEntity, public Tickable 40 40 { 41 41 public: -
code/branches/physics/src/orxonox/objects/worldentities/MovableEntity.cc
r2087 r2178 32 32 #include "core/CoreIncludes.h" 33 33 #include "core/XMLPort.h" 34 #include "core/Executor.h"35 #include "tools/Timer.h"36 34 37 35 namespace orxonox 38 36 { 39 static const float MAX_RESYNCHRONIZE_TIME = 3.0f;40 41 CreateFactory(MovableEntity);42 43 37 MovableEntity::MovableEntity(BaseObject* creator) : WorldEntity(creator) 44 38 { 45 39 RegisterObject(MovableEntity); 46 47 this->velocity_ = Vector3::ZERO;48 this->acceleration_ = Vector3::ZERO;49 this->rotationAxis_ = Vector3::ZERO;50 this->rotationRate_ = 0;51 this->momentum_ = 0;52 53 this->overwrite_position_ = Vector3::ZERO;54 this->overwrite_orientation_ = Quaternion::IDENTITY;55 40 56 41 this->registerVariables(); … … 64 49 { 65 50 SUPER(MovableEntity, XMLPort, xmlelement, mode); 66 67 XMLPortParamTemplate(MovableEntity, "velocity", setVelocity, getVelocity, xmlelement, mode, const Vector3&);68 XMLPortParamTemplate(MovableEntity, "rotationaxis", setRotationAxis, getRotationAxis, xmlelement, mode, const Vector3&);69 XMLPortParamTemplate(MovableEntity, "rotationrate", setRotationRate, getRotationRate, xmlelement, mode, const Degree&);70 }71 72 void MovableEntity::tick(float dt)73 {74 if (this->isActive())75 {76 this->velocity_ += (dt * this->acceleration_);77 this->node_->translate(dt * this->velocity_);78 79 this->rotationRate_ += (dt * this->momentum_);80 this->node_->rotate(this->rotationAxis_, this->rotationRate_ * dt);81 }82 51 } 83 52 84 53 void MovableEntity::registerVariables() 85 54 { 86 REGISTERDATA(this->velocity_.x, network::direction::toclient);87 REGISTERDATA(this->velocity_.y, network::direction::toclient);88 REGISTERDATA(this->velocity_.z, network::direction::toclient);89 90 REGISTERDATA(this->rotationAxis_.x, network::direction::toclient);91 REGISTERDATA(this->rotationAxis_.y, network::direction::toclient);92 REGISTERDATA(this->rotationAxis_.z, network::direction::toclient);93 94 REGISTERDATA(this->rotationRate_, network::direction::toclient);95 96 REGISTERDATA(this->overwrite_position_, network::direction::toclient, new network::NetworkCallback<MovableEntity>(this, &MovableEntity::overwritePosition));97 REGISTERDATA(this->overwrite_orientation_, network::direction::toclient, new network::NetworkCallback<MovableEntity>(this, &MovableEntity::overwriteOrientation));98 }99 100 void MovableEntity::overwritePosition()101 {102 this->node_->setPosition(this->overwrite_position_);103 }104 105 void MovableEntity::overwriteOrientation()106 {107 this->node_->setOrientation(this->overwrite_orientation_);108 }109 110 void MovableEntity::clientConnected(unsigned int clientID)111 {112 new Timer<MovableEntity>(rnd() * MAX_RESYNCHRONIZE_TIME, false, this, createExecutor(createFunctor(&MovableEntity::resynchronize)), true);113 }114 115 void MovableEntity::clientDisconnected(unsigned int clientID)116 {117 }118 119 void MovableEntity::resynchronize()120 {121 this->overwrite_position_ = this->getPosition();122 this->overwrite_orientation_ = this->getOrientation();123 }124 125 void MovableEntity::setPosition(const Vector3& position)126 {127 this->node_->setPosition(position);128 this->overwrite_position_ = this->node_->getPosition();129 }130 131 void MovableEntity::translate(const Vector3& distance, Ogre::Node::TransformSpace relativeTo)132 {133 this->node_->translate(distance, relativeTo);134 this->overwrite_position_ = this->node_->getPosition();135 }136 137 void MovableEntity::setOrientation(const Quaternion& orientation)138 {139 this->node_->setOrientation(orientation);140 this->overwrite_orientation_ = this->node_->getOrientation();141 }142 143 void MovableEntity::rotate(const Quaternion& rotation, Ogre::Node::TransformSpace relativeTo)144 {145 this->node_->rotate(rotation, relativeTo);146 this->overwrite_orientation_ = this->node_->getOrientation();147 }148 149 void MovableEntity::yaw(const Degree& angle, Ogre::Node::TransformSpace relativeTo)150 {151 this->node_->yaw(angle, relativeTo);152 this->overwrite_orientation_ = this->node_->getOrientation();153 }154 155 void MovableEntity::pitch(const Degree& angle, Ogre::Node::TransformSpace relativeTo)156 {157 this->node_->pitch(angle, relativeTo);158 this->overwrite_orientation_ = this->node_->getOrientation();159 }160 161 void MovableEntity::roll(const Degree& angle, Ogre::Node::TransformSpace relativeTo)162 {163 this->node_->roll(angle, relativeTo);164 this->overwrite_orientation_ = this->node_->getOrientation();165 }166 167 void MovableEntity::lookAt(const Vector3& target, Ogre::Node::TransformSpace relativeTo, const Vector3& localDirectionVector)168 {169 this->node_->lookAt(target, relativeTo, localDirectionVector);170 this->overwrite_orientation_ = this->node_->getOrientation();171 }172 173 void MovableEntity::setDirection(const Vector3& direction, Ogre::Node::TransformSpace relativeTo, const Vector3& localDirectionVector)174 {175 this->node_->setDirection(direction, relativeTo, localDirectionVector);176 this->overwrite_orientation_ = this->node_->getOrientation();177 55 } 178 56 } -
code/branches/physics/src/orxonox/objects/worldentities/MovableEntity.h
r2087 r2178 38 38 namespace orxonox 39 39 { 40 class _OrxonoxExport MovableEntity : public WorldEntity , public Tickable, public network::ClientConnectionListener40 class _OrxonoxExport MovableEntity : public WorldEntity 41 41 { 42 42 public: … … 45 45 46 46 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 47 virtual void tick(float dt);48 47 void registerVariables(); 49 48 50 using WorldEntity::setPosition; 51 using WorldEntity::translate; 52 using WorldEntity::setOrientation; 53 using WorldEntity::rotate; 54 using WorldEntity::yaw; 55 using WorldEntity::pitch; 56 using WorldEntity::roll; 57 using WorldEntity::lookAt; 58 using WorldEntity::setDirection; 49 private: 59 50 60 void setPosition(const Vector3& position); 61 void translate(const Vector3& distance, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL); 62 void setOrientation(const Quaternion& orientation); 63 void rotate(const Quaternion& rotation, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL); 64 void yaw(const Degree& angle, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL); 65 void pitch(const Degree& angle, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL); 66 void roll(const Degree& angle, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL); 67 void lookAt(const Vector3& target, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z); 68 void setDirection(const Vector3& direction, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z); 51 //void attachPhysicalObject(WorldEntity* object); 69 52 70 inline void setVelocity(const Vector3& velocity) 71 { this->velocity_ = velocity; } 72 inline void setVelocity(float x, float y, float z) 73 { this->velocity_.x = x; this->velocity_.y = y; this->velocity_.z = z; } 74 inline const Vector3& getVelocity() const 75 { return this->velocity_; } 53 //// Bullet btMotionState related 54 //void setWorldTransform(const btTransform& worldTrans) 55 //{ 56 // this->node_->setPosition(worldTrans.getOrigin().x(), worldTrans.getOrigin().y(), worldTrans.getOrigin().z()); 57 // this->node_->setOrientation(worldTrans.getRotation().w(), worldTrans.getRotation().x(), worldTrans.getRotation().y(), worldTrans.getRotation().z()); 58 // //this->velocity_.x = this->physicalBody_-> 59 //} 76 60 77 inline void setAcceleration(const Vector3& acceleration) 78 { this->acceleration_ = acceleration; } 79 inline void setAcceleration(float x, float y, float z) 80 { this->acceleration_.x = x; this->acceleration_.y = y; this->acceleration_.z = z; } 81 inline const Vector3& getAcceleration() const 82 { return this->acceleration_; } 83 84 inline void setRotationAxis(const Vector3& axis) 85 { this->rotationAxis_ = axis; this->rotationAxis_.normalise(); } 86 inline void setRotationAxis(float x, float y, float z) 87 { this->rotationAxis_.x = x; this->rotationAxis_.y = y; this->rotationAxis_.z = z; rotationAxis_.normalise(); } 88 inline const Vector3& getRotationAxis() const 89 { return this->rotationAxis_; } 90 91 inline void setRotationRate(const Degree& angle) 92 { this->rotationRate_ = angle; } 93 inline void setRotationRate(const Radian& angle) 94 { this->rotationRate_ = angle; } 95 inline const Degree& getRotationRate() const 96 { return this->rotationRate_; } 97 98 inline void setMomentum(const Degree& angle) 99 { this->momentum_ = angle; } 100 inline void setMomentum(const Radian& angle) 101 { this->momentum_ = angle; } 102 inline const Degree& getMomentum() const 103 { return this->momentum_; } 104 105 private: 106 void clientConnected(unsigned int clientID); 107 void clientDisconnected(unsigned int clientID); 108 void resynchronize(); 109 110 void overwritePosition(); 111 void overwriteOrientation(); 112 113 Vector3 velocity_; 114 Vector3 acceleration_; 115 Vector3 rotationAxis_; 116 Degree rotationRate_; 117 Degree momentum_; 118 119 Vector3 overwrite_position_; 120 Quaternion overwrite_orientation_; 61 //// Bullet btMotionState related 62 //void getWorldTransform(btTransform& worldTrans) const 63 //{ 64 // worldTrans.setOrigin(btVector3(node_->getPosition().x, node_->getPosition().y, node_->getPosition().z)); 65 // worldTrans.setRotation(btQuaternion(node_->getOrientation().w, node_->getOrientation().x, node_->getOrientation().y, node_->getOrientation().z)); 66 //} 121 67 }; 122 68 } -
code/branches/physics/src/orxonox/objects/worldentities/PositionableEntity.cc
r2151 r2178 28 28 29 29 #include "OrxonoxStableHeaders.h" 30 #include " StaticEntity.h"30 #include "PositionableEntity.h" 31 31 #include "core/CoreIncludes.h" 32 32 33 33 namespace orxonox 34 34 { 35 CreateFactory( StaticEntity);35 CreateFactory(PositionableEntity); 36 36 37 StaticEntity::StaticEntity(BaseObject* creator) : WorldEntity(creator)37 PositionableEntity::PositionableEntity(BaseObject* creator) : MovableEntity(creator) 38 38 { 39 RegisterObject( StaticEntity);39 RegisterObject(PositionableEntity); 40 40 41 41 this->registerVariables(); 42 42 } 43 43 44 StaticEntity::~StaticEntity()44 PositionableEntity::~PositionableEntity() 45 45 { 46 46 } 47 47 48 void StaticEntity::registerVariables()48 void PositionableEntity::registerVariables() 49 49 { 50 50 REGISTERDATA(this->getPosition().x, network::direction::toclient); … … 57 57 REGISTERDATA(this->getOrientation().z, network::direction::toclient); 58 58 } 59 60 //void PositionableEntity::attachPhysicalObject(WorldEntity* object) 61 //{ 62 //} 59 63 } -
code/branches/physics/src/orxonox/objects/worldentities/PositionableEntity.h
r2151 r2178 27 27 */ 28 28 29 #ifndef _ StaticEntity_H__30 #define _ StaticEntity_H__29 #ifndef _PositionableEntity_H__ 30 #define _PositionableEntity_H__ 31 31 32 32 #include "OrxonoxPrereqs.h" 33 #include " WorldEntity.h"33 #include "MovableEntity.h" 34 34 35 35 namespace orxonox 36 36 { 37 class _OrxonoxExport StaticEntity : public WorldEntity37 class _OrxonoxExport PositionableEntity : public MovableEntity 38 38 { 39 39 public: 40 StaticEntity(BaseObject* creator);41 virtual ~ StaticEntity();40 PositionableEntity(BaseObject* creator); 41 virtual ~PositionableEntity(); 42 42 43 43 void registerVariables(); … … 71 71 inline void setDirection(const Vector3& direction, Ogre::Node::TransformSpace relativeTo = Ogre::Node::TS_LOCAL, const Vector3& localDirectionVector = Vector3::NEGATIVE_UNIT_Z) 72 72 { this->node_->setDirection(direction, relativeTo, localDirectionVector); } 73 74 private: 75 //void attachPhysicalObject(WorldEntity* object); 73 76 }; 74 77 } 75 78 76 #endif /* _ StaticEntity_H__ */79 #endif /* _PositionableEntity_H__ */ -
code/branches/physics/src/orxonox/objects/worldentities/WorldEntity.cc
r2087 r2178 32 32 #include <cassert> 33 33 #include <OgreSceneManager.h> 34 #include "BulletCollision/CollisionShapes/btSphereShape.h" 34 35 35 36 #include "core/CoreIncludes.h" … … 63 64 this->node_->setOrientation(Quaternion::IDENTITY); 64 65 66 // Default behaviour does not include physics 67 this->bAddedToPhysicalWorld_ = false; 68 this->physicalBody_ = 0; 69 65 70 this->registerVariables(); 66 71 } … … 73 78 if (this->getScene()->getSceneManager()) 74 79 this->getScene()->getSceneManager()->destroySceneNode(this->node_->getName()); 80 81 // Physics is not guaranteed, so check first 82 if (this->physicalBody_) 83 { 84 if (this->bAddedToPhysicalWorld_) 85 this->getScene()->getPhysicalWorld()->removeRigidBody(this->physicalBody_); 86 if (this->physicalBody_->getCollisionShape()) 87 delete this->physicalBody_->getCollisionShape(); 88 delete this->physicalBody_; 89 } 75 90 } 76 91 } … … 89 104 XMLPortParamTemplate(WorldEntity, "scale3D", setScale3D, getScale3D, xmlelement, mode, const Vector3&); 90 105 XMLPortParam(WorldEntity, "scale", setScale, getScale, xmlelement, mode); 106 XMLPortParam(WorldEntity, "collisionRadius", setcollisionRadius, getcollisionRadius, xmlelement, mode); 91 107 92 108 XMLPortObject(WorldEntity, WorldEntity, "attached", attach, getAttachedObject, xmlelement, mode); … … 127 143 object->parent_ = this; 128 144 object->parentID_ = this->getObjectID(); 145 146 // Do the physical connection if required 147 this->attachPhysicalObject(object); 129 148 } 130 149 … … 150 169 return 0; 151 170 } 171 172 void WorldEntity::createPhysicalBody() 173 { 174 // Note: The motion state will be configured in a derived class. 175 btRigidBody::btRigidBodyConstructionInfo bodyConstructionInfo(0, this, 0, btVector3(0,0,0)); 176 this->physicalBody_ = new btRigidBody(bodyConstructionInfo); 177 this->getScene()->getPhysicalWorld()->addRigidBody(this->physicalBody_); 178 this->bAddedToPhysicalWorld_ = true; 179 } 180 181 void WorldEntity::setcollisionRadius(float radius) 182 { 183 if (!this->physicalBody_) 184 createPhysicalBody(); 185 186 // destroy old onw first 187 btCollisionShape* oldShape = this->physicalBody_->getCollisionShape(); 188 if (oldShape) 189 delete oldShape; 190 191 this->physicalBody_->setCollisionShape(new btSphereShape(btScalar(radius))); 192 } 193 194 float WorldEntity::getcollisionRadius() 195 { 196 if (this->physicalBody_) 197 { 198 btSphereShape* sphere = dynamic_cast<btSphereShape*>(this->physicalBody_->getCollisionShape()); 199 if (sphere) 200 return (float)sphere->getRadius(); 201 } 202 return 0.0f; 203 } 152 204 } -
code/branches/physics/src/orxonox/objects/worldentities/WorldEntity.h
r2087 r2178 33 33 34 34 #define OGRE_FORCE_ANGLE_TYPES 35 #include <OgreSceneNode.h> 35 36 36 #include <OgreSceneNode.h> 37 #include "LinearMath/btMotionState.h" 38 #include "BulletDynamics/Dynamics/btRigidBody.h" 37 39 38 40 #include "network/Synchronisable.h" … … 42 44 namespace orxonox 43 45 { 44 class _OrxonoxExport WorldEntity : public BaseObject, public network::Synchronisable 46 class _OrxonoxExport WorldEntity : public BaseObject, public network::Synchronisable, public btMotionState 45 47 { 46 48 public: … … 125 127 { this->node_->scale(scale, scale, scale); } 126 128 129 void setcollisionRadius(float radius); 130 float getcollisionRadius(); 131 132 bool hasPhysics() { return this->physicalBody_; } 133 bool isKinematic() { return this->physicalBody_ && this->physicalBody_->isKinematicObject(); } 134 bool isDynamic() { return this->physicalBody_ && !this->physicalBody_->isStaticOrKinematicObject(); } 135 127 136 void attach(WorldEntity* object); 128 137 void detach(WorldEntity* object); … … 139 148 140 149 protected: 150 //virtual btCollisionShape* getCollisionShape() = 0; 151 152 void createPhysicalBody(); 153 virtual void attachPhysicalObject(WorldEntity* object) { } 154 141 155 Ogre::SceneNode* node_; 156 bool bAddedToPhysicalWorld_; 157 btRigidBody* physicalBody_; 142 158 143 159 private: … … 155 171 { this->roll(angle); } 156 172 173 // Bullet btMotionState related 174 virtual void setWorldTransform(const btTransform& worldTrans) 175 { 176 } 177 178 // Bullet btMotionState related 179 virtual void getWorldTransform(btTransform& worldTrans) const 180 { 181 } 182 157 183 WorldEntity* parent_; 158 184 unsigned int parentID_; -
code/branches/physics/visual_studio/vc8/bullet_collision.vcproj
r2149 r2178 494 494 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 495 495 > 496 <File 497 RelativePath="..\..\src\bullet\btBulletCollisionCommon.h" 498 > 499 </File> 496 500 <Filter 497 501 Name="BroadphaseCollision" -
code/branches/physics/visual_studio/vc8/bullet_dynamics.vcproj
r2149 r2178 214 214 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 215 215 > 216 <File 217 RelativePath="..\..\src\bullet\btBulletDynamicsCommon.h" 218 > 219 </File> 216 220 <Filter 217 221 Name="ConstraintSolver" -
code/branches/physics/visual_studio/vc8/bullet_linearmath.vcproj
r2119 r2178 154 154 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 155 155 > 156 <File 157 RelativePath="..\..\src\bullet\LinearMath\btAabbUtil2.h" 158 > 159 </File> 160 <File 161 RelativePath="..\..\src\bullet\LinearMath\btAlignedAllocator.h" 162 > 163 </File> 164 <File 165 RelativePath="..\..\src\bullet\LinearMath\btAlignedObjectArray.h" 166 > 167 </File> 168 <File 169 RelativePath="..\..\src\bullet\LinearMath\btConvexHull.h" 170 > 171 </File> 172 <File 173 RelativePath="..\..\src\bullet\LinearMath\btDefaultMotionState.h" 174 > 175 </File> 176 <File 177 RelativePath="..\..\src\bullet\LinearMath\btGeometryUtil.h" 178 > 179 </File> 180 <File 181 RelativePath="..\..\src\bullet\LinearMath\btHashMap.h" 182 > 183 </File> 184 <File 185 RelativePath="..\..\src\bullet\LinearMath\btIDebugDraw.h" 186 > 187 </File> 188 <File 189 RelativePath="..\..\src\bullet\LinearMath\btList.h" 190 > 191 </File> 192 <File 193 RelativePath="..\..\src\bullet\LinearMath\btMatrix3x3.h" 194 > 195 </File> 196 <File 197 RelativePath="..\..\src\bullet\LinearMath\btMinMax.h" 198 > 199 </File> 200 <File 201 RelativePath="..\..\src\bullet\LinearMath\btMotionState.h" 202 > 203 </File> 204 <File 205 RelativePath="..\..\src\bullet\LinearMath\btPoint3.h" 206 > 207 </File> 208 <File 209 RelativePath="..\..\src\bullet\LinearMath\btPoolAllocator.h" 210 > 211 </File> 212 <File 213 RelativePath="..\..\src\bullet\LinearMath\btQuadWord.h" 214 > 215 </File> 216 <File 217 RelativePath="..\..\src\bullet\LinearMath\btQuaternion.h" 218 > 219 </File> 220 <File 221 RelativePath="..\..\src\bullet\LinearMath\btQuickprof.h" 222 > 223 </File> 224 <File 225 RelativePath="..\..\src\bullet\LinearMath\btRandom.h" 226 > 227 </File> 228 <File 229 RelativePath="..\..\src\bullet\LinearMath\btScalar.h" 230 > 231 </File> 232 <File 233 RelativePath="..\..\src\bullet\LinearMath\btStackAlloc.h" 234 > 235 </File> 236 <File 237 RelativePath="..\..\src\bullet\LinearMath\btTransform.h" 238 > 239 </File> 240 <File 241 RelativePath="..\..\src\bullet\LinearMath\btTransformUtil.h" 242 > 243 </File> 244 <File 245 RelativePath="..\..\src\bullet\LinearMath\btVector3.h" 246 > 247 </File> 156 248 </Filter> 157 249 </Files> -
code/branches/physics/visual_studio/vc8/orxonox.vcproj
r2151 r2178 301 301 </File> 302 302 <File 303 RelativePath="..\..\src\orxonox\objects\worldentities\DynamicEntity.cc"304 >305 </File>306 <File307 RelativePath="..\..\src\orxonox\objects\worldentities\KinematicEntity.cc"308 >309 </File>310 <File311 303 RelativePath="..\..\src\orxonox\objects\worldentities\Light.cc" 312 304 > 313 305 </File> 314 306 <File 307 RelativePath="..\..\src\orxonox\objects\worldentities\LinearEntity.cc" 308 > 309 </File> 310 <File 315 311 RelativePath="..\..\src\orxonox\objects\worldentities\Model.cc" 316 312 > … … 326 322 <File 327 323 RelativePath="..\..\src\orxonox\objects\worldentities\ParticleSpawner.cc" 324 > 325 </File> 326 <File 327 RelativePath="..\..\src\orxonox\objects\worldentities\PositionableEntity.cc" 328 328 > 329 329 </File> … … 419 419 RelativePath="..\..\src\orxonox\objects\weaponSystem\Munition.cc" 420 420 > 421 <FileConfiguration 422 Name="Debug|Win32" 423 ExcludedFromBuild="true" 424 > 425 <Tool 426 Name="VCCLCompilerTool" 427 /> 428 </FileConfiguration> 429 <FileConfiguration 430 Name="Release|Win32" 431 ExcludedFromBuild="true" 432 > 433 <Tool 434 Name="VCCLCompilerTool" 435 /> 436 </FileConfiguration> 421 437 </File> 422 438 <File 423 439 RelativePath="..\..\src\orxonox\objects\weaponSystem\Weapon.cc" 424 440 > 441 <FileConfiguration 442 Name="Debug|Win32" 443 ExcludedFromBuild="true" 444 > 445 <Tool 446 Name="VCCLCompilerTool" 447 /> 448 </FileConfiguration> 449 <FileConfiguration 450 Name="Release|Win32" 451 ExcludedFromBuild="true" 452 > 453 <Tool 454 Name="VCCLCompilerTool" 455 /> 456 </FileConfiguration> 425 457 </File> 426 458 <File … … 575 607 RelativePath="..\..\src\orxonox\objects\quest\AddQuest.cc" 576 608 > 609 <FileConfiguration 610 Name="Debug|Win32" 611 ExcludedFromBuild="true" 612 > 613 <Tool 614 Name="VCCLCompilerTool" 615 /> 616 </FileConfiguration> 617 <FileConfiguration 618 Name="Release|Win32" 619 ExcludedFromBuild="true" 620 > 621 <Tool 622 Name="VCCLCompilerTool" 623 /> 624 </FileConfiguration> 577 625 </File> 578 626 <File 579 627 RelativePath="..\..\src\orxonox\objects\quest\AddQuestHint.cc" 580 628 > 629 <FileConfiguration 630 Name="Debug|Win32" 631 ExcludedFromBuild="true" 632 > 633 <Tool 634 Name="VCCLCompilerTool" 635 /> 636 </FileConfiguration> 637 <FileConfiguration 638 Name="Release|Win32" 639 ExcludedFromBuild="true" 640 > 641 <Tool 642 Name="VCCLCompilerTool" 643 /> 644 </FileConfiguration> 581 645 </File> 582 646 <File 583 647 RelativePath="..\..\src\orxonox\objects\quest\AddReward.cc" 584 648 > 649 <FileConfiguration 650 Name="Debug|Win32" 651 ExcludedFromBuild="true" 652 > 653 <Tool 654 Name="VCCLCompilerTool" 655 /> 656 </FileConfiguration> 657 <FileConfiguration 658 Name="Release|Win32" 659 ExcludedFromBuild="true" 660 > 661 <Tool 662 Name="VCCLCompilerTool" 663 /> 664 </FileConfiguration> 585 665 </File> 586 666 <File 587 667 RelativePath="..\..\src\orxonox\objects\quest\ChangeQuestStatus.cc" 588 668 > 669 <FileConfiguration 670 Name="Debug|Win32" 671 ExcludedFromBuild="true" 672 > 673 <Tool 674 Name="VCCLCompilerTool" 675 /> 676 </FileConfiguration> 677 <FileConfiguration 678 Name="Release|Win32" 679 ExcludedFromBuild="true" 680 > 681 <Tool 682 Name="VCCLCompilerTool" 683 /> 684 </FileConfiguration> 589 685 </File> 590 686 <File 591 687 RelativePath="..\..\src\orxonox\objects\quest\CompleteQuest.cc" 592 688 > 689 <FileConfiguration 690 Name="Debug|Win32" 691 ExcludedFromBuild="true" 692 > 693 <Tool 694 Name="VCCLCompilerTool" 695 /> 696 </FileConfiguration> 697 <FileConfiguration 698 Name="Release|Win32" 699 ExcludedFromBuild="true" 700 > 701 <Tool 702 Name="VCCLCompilerTool" 703 /> 704 </FileConfiguration> 593 705 </File> 594 706 <File 595 707 RelativePath="..\..\src\orxonox\objects\quest\FailQuest.cc" 596 708 > 709 <FileConfiguration 710 Name="Debug|Win32" 711 ExcludedFromBuild="true" 712 > 713 <Tool 714 Name="VCCLCompilerTool" 715 /> 716 </FileConfiguration> 717 <FileConfiguration 718 Name="Release|Win32" 719 ExcludedFromBuild="true" 720 > 721 <Tool 722 Name="VCCLCompilerTool" 723 /> 724 </FileConfiguration> 597 725 </File> 598 726 <File 599 727 RelativePath="..\..\src\orxonox\objects\quest\GlobalQuest.cc" 600 728 > 729 <FileConfiguration 730 Name="Debug|Win32" 731 ExcludedFromBuild="true" 732 > 733 <Tool 734 Name="VCCLCompilerTool" 735 /> 736 </FileConfiguration> 737 <FileConfiguration 738 Name="Release|Win32" 739 ExcludedFromBuild="true" 740 > 741 <Tool 742 Name="VCCLCompilerTool" 743 /> 744 </FileConfiguration> 601 745 </File> 602 746 <File 603 747 RelativePath="..\..\src\orxonox\objects\quest\LocalQuest.cc" 604 748 > 749 <FileConfiguration 750 Name="Debug|Win32" 751 ExcludedFromBuild="true" 752 > 753 <Tool 754 Name="VCCLCompilerTool" 755 /> 756 </FileConfiguration> 757 <FileConfiguration 758 Name="Release|Win32" 759 ExcludedFromBuild="true" 760 > 761 <Tool 762 Name="VCCLCompilerTool" 763 /> 764 </FileConfiguration> 605 765 </File> 606 766 <File 607 767 RelativePath="..\..\src\orxonox\objects\quest\Quest.cc" 608 768 > 769 <FileConfiguration 770 Name="Debug|Win32" 771 ExcludedFromBuild="true" 772 > 773 <Tool 774 Name="VCCLCompilerTool" 775 /> 776 </FileConfiguration> 777 <FileConfiguration 778 Name="Release|Win32" 779 ExcludedFromBuild="true" 780 > 781 <Tool 782 Name="VCCLCompilerTool" 783 /> 784 </FileConfiguration> 609 785 </File> 610 786 <File 611 787 RelativePath="..\..\src\orxonox\objects\quest\QuestDescription.cc" 612 788 > 789 <FileConfiguration 790 Name="Debug|Win32" 791 ExcludedFromBuild="true" 792 > 793 <Tool 794 Name="VCCLCompilerTool" 795 /> 796 </FileConfiguration> 797 <FileConfiguration 798 Name="Release|Win32" 799 ExcludedFromBuild="true" 800 > 801 <Tool 802 Name="VCCLCompilerTool" 803 /> 804 </FileConfiguration> 613 805 </File> 614 806 <File 615 807 RelativePath="..\..\src\orxonox\objects\quest\QuestEffect.cc" 616 808 > 809 <FileConfiguration 810 Name="Debug|Win32" 811 ExcludedFromBuild="true" 812 > 813 <Tool 814 Name="VCCLCompilerTool" 815 /> 816 </FileConfiguration> 817 <FileConfiguration 818 Name="Release|Win32" 819 ExcludedFromBuild="true" 820 > 821 <Tool 822 Name="VCCLCompilerTool" 823 /> 824 </FileConfiguration> 617 825 </File> 618 826 <File 619 827 RelativePath="..\..\src\orxonox\objects\quest\QuestHint.cc" 620 828 > 829 <FileConfiguration 830 Name="Debug|Win32" 831 ExcludedFromBuild="true" 832 > 833 <Tool 834 Name="VCCLCompilerTool" 835 /> 836 </FileConfiguration> 837 <FileConfiguration 838 Name="Release|Win32" 839 ExcludedFromBuild="true" 840 > 841 <Tool 842 Name="VCCLCompilerTool" 843 /> 844 </FileConfiguration> 621 845 </File> 622 846 <File 623 847 RelativePath="..\..\src\orxonox\objects\quest\QuestItem.cc" 624 848 > 849 <FileConfiguration 850 Name="Debug|Win32" 851 ExcludedFromBuild="true" 852 > 853 <Tool 854 Name="VCCLCompilerTool" 855 /> 856 </FileConfiguration> 857 <FileConfiguration 858 Name="Release|Win32" 859 ExcludedFromBuild="true" 860 > 861 <Tool 862 Name="VCCLCompilerTool" 863 /> 864 </FileConfiguration> 625 865 </File> 626 866 <File 627 867 RelativePath="..\..\src\orxonox\objects\quest\QuestManager.cc" 628 868 > 869 <FileConfiguration 870 Name="Debug|Win32" 871 ExcludedFromBuild="true" 872 > 873 <Tool 874 Name="VCCLCompilerTool" 875 /> 876 </FileConfiguration> 877 <FileConfiguration 878 Name="Release|Win32" 879 ExcludedFromBuild="true" 880 > 881 <Tool 882 Name="VCCLCompilerTool" 883 /> 884 </FileConfiguration> 629 885 </File> 630 886 <File 631 887 RelativePath="..\..\src\orxonox\objects\quest\Rewardable.cc" 632 888 > 889 <FileConfiguration 890 Name="Debug|Win32" 891 ExcludedFromBuild="true" 892 > 893 <Tool 894 Name="VCCLCompilerTool" 895 /> 896 </FileConfiguration> 897 <FileConfiguration 898 Name="Release|Win32" 899 ExcludedFromBuild="true" 900 > 901 <Tool 902 Name="VCCLCompilerTool" 903 /> 904 </FileConfiguration> 633 905 </File> 634 906 </Filter> … … 941 1213 </File> 942 1214 <File 943 RelativePath="..\..\src\orxonox\objects\worldentities\DynamicEntity.h"944 >945 </File>946 <File947 RelativePath="..\..\src\orxonox\objects\worldentities\KinematicEntity.h"948 >949 </File>950 <File951 1215 RelativePath="..\..\src\orxonox\objects\worldentities\Light.h" 952 1216 > 953 1217 </File> 954 1218 <File 1219 RelativePath="..\..\src\orxonox\objects\worldentities\LinearEntity.h" 1220 > 1221 </File> 1222 <File 955 1223 RelativePath="..\..\src\orxonox\objects\worldentities\Model.h" 956 1224 > … … 966 1234 <File 967 1235 RelativePath="..\..\src\orxonox\objects\worldentities\ParticleSpawner.h" 1236 > 1237 </File> 1238 <File 1239 RelativePath="..\..\src\orxonox\objects\worldentities\PositionableEntity.h" 968 1240 > 969 1241 </File>
Note: See TracChangeset
for help on using the changeset viewer.