Replace dynamic_cast with static_cast

This commit is contained in:
Colin 2015-08-24 13:36:30 -06:00
parent 4030126f9f
commit 1468f8f13c
16 changed files with 30 additions and 26 deletions

4
.gitignore vendored
View File

@ -21,3 +21,7 @@
Icon? Icon?
ehthumbs.db ehthumbs.db
Thumbs.db Thumbs.db
# vim swap files
#####################
*.*sw*

View File

@ -18,8 +18,8 @@ SET(OUR_EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/bin")
ENABLE_TESTING() ENABLE_TESTING()
# Options # Options
OPTION(COMPILE_EXAMPLES "Select this if you want to build the examples" OFF) OPTION(COMPILE_EXAMPLES "Select this if you want to build the examples" ON)
OPTION(COMPILE_TESTS "Select this if you want to build the tests" OFF) OPTION(COMPILE_TESTS "Select this if you want to build the tests" ON)
OPTION(PROFILING_ENABLED "Select this if you want to compile with enabled profiling" OFF) OPTION(PROFILING_ENABLED "Select this if you want to compile with enabled profiling" OFF)
OPTION(DOUBLE_PRECISION_ENABLED "Select this if you want to compile using double precision floating OPTION(DOUBLE_PRECISION_ENABLED "Select this if you want to compile using double precision floating
values" OFF) values" OFF)

View File

@ -120,7 +120,7 @@ inline rp3d::CollisionBody* Box::getCollisionBody() {
// Return a pointer to the rigid body of the box // Return a pointer to the rigid body of the box
inline rp3d::RigidBody* Box::getRigidBody() { inline rp3d::RigidBody* Box::getRigidBody() {
return dynamic_cast<rp3d::RigidBody*>(mRigidBody); return static_cast<rp3d::RigidBody*>(mRigidBody);
} }
// Set the color of the box // Set the color of the box

View File

@ -88,7 +88,7 @@ inline rp3d::CollisionBody* Capsule::getCollisionBody() {
// Return a pointer to the rigid body of the box // Return a pointer to the rigid body of the box
inline rp3d::RigidBody* Capsule::getRigidBody() { inline rp3d::RigidBody* Capsule::getRigidBody() {
return dynamic_cast<rp3d::RigidBody*>(mRigidBody); return static_cast<rp3d::RigidBody*>(mRigidBody);
} }
#endif #endif

View File

@ -87,7 +87,7 @@ inline rp3d::CollisionBody* Cone::getCollisionBody() {
// Return a pointer to the rigid body of the box // Return a pointer to the rigid body of the box
inline rp3d::RigidBody* Cone::getRigidBody() { inline rp3d::RigidBody* Cone::getRigidBody() {
return dynamic_cast<rp3d::RigidBody*>(mRigidBody); return static_cast<rp3d::RigidBody*>(mRigidBody);
} }
#endif #endif

View File

@ -84,7 +84,7 @@ inline rp3d::CollisionBody* Sphere::getCollisionBody() {
// Return a pointer to the rigid body of the box // Return a pointer to the rigid body of the box
inline rp3d::RigidBody* Sphere::getRigidBody() { inline rp3d::RigidBody* Sphere::getRigidBody() {
return dynamic_cast<rp3d::RigidBody*>(mRigidBody); return static_cast<rp3d::RigidBody*>(mRigidBody);
} }
#endif #endif

View File

@ -342,7 +342,7 @@ void RigidBody::updateBroadPhaseState() const {
PROFILE("RigidBody::updateBroadPhaseState()"); PROFILE("RigidBody::updateBroadPhaseState()");
DynamicsWorld& world = dynamic_cast<DynamicsWorld&>(mWorld); DynamicsWorld& world = static_cast<DynamicsWorld&>(mWorld);
const Vector3 displacement = world.mTimer.getTimeStep() * mLinearVelocity; const Vector3 displacement = world.mTimer.getTimeStep() * mLinearVelocity;
// For all the proxy collision shapes of the body // For all the proxy collision shapes of the body

View File

@ -48,8 +48,8 @@ bool SphereVsSphereAlgorithm::testCollision(ProxyShape* collisionShape1,
// Get the sphere collision shapes // Get the sphere collision shapes
const CollisionShape* shape1 = collisionShape1->getCollisionShape(); const CollisionShape* shape1 = collisionShape1->getCollisionShape();
const CollisionShape* shape2 = collisionShape2->getCollisionShape(); const CollisionShape* shape2 = collisionShape2->getCollisionShape();
const SphereShape* sphereShape1 = dynamic_cast<const SphereShape*>(shape1); const SphereShape* sphereShape1 = static_cast<const SphereShape*>(shape1);
const SphereShape* sphereShape2 = dynamic_cast<const SphereShape*>(shape2); const SphereShape* sphereShape2 = static_cast<const SphereShape*>(shape2);
// Get the local-space to world-space transforms // Get the local-space to world-space transforms
const Transform transform1 = collisionShape1->getBody()->getTransform() * const Transform transform1 = collisionShape1->getBody()->getTransform() *

View File

@ -165,7 +165,7 @@ inline Vector3 BoxShape::getLocalSupportPointWithoutMargin(const Vector3& direct
// Test equality between two box shapes // Test equality between two box shapes
inline bool BoxShape::isEqualTo(const CollisionShape& otherCollisionShape) const { inline bool BoxShape::isEqualTo(const CollisionShape& otherCollisionShape) const {
const BoxShape& otherShape = dynamic_cast<const BoxShape&>(otherCollisionShape); const BoxShape& otherShape = static_cast<const BoxShape&>(otherCollisionShape);
return (mExtent == otherShape.mExtent); return (mExtent == otherShape.mExtent);
} }

View File

@ -162,7 +162,7 @@ inline void CapsuleShape::getLocalBounds(Vector3& min, Vector3& max) const {
// Test equality between two capsule shapes // Test equality between two capsule shapes
inline bool CapsuleShape::isEqualTo(const CollisionShape& otherCollisionShape) const { inline bool CapsuleShape::isEqualTo(const CollisionShape& otherCollisionShape) const {
const CapsuleShape& otherShape = dynamic_cast<const CapsuleShape&>(otherCollisionShape); const CapsuleShape& otherShape = static_cast<const CapsuleShape&>(otherCollisionShape);
return (mRadius == otherShape.mRadius && mHalfHeight == otherShape.mHalfHeight); return (mRadius == otherShape.mRadius && mHalfHeight == otherShape.mHalfHeight);
} }

View File

@ -178,7 +178,7 @@ inline void ConeShape::computeLocalInertiaTensor(Matrix3x3& tensor, decimal mass
// Test equality between two cone shapes // Test equality between two cone shapes
inline bool ConeShape::isEqualTo(const CollisionShape& otherCollisionShape) const { inline bool ConeShape::isEqualTo(const CollisionShape& otherCollisionShape) const {
const ConeShape& otherShape = dynamic_cast<const ConeShape&>(otherCollisionShape); const ConeShape& otherShape = static_cast<const ConeShape&>(otherCollisionShape);
return (mRadius == otherShape.mRadius && mHalfHeight == otherShape.mHalfHeight); return (mRadius == otherShape.mRadius && mHalfHeight == otherShape.mHalfHeight);
} }

View File

@ -211,7 +211,7 @@ void ConvexMeshShape::recalculateBounds() {
// Test equality between two cone shapes // Test equality between two cone shapes
bool ConvexMeshShape::isEqualTo(const CollisionShape& otherCollisionShape) const { bool ConvexMeshShape::isEqualTo(const CollisionShape& otherCollisionShape) const {
const ConvexMeshShape& otherShape = dynamic_cast<const ConvexMeshShape&>(otherCollisionShape); const ConvexMeshShape& otherShape = static_cast<const ConvexMeshShape&>(otherCollisionShape);
assert(mNbVertices == mVertices.size()); assert(mNbVertices == mVertices.size());

View File

@ -175,7 +175,7 @@ inline void CylinderShape::computeLocalInertiaTensor(Matrix3x3& tensor, decimal
// Test equality between two cylinder shapes // Test equality between two cylinder shapes
inline bool CylinderShape::isEqualTo(const CollisionShape& otherCollisionShape) const { inline bool CylinderShape::isEqualTo(const CollisionShape& otherCollisionShape) const {
const CylinderShape& otherShape = dynamic_cast<const CylinderShape&>(otherCollisionShape); const CylinderShape& otherShape = static_cast<const CylinderShape&>(otherCollisionShape);
return (mRadius == otherShape.mRadius && mHalfHeight == otherShape.mHalfHeight); return (mRadius == otherShape.mRadius && mHalfHeight == otherShape.mHalfHeight);
} }

View File

@ -197,7 +197,7 @@ inline void SphereShape::computeAABB(AABB& aabb, const Transform& transform) {
// Test equality between two sphere shapes // Test equality between two sphere shapes
inline bool SphereShape::isEqualTo(const CollisionShape& otherCollisionShape) const { inline bool SphereShape::isEqualTo(const CollisionShape& otherCollisionShape) const {
const SphereShape& otherShape = dynamic_cast<const SphereShape&>(otherCollisionShape); const SphereShape& otherShape = static_cast<const SphereShape&>(otherCollisionShape);
return (mRadius == otherShape.mRadius); return (mRadius == otherShape.mRadius);
} }

View File

@ -83,8 +83,8 @@ void ContactSolver::initializeForIsland(decimal dt, Island* island) {
assert(externalManifold->getNbContactPoints() > 0); assert(externalManifold->getNbContactPoints() > 0);
// Get the two bodies of the contact // Get the two bodies of the contact
RigidBody* body1 = dynamic_cast<RigidBody*>(externalManifold->getContactPoint(0)->getBody1()); RigidBody* body1 = static_cast<RigidBody*>(externalManifold->getContactPoint(0)->getBody1());
RigidBody* body2 = dynamic_cast<RigidBody*>(externalManifold->getContactPoint(0)->getBody2()); RigidBody* body2 = static_cast<RigidBody*>(externalManifold->getContactPoint(0)->getBody2());
assert(body1 != NULL); assert(body1 != NULL);
assert(body2 != NULL); assert(body2 != NULL);

View File

@ -529,7 +529,7 @@ Joint* DynamicsWorld::createJoint(const JointInfo& jointInfo) {
case BALLSOCKETJOINT: case BALLSOCKETJOINT:
{ {
void* allocatedMemory = mMemoryAllocator.allocate(sizeof(BallAndSocketJoint)); void* allocatedMemory = mMemoryAllocator.allocate(sizeof(BallAndSocketJoint));
const BallAndSocketJointInfo& info = dynamic_cast<const BallAndSocketJointInfo&>( const BallAndSocketJointInfo& info = static_cast<const BallAndSocketJointInfo&>(
jointInfo); jointInfo);
newJoint = new (allocatedMemory) BallAndSocketJoint(info); newJoint = new (allocatedMemory) BallAndSocketJoint(info);
break; break;
@ -539,7 +539,7 @@ Joint* DynamicsWorld::createJoint(const JointInfo& jointInfo) {
case SLIDERJOINT: case SLIDERJOINT:
{ {
void* allocatedMemory = mMemoryAllocator.allocate(sizeof(SliderJoint)); void* allocatedMemory = mMemoryAllocator.allocate(sizeof(SliderJoint));
const SliderJointInfo& info = dynamic_cast<const SliderJointInfo&>(jointInfo); const SliderJointInfo& info = static_cast<const SliderJointInfo&>(jointInfo);
newJoint = new (allocatedMemory) SliderJoint(info); newJoint = new (allocatedMemory) SliderJoint(info);
break; break;
} }
@ -548,7 +548,7 @@ Joint* DynamicsWorld::createJoint(const JointInfo& jointInfo) {
case HINGEJOINT: case HINGEJOINT:
{ {
void* allocatedMemory = mMemoryAllocator.allocate(sizeof(HingeJoint)); void* allocatedMemory = mMemoryAllocator.allocate(sizeof(HingeJoint));
const HingeJointInfo& info = dynamic_cast<const HingeJointInfo&>(jointInfo); const HingeJointInfo& info = static_cast<const HingeJointInfo&>(jointInfo);
newJoint = new (allocatedMemory) HingeJoint(info); newJoint = new (allocatedMemory) HingeJoint(info);
break; break;
} }
@ -557,7 +557,7 @@ Joint* DynamicsWorld::createJoint(const JointInfo& jointInfo) {
case FIXEDJOINT: case FIXEDJOINT:
{ {
void* allocatedMemory = mMemoryAllocator.allocate(sizeof(FixedJoint)); void* allocatedMemory = mMemoryAllocator.allocate(sizeof(FixedJoint));
const FixedJointInfo& info = dynamic_cast<const FixedJointInfo&>(jointInfo); const FixedJointInfo& info = static_cast<const FixedJointInfo&>(jointInfo);
newJoint = new (allocatedMemory) FixedJoint(info); newJoint = new (allocatedMemory) FixedJoint(info);
break; break;
} }
@ -746,8 +746,8 @@ void DynamicsWorld::computeIslands() {
contactManifold->mIsAlreadyInIsland = true; contactManifold->mIsAlreadyInIsland = true;
// Get the other body of the contact manifold // Get the other body of the contact manifold
RigidBody* body1 = dynamic_cast<RigidBody*>(contactManifold->getBody1()); RigidBody* body1 = static_cast<RigidBody*>(contactManifold->getBody1());
RigidBody* body2 = dynamic_cast<RigidBody*>(contactManifold->getBody2()); RigidBody* body2 = static_cast<RigidBody*>(contactManifold->getBody2());
RigidBody* otherBody = (body1->getID() == bodyToVisit->getID()) ? body2 : body1; RigidBody* otherBody = (body1->getID() == bodyToVisit->getID()) ? body2 : body1;
// Check if the other body has already been added to the island // Check if the other body has already been added to the island
@ -774,8 +774,8 @@ void DynamicsWorld::computeIslands() {
joint->mIsAlreadyInIsland = true; joint->mIsAlreadyInIsland = true;
// Get the other body of the contact manifold // Get the other body of the contact manifold
RigidBody* body1 = dynamic_cast<RigidBody*>(joint->getBody1()); RigidBody* body1 = static_cast<RigidBody*>(joint->getBody1());
RigidBody* body2 = dynamic_cast<RigidBody*>(joint->getBody2()); RigidBody* body2 = static_cast<RigidBody*>(joint->getBody2());
RigidBody* otherBody = (body1->getID() == bodyToVisit->getID()) ? body2 : body1; RigidBody* otherBody = (body1->getID() == bodyToVisit->getID()) ? body2 : body1;
// Check if the other body has already been added to the island // Check if the other body has already been added to the island