1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-23 14:23:53 +00:00

Merge branch 'master' of git://github.com/zinnschlag/OpenEngine.git

This commit is contained in:
gugus 2011-03-09 18:17:13 +01:00
commit 122e526cba
5 changed files with 31 additions and 31 deletions

View file

@ -3,7 +3,7 @@
#include <btBulletDynamicsCommon.h>
#include <btBulletCollisionCommon.h>
#include <components\nifbullet\bullet_nif_loader.hpp>
#include <components/nifbullet/bullet_nif_loader.hpp>
//#include <apps\openmw\mwworld\world.hpp>
namespace OEngine {
@ -42,4 +42,4 @@ namespace Physic
}
}
}}
}}

View file

@ -1,7 +1,7 @@
#ifndef OENGINE_CMOTIONSTATE_H
#define OENGINE_CMOTIONSTATE_H
#include <BulletDynamics\Dynamics\btRigidBody.h>
#include <BulletDynamics/Dynamics/btRigidBody.h>
#include <string>
namespace OEngine {
@ -49,4 +49,4 @@ namespace Physic
};
}}
#endif
#endif

View file

@ -4,8 +4,8 @@ Copyright (c) 2003-2008 Erwin Coumans http://bulletphysics.com
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
@ -17,9 +17,9 @@ subject to the following restrictions:
#define KINEMATIC_CHARACTER_CONTROLLER_H
#include "LinearMath/btVector3.h"
#include "LinearMath\btQuickprof.h"
#include "LinearMath/btQuickprof.h"
#include "BulletDynamics\Character\btCharacterControllerInterface.h"
#include "BulletDynamics/Character/btCharacterControllerInterface.h"
#include "BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h"
@ -46,7 +46,7 @@ public:
private:
btPairCachingGhostObject* externalGhostObject; // use this for querying collisions for sliding and move
btPairCachingGhostObject* internalGhostObject; // and this for recoreving from penetrations
btScalar m_verticalVelocity;
btScalar m_verticalOffset;
btScalar m_fallSpeed;
@ -100,15 +100,15 @@ public:
btScalar recoveringFactor = btScalar( 0.2 ) );
~btKinematicCharacterController ();
///btActionInterface interface
virtual void updateAction( btCollisionWorld* collisionWorld, btScalar deltaTime )
{
preStep( collisionWorld );
playerStep( collisionWorld, deltaTime );
playerStep( collisionWorld, deltaTime );
}
///btActionInterface interface
void debugDraw( btIDebugDraw* debugDrawer );

View file

@ -1,7 +1,7 @@
#include "physic.hpp"
#include <btBulletDynamicsCommon.h>
#include <btBulletCollisionCommon.h>
#include <components\nifbullet\bullet_nif_loader.hpp>
#include <components/nifbullet/bullet_nif_loader.hpp>
//#include <apps\openmw\mwworld\world.hpp>
#include "CMotionState.h"
#include "OgreRoot.h"
@ -18,7 +18,7 @@ namespace Physic
enum collisiontypes {
COL_NOTHING = 0, //<Collide with nothing
COL_WORLD = BIT(0), //<Collide with world objects
COL_ACTOR_INTERNAL = BIT(1), //<Collide internal capsule
COL_ACTOR_INTERNAL = BIT(1), //<Collide internal capsule
COL_ACTOR_EXTERNAL = BIT(2) //<collide with external capsule
};
@ -57,7 +57,7 @@ namespace Physic
internalGhostObject->setCollisionFlags( btCollisionObject::CF_CHARACTER_OBJECT );
mCharacter = new btKinematicCharacterController( externalGhostObject,internalGhostObject,btScalar( 0.4 ),1,0 );
mCharacter->setUpAxis(btKinematicCharacterController::UpAxis::Z_AXIS);
mCharacter->setUpAxis(btKinematicCharacterController::Z_AXIS);
}
PhysicActor::~PhysicActor()
@ -69,18 +69,18 @@ namespace Physic
delete externalCollisionShape;
}
void PhysicActor::setWalkDirection(btVector3& mvt)
void PhysicActor::setWalkDirection(const btVector3& mvt)
{
mCharacter->setWalkDirection( mvt );
}
void PhysicActor::Rotate(btQuaternion& quat)
void PhysicActor::Rotate(const btQuaternion& quat)
{
externalGhostObject->getWorldTransform().setRotation( externalGhostObject->getWorldTransform().getRotation() * quat );
internalGhostObject->getWorldTransform().setRotation( internalGhostObject->getWorldTransform().getRotation() * quat );
}
void PhysicActor::setRotation(btQuaternion& quat)
void PhysicActor::setRotation(const btQuaternion& quat)
{
externalGhostObject->getWorldTransform().setRotation( quat );
internalGhostObject->getWorldTransform().setRotation( quat );
@ -96,7 +96,7 @@ namespace Physic
return internalGhostObject->getWorldTransform().getRotation();
}
void PhysicActor::setPosition(btVector3& pos)
void PhysicActor::setPosition(const btVector3& pos)
{
internalGhostObject->getWorldTransform().setOrigin(pos);
externalGhostObject->getWorldTransform().setOrigin(pos);
@ -179,7 +179,7 @@ namespace Physic
delete solver;
delete collisionConfiguration;
delete dispatcher;
delete broadphase;
delete broadphase;
delete ShapeLoader;
}
@ -239,7 +239,7 @@ namespace Physic
RigidBodyMap[name] = NULL;
}
}
RigidBody* PhysicEngine::getRigidBody(std::string name)
{
RigidBody* body = RigidBodyMap[name];
@ -298,14 +298,14 @@ namespace Physic
{
if(resultCallback.m_collisionFilterGroup == COL_WORLD)
{
name = static_cast<RigidBody*>(resultCallback.m_collisionObject)->mName;
name = dynamic_cast<RigidBody&>(*resultCallback.m_collisionObject).mName;
}
if(resultCallback.m_collisionFilterGroup == COL_ACTOR_EXTERNAL || resultCallback.m_collisionFilterGroup == COL_ACTOR_INTERNAL)
{
name = static_cast<PairCachingGhostObject*>(resultCallback.m_collisionObject)->mName;
name = dynamic_cast<PairCachingGhostObject&>(*resultCallback.m_collisionObject).mName;
}
d = resultCallback.m_closestHitFraction;
}
return std::pair<std::string,float>(name,d);
}
}};
}};

View file

@ -1,7 +1,7 @@
#ifndef OENGINE_BULLET_PHYSIC_H
#define OENGINE_BULLET_PHYSIC_H
#include <BulletDynamics\Dynamics\btRigidBody.h>
#include <BulletDynamics/Dynamics/btRigidBody.h>
#include "BulletCollision/CollisionDispatch/btGhostObject.h"
#include <string>
#include <list>
@ -35,7 +35,7 @@ namespace Physic
struct PhysicEvent;
/**
*This is just used to be able to name objects.
*This is just used to be able to name objects.
*/
class PairCachingGhostObject : public btPairCachingGhostObject
{
@ -62,17 +62,17 @@ namespace Physic
*I think it's also needed to take time into account. A typical call should look like this:
*setWalkDirection( mvt * orientation * dt)
*/
void setWalkDirection(btVector3& mvt);
void setWalkDirection(const btVector3& mvt);
void Rotate(btQuaternion& quat);
void Rotate(const btQuaternion& quat);
void setRotation(btQuaternion& quat);
void setRotation(const btQuaternion& quat);
btVector3 getPosition(void);
btQuaternion getRotation(void);
void setPosition(btVector3& pos);
void setPosition(const btVector3& pos);
btKinematicCharacterController* mCharacter;
@ -208,4 +208,4 @@ namespace Physic
}}
#endif
#endif