From c854b1af587383ca6779ecf23cb481b2b4524d45 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Mon, 16 Dec 2013 08:58:15 +0100 Subject: [PATCH 01/42] Stuff --- Code/GamePhysics/GamePhysics.vcxproj | 2 + Code/GamePhysics/GamePhysics.vcxproj.filters | 6 +++ .../Implementation/PhysicsAPI_Impl.cpp | 26 ----------- .../Implementation/SphericalRigidBody.cpp | 2 +- Code/GamePhysics/PhysicsAPI.h | 15 +----- Code/GamePhysics/PhysicsFormula-Impl.h | 46 +++++++++++++++++++ Code/GamePhysics/PhysicsFormula.h | 27 +++++++++++ 7 files changed, 83 insertions(+), 41 deletions(-) create mode 100644 Code/GamePhysics/PhysicsFormula-Impl.h create mode 100644 Code/GamePhysics/PhysicsFormula.h diff --git a/Code/GamePhysics/GamePhysics.vcxproj b/Code/GamePhysics/GamePhysics.vcxproj index 06e64fd1..1abcc6f8 100644 --- a/Code/GamePhysics/GamePhysics.vcxproj +++ b/Code/GamePhysics/GamePhysics.vcxproj @@ -166,6 +166,8 @@ + + diff --git a/Code/GamePhysics/GamePhysics.vcxproj.filters b/Code/GamePhysics/GamePhysics.vcxproj.filters index 15221691..aa3cbd73 100644 --- a/Code/GamePhysics/GamePhysics.vcxproj.filters +++ b/Code/GamePhysics/GamePhysics.vcxproj.filters @@ -42,6 +42,12 @@ Header Files\Include + + Header Files\Include + + + Header Files\Include + diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index 46b3369c..d01d95f7 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -4,7 +4,6 @@ #include "SphericalRigidBody.h" using namespace ::Oyster::Physics; -using namespace ::Oyster::Physics3D; using namespace ::Oyster::Math; using namespace ::Oyster::Collision3D; using namespace ::Utility::DynamicMemory; @@ -27,31 +26,6 @@ namespace } } -Float4x4 & MomentOfInertia::CreateSphereMatrix( const Float mass, const Float radius, ::Oyster::Math::Float4x4 &targetMem ) -{ - return targetMem = Formula::MomentOfInertia::Sphere(mass, radius); -} - -Float4x4 & MomentOfInertia::CreateHollowSphereMatrix( const Float mass, const Float radius, ::Oyster::Math::Float4x4 &targetMem ) -{ - return targetMem = Formula::MomentOfInertia::HollowSphere(mass, radius); -} - -Float4x4 & MomentOfInertia::CreateCuboidMatrix( const Float mass, const Float height, const Float width, const Float depth, ::Oyster::Math::Float4x4 &targetMem ) -{ - return targetMem = Formula::MomentOfInertia::Cuboid(mass, height, width, depth); -} - -Float4x4 & MomentOfInertia::CreateCylinderMatrix( const Float mass, const Float height, const Float radius, ::Oyster::Math::Float4x4 &targetMem ) -{ - return targetMem = Formula::MomentOfInertia::Cylinder(mass, height, radius); -} - -Float4x4 & MomentOfInertia::CreateRodMatrix( const Float mass, const Float length, ::Oyster::Math::Float4x4 &targetMem ) -{ - return targetMem = Formula::MomentOfInertia::RodCenter(mass, length); -} - API & API::Instance() { return API_instance; diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index 364d7454..ce31456e 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -21,7 +21,7 @@ SphericalRigidBody::SphericalRigidBody( const API::SphericalBodyDescription &des { this->rigid = RigidBody( Box( desc.rotation, desc.centerPosition, Float3(2.0f * desc.radius) ), desc.mass, - MomentOfInertia::CreateSphereMatrix( desc.mass, desc.radius ) ); + Formula::MomentOfInertia::CreateSphereMatrix( desc.mass, desc.radius ) ); this->gravityNormal = Float3::null; if( desc.subscription ) diff --git a/Code/GamePhysics/PhysicsAPI.h b/Code/GamePhysics/PhysicsAPI.h index 84a3d639..6c43a754 100644 --- a/Code/GamePhysics/PhysicsAPI.h +++ b/Code/GamePhysics/PhysicsAPI.h @@ -35,20 +35,6 @@ namespace Oyster const float gravity_constant = (const float)6.67284e-11; //!< The _big_G_! ( N(m/kg)^2 ) Used in real gravityforcefields. } - class PHYSICS_DLL_USAGE MomentOfInertia - { - public: - static ::Oyster::Math::Float4x4 & CreateSphereMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float radius, ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ); - - static ::Oyster::Math::Float4x4 & CreateHollowSphereMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float radius, ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ); - - static ::Oyster::Math::Float4x4 & CreateCuboidMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float height, const ::Oyster::Math::Float width, const ::Oyster::Math::Float depth, ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ); - - static ::Oyster::Math::Float4x4 & CreateCylinderMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float height, const ::Oyster::Math::Float radius, ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ); - - static ::Oyster::Math::Float4x4 & CreateRodMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float length, ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ); - }; - class PHYSICS_DLL_USAGE API { public: @@ -436,5 +422,6 @@ namespace Oyster } #include "PhysicsStructs.h" +#include "PhysicsFormula.h" #endif \ No newline at end of file diff --git a/Code/GamePhysics/PhysicsFormula-Impl.h b/Code/GamePhysics/PhysicsFormula-Impl.h new file mode 100644 index 00000000..2c97de24 --- /dev/null +++ b/Code/GamePhysics/PhysicsFormula-Impl.h @@ -0,0 +1,46 @@ +#ifndef PHYSICS_FORMULA_IMPL_H +#define PHYSICS_FORMULA_IMPL_H + +#include "PhysicsFormula.h" +#include "OysterPhysics3D.h" + +namespace Oyster { namespace Physics { namespace Formula +{ + namespace MomentOfInertia + { + inline ::Oyster::Math::Float4x4 CreateSphereMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float radius ) + { + return ::Oyster::Physics3D::Formula::MomentOfInertia::Sphere(mass, radius); + } + + inline ::Oyster::Math::Float4x4 CreateHollowSphereMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float radius ) + { + return ::Oyster::Physics3D::Formula::MomentOfInertia::HollowSphere(mass, radius); + } + + inline ::Oyster::Math::Float4x4 CreateCuboidMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float height, const ::Oyster::Math::Float width, const ::Oyster::Math::Float depth ) + { + return ::Oyster::Physics3D::Formula::MomentOfInertia::Cuboid(mass, height, width, depth); + } + + inline ::Oyster::Math::Float4x4 CreateCylinderMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float height, const ::Oyster::Math::Float radius ) + { + return ::Oyster::Physics3D::Formula::MomentOfInertia::Cylinder(mass, height, radius); + } + + inline ::Oyster::Math::Float4x4 CreateRodMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float length ) + { + return ::Oyster::Physics3D::Formula::MomentOfInertia::RodCenter(mass, length); + } + } + + namespace CollisionResponse + { + inline ::Oyster::Math::Float Impulse( ::Oyster::Math::Float e, ::Oyster::Math::Float mA, ::Oyster::Math::Float gA, ::Oyster::Math::Float mB, ::Oyster::Math::Float gB ) + { + return (e+1) * (mB*gA - mA*gB) / (mA + mB); + } + } +} } } + +#endif \ No newline at end of file diff --git a/Code/GamePhysics/PhysicsFormula.h b/Code/GamePhysics/PhysicsFormula.h new file mode 100644 index 00000000..c015e571 --- /dev/null +++ b/Code/GamePhysics/PhysicsFormula.h @@ -0,0 +1,27 @@ +#ifndef PHYSICS_FORMULA_H +#define PHYSICS_FORMULA_H + +#include "OysterMath.h" + +namespace Oyster { namespace Physics { namespace Formula +{ + namespace MomentOfInertia + { + ::Oyster::Math::Float4x4 CreateSphereMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float radius ); + ::Oyster::Math::Float4x4 CreateHollowSphereMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float radius ); + ::Oyster::Math::Float4x4 CreateCuboidMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float height, const ::Oyster::Math::Float width, const ::Oyster::Math::Float depth ); + ::Oyster::Math::Float4x4 CreateCylinderMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float height, const ::Oyster::Math::Float radius ); + ::Oyster::Math::Float4x4 CreateRodMatrix( const ::Oyster::Math::Float mass, const ::Oyster::Math::Float length ); + } + + namespace CollisionResponse + { + ::Oyster::Math::Float Impulse( ::Oyster::Math::Float coeffOfRestitution, + ::Oyster::Math::Float massA, ::Oyster::Math::Float momentumA, + ::Oyster::Math::Float massB, ::Oyster::Math::Float momentumB ); + } +} } } + +#include "PhysicsFormula-Impl.h" + +#endif \ No newline at end of file From da996a5debcc47832830b87ef9c7138864ac4440 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Mon, 16 Dec 2013 09:06:10 +0100 Subject: [PATCH 02/42] Added cirtual function to ICollideAble Overload of Intersects(...) --- Code/OysterPhysics3D/ICollideable.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Code/OysterPhysics3D/ICollideable.h b/Code/OysterPhysics3D/ICollideable.h index 34a86f7b..038caf0f 100644 --- a/Code/OysterPhysics3D/ICollideable.h +++ b/Code/OysterPhysics3D/ICollideable.h @@ -34,6 +34,7 @@ namespace Oyster { namespace Collision3D //! Contains a collection of 3D shapes virtual ~ICollideable(); virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const = 0; + virtual bool Intersects( const ICollideable &target, Oyster::Math::Float3 &worldPointOfContact ) const = 0; virtual bool Intersects( const ICollideable &target ) const = 0; virtual bool Contains( const ICollideable &target ) const = 0; }; From de0078265c7a4a005178aa7cd57232afc4bab4fc Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Mon, 16 Dec 2013 09:36:41 +0100 Subject: [PATCH 03/42] Stub response to new ICollideAble method Stubbed: Box, BoxAxisAligned, Frustrum Fully implemented: Line & Universe --- Code/OysterPhysics3D/Box.cpp | 6 ++++ Code/OysterPhysics3D/Box.h | 1 + Code/OysterPhysics3D/BoxAxisAligned.cpp | 6 ++++ Code/OysterPhysics3D/BoxAxisAligned.h | 1 + Code/OysterPhysics3D/Frustrum.cpp | 10 ++++-- Code/OysterPhysics3D/Frustrum.h | 1 + Code/OysterPhysics3D/ICollideable.h | 2 +- Code/OysterPhysics3D/Line.cpp | 23 +++++++++++++- Code/OysterPhysics3D/Line.h | 1 + Code/OysterPhysics3D/Universe.cpp | 42 +++++++++++++++++++++++++ Code/OysterPhysics3D/Universe.h | 1 + 11 files changed, 90 insertions(+), 4 deletions(-) diff --git a/Code/OysterPhysics3D/Box.cpp b/Code/OysterPhysics3D/Box.cpp index 382c6732..59c98372 100644 --- a/Code/OysterPhysics3D/Box.cpp +++ b/Code/OysterPhysics3D/Box.cpp @@ -54,6 +54,12 @@ bool Box::Intersects( const ICollideable &target ) const } } +bool Box::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +{ + //! @todo TODO: implement stub properly + return this->Intersects( target ); +} + bool Box::Contains( const ICollideable &target ) const { switch( target.type ) diff --git a/Code/OysterPhysics3D/Box.h b/Code/OysterPhysics3D/Box.h index d40c9f30..bdef2f9a 100644 --- a/Code/OysterPhysics3D/Box.h +++ b/Code/OysterPhysics3D/Box.h @@ -34,6 +34,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/BoxAxisAligned.cpp b/Code/OysterPhysics3D/BoxAxisAligned.cpp index f50f4b6d..f1fc2a78 100644 --- a/Code/OysterPhysics3D/BoxAxisAligned.cpp +++ b/Code/OysterPhysics3D/BoxAxisAligned.cpp @@ -57,6 +57,12 @@ bool BoxAxisAligned::Intersects( const ICollideable &target ) const } } +bool BoxAxisAligned::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +{ + //! @todo TODO: implement stub properly + return this->Intersects( target ); +} + bool BoxAxisAligned::Contains( const ICollideable &target ) const { switch( target.type ) diff --git a/Code/OysterPhysics3D/BoxAxisAligned.h b/Code/OysterPhysics3D/BoxAxisAligned.h index a0e109b2..374c888f 100644 --- a/Code/OysterPhysics3D/BoxAxisAligned.h +++ b/Code/OysterPhysics3D/BoxAxisAligned.h @@ -29,6 +29,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Frustrum.cpp b/Code/OysterPhysics3D/Frustrum.cpp index 7099c2ce..39e27318 100644 --- a/Code/OysterPhysics3D/Frustrum.cpp +++ b/Code/OysterPhysics3D/Frustrum.cpp @@ -5,8 +5,8 @@ #include "Frustrum.h" #include "OysterCollision3D.h" -using namespace Oyster::Math; -using namespace Oyster::Collision3D; +using namespace ::Oyster::Math; +using namespace ::Oyster::Collision3D; namespace PrivateStatic { @@ -218,6 +218,12 @@ bool Frustrum::Intersects( const ICollideable &target ) const } } +bool Frustrum::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +{ + //! @todo TODO: implement stub properly + return this->Intersects( target ); +} + bool Frustrum::Contains( const ICollideable &target ) const { switch( target.type ) diff --git a/Code/OysterPhysics3D/Frustrum.h b/Code/OysterPhysics3D/Frustrum.h index afd8d8bd..c59d89f5 100644 --- a/Code/OysterPhysics3D/Frustrum.h +++ b/Code/OysterPhysics3D/Frustrum.h @@ -39,6 +39,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; diff --git a/Code/OysterPhysics3D/ICollideable.h b/Code/OysterPhysics3D/ICollideable.h index 038caf0f..14676a1e 100644 --- a/Code/OysterPhysics3D/ICollideable.h +++ b/Code/OysterPhysics3D/ICollideable.h @@ -34,7 +34,7 @@ namespace Oyster { namespace Collision3D //! Contains a collection of 3D shapes virtual ~ICollideable(); virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const = 0; - virtual bool Intersects( const ICollideable &target, Oyster::Math::Float3 &worldPointOfContact ) const = 0; + virtual bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const = 0; virtual bool Intersects( const ICollideable &target ) const = 0; virtual bool Contains( const ICollideable &target ) const = 0; }; diff --git a/Code/OysterPhysics3D/Line.cpp b/Code/OysterPhysics3D/Line.cpp index 17fe55f7..0d3c3dcd 100644 --- a/Code/OysterPhysics3D/Line.cpp +++ b/Code/OysterPhysics3D/Line.cpp @@ -46,8 +46,29 @@ bool Line::Intersects( const ICollideable &target ) const return true; } - if( this->ray.Intersects( target ) ) if( this->ray.collisionDistance >= 0.0f ) if( this->ray.collisionDistance <= this->length ) + if( this->ray.Intersects(target) ) if( this->ray.collisionDistance >= 0.0f ) if( this->ray.collisionDistance <= this->length ) + { return true; + } + + this->ray.collisionDistance = 0.0f; + return false; +} + +bool Line::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +{ + if( target.type == Type_universe ) + { + this->ray.collisionDistance = 0.0f; + worldPointOfContact = this->ray.origin; + return true; + } + + if( this->ray.Intersects(target) ) if( this->ray.collisionDistance >= 0.0f ) if( this->ray.collisionDistance <= this->length ) + { + worldPointOfContact = this->ray.origin + this->ray.direction * this->ray.collisionDistance; + return true; + } this->ray.collisionDistance = 0.0f; return false; diff --git a/Code/OysterPhysics3D/Line.h b/Code/OysterPhysics3D/Line.h index f062c0dc..e90e7ac4 100644 --- a/Code/OysterPhysics3D/Line.h +++ b/Code/OysterPhysics3D/Line.h @@ -30,6 +30,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Universe.cpp b/Code/OysterPhysics3D/Universe.cpp index 725e2839..f1887e0b 100644 --- a/Code/OysterPhysics3D/Universe.cpp +++ b/Code/OysterPhysics3D/Universe.cpp @@ -1,6 +1,8 @@ #include "Universe.h" #include "OysterCollision3D.h" +using namespace ::Utility::Value; +using namespace ::Oyster::Math; using namespace ::Oyster::Collision3D; using namespace ::Utility::DynamicMemory; @@ -29,6 +31,46 @@ bool Universe::Intersects( const ICollideable &target ) const return true; } +bool Universe::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +{ // universe touches everything + switch( target.type ) + { + case Type_point: + worldPointOfContact = ((Point*)&target)->center; + break; + case Type_sphere: + worldPointOfContact = ((Sphere*)&target)->center; + break; + case Type_plane: + worldPointOfContact = ((Plane*)&target)->normal * ((Plane*)&target)->phasing; + break; + case Type_box_axis_aligned: + worldPointOfContact = Average( ((BoxAxisAligned*)&target)->minVertex, ((BoxAxisAligned*)&target)->maxVertex ); + break; + case Type_box: + worldPointOfContact = ((Box*)&target)->center; + break; + case Type_frustrum: + worldPointOfContact = Average( ((Frustrum*)&target)->leftPlane.normal * ((Frustrum*)&target)->leftPlane.phasing, ((Frustrum*)&target)->rightPlane.normal * ((Frustrum*)&target)->rightPlane.phasing ); + worldPointOfContact = Average( worldPointOfContact, Average( ((Frustrum*)&target)->bottomPlane.normal * ((Frustrum*)&target)->bottomPlane.phasing, ((Frustrum*)&target)->topPlane.normal * ((Frustrum*)&target)->topPlane.phasing ) ); + worldPointOfContact = Average( worldPointOfContact, Average( ((Frustrum*)&target)->nearPlane.normal * ((Frustrum*)&target)->nearPlane.phasing, ((Frustrum*)&target)->farPlane.normal * ((Frustrum*)&target)->farPlane.phasing ) ); + break; + case Type_ray: + ((Ray*)&target)->collisionDistance = 0.0f; + worldPointOfContact = ((Ray*)&target)->origin; + break; + case Type_line: + ((Line*)&target)->ray.collisionDistance = 0.0f; + worldPointOfContact = ((Line*)&target)->ray.origin; + break; + default: + worldPointOfContact = Float3::null; + break; + } + + return true; +} + bool Universe::Contains( const ICollideable &target ) const { return true; } // universe contains everything diff --git a/Code/OysterPhysics3D/Universe.h b/Code/OysterPhysics3D/Universe.h index ff8366be..fce8179e 100644 --- a/Code/OysterPhysics3D/Universe.h +++ b/Code/OysterPhysics3D/Universe.h @@ -20,6 +20,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } From 283633c6c6747ef7420c0b466f977cee7d696001 Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Mon, 16 Dec 2013 09:38:04 +0100 Subject: [PATCH 04/42] Added stub functions More funcitonallity for intersect functions. --- Code/OysterPhysics3D/OysterCollision3D.cpp | 53 ++++++++++++++++++++++ Code/OysterPhysics3D/OysterCollision3D.h | 10 ++++ Code/OysterPhysics3D/Plane.cpp | 18 ++++++++ Code/OysterPhysics3D/Plane.h | 1 + Code/OysterPhysics3D/Point.cpp | 18 ++++++++ Code/OysterPhysics3D/Point.h | 1 + Code/OysterPhysics3D/Ray.cpp | 20 ++++++++ Code/OysterPhysics3D/Ray.h | 1 + Code/OysterPhysics3D/Sphere.cpp | 18 ++++++++ Code/OysterPhysics3D/Sphere.h | 1 + 10 files changed, 141 insertions(+) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 5df9761c..6d437511 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -249,6 +249,11 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; // Passed all tests, is in same position } + bool Intersect( const Point &pointA, const Point &pointB, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + bool Intersect( const Ray &ray, const Point &point, Float &connectDistance ) { // by Dan Andersson Float connectOffsetSquared; @@ -279,6 +284,16 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + bool Intersect( const Sphere &sphere, const Point &point ) { // by Dan Andersson Float3 dP = point.center - sphere.center; @@ -321,6 +336,24 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } + bool Intersect( const Sphere &sphere, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, const ::Oyster::Math::Float3& worldPointOfContact ) + { + Ray sphereRay(sphereA, Float3(sphereB.center-sphereA.center).Normalize()); + + + return false; + } + bool Intersect( const Plane &plane, const Point &point ) { // by Dan Andersson Float connectOffset; @@ -364,6 +397,26 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; // none parallell planes ALWAYS intersects somewhere } + bool Intersect( const Plane &plane, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + + bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + + bool Intersect( const Plane &plane, const Sphere &sphere, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + + bool Intersect( const Plane &planeA, const Plane &planeB, const ::Oyster::Math::Float3& worldPointOfContact ) + { + return false; + } + bool Intersect( const BoxAxisAligned &box, const Point &point ) { // by Dan Andersson if( point.center.x < box.minVertex.x ) return false; diff --git a/Code/OysterPhysics3D/OysterCollision3D.h b/Code/OysterPhysics3D/OysterCollision3D.h index 24d6a568..2b1f820f 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.h +++ b/Code/OysterPhysics3D/OysterCollision3D.h @@ -25,18 +25,28 @@ namespace Oyster { namespace Collision3D { namespace Utility void Compare( ::Oyster::Math::Float &connectOffset, const Plane &plane, const Point &point ); bool Intersect( const Point &pointA, const Point &pointB ); + bool Intersect( const Point &pointA, const Point &pointB, const ::Oyster::Math::Float3& worldPointOfContact ); bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB ); + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, const ::Oyster::Math::Float3& worldPointOfContact ); bool Intersect( const Sphere &sphere, const Point &point ); bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Sphere &sphereA, const Sphere &sphereB ); + bool Intersect( const Sphere &sphere, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, const ::Oyster::Math::Float3& worldPointOfContact ); bool Intersect( const Plane &plane, const Point &point ); bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Plane &plane, const Sphere &sphere ); bool Intersect( const Plane &planeA, const Plane &planeB ); + bool Intersect( const Plane &plane, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &plane, const Sphere &sphere, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &planeA, const Plane &planeB, const ::Oyster::Math::Float3& worldPointOfContact ); // bool Intersect( const Triangle &triangle, const Point &point, ? ); // bool Intersect( const Triangle &triangle, const Ray &ray, ? ); diff --git a/Code/OysterPhysics3D/Plane.cpp b/Code/OysterPhysics3D/Plane.cpp index a1a16b14..0bc14982 100644 --- a/Code/OysterPhysics3D/Plane.cpp +++ b/Code/OysterPhysics3D/Plane.cpp @@ -50,6 +50,24 @@ bool Plane::Intersects( const ICollideable &target ) const } } +bool Plane::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +{ + switch( target.type ) + { + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); + case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); + // case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_frustrum: return false; // TODO: + default: worldPointOfContact = NULL; + return false; + } +} + bool Plane::Contains( const ICollideable &target ) const { switch( target.type ) diff --git a/Code/OysterPhysics3D/Plane.h b/Code/OysterPhysics3D/Plane.h index b69c5c9f..e38240f3 100644 --- a/Code/OysterPhysics3D/Plane.h +++ b/Code/OysterPhysics3D/Plane.h @@ -29,6 +29,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Point.cpp b/Code/OysterPhysics3D/Point.cpp index d81c91a3..7bcce9ae 100644 --- a/Code/OysterPhysics3D/Point.cpp +++ b/Code/OysterPhysics3D/Point.cpp @@ -48,6 +48,24 @@ bool Point::Intersects( const ICollideable &target ) const } } +bool Point::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +{ + switch( target.type ) + { + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); + case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); + // case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_frustrum: return false; // TODO: + default: worldPointOfContact = NULL; + return false; + } +} + bool Point::Contains( const ICollideable &target ) const { switch( target.type ) diff --git a/Code/OysterPhysics3D/Point.h b/Code/OysterPhysics3D/Point.h index 42561909..60b74659 100644 --- a/Code/OysterPhysics3D/Point.h +++ b/Code/OysterPhysics3D/Point.h @@ -28,6 +28,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Ray.cpp b/Code/OysterPhysics3D/Ray.cpp index 79e4dbd5..2a640163 100644 --- a/Code/OysterPhysics3D/Ray.cpp +++ b/Code/OysterPhysics3D/Ray.cpp @@ -55,6 +55,26 @@ bool Ray::Intersects( const ICollideable &target ) const } } +bool Ray::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +{ + switch( target.type ) + { + case Type_universe: + this->collisionDistance = 0.0f; + return true; + case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); + case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); + // case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_frustrum: return false; // TODO: + default: worldPointOfContact = NULL; + return false; + } +} + bool Ray::Contains( const ICollideable &target ) const { switch( target.type ) diff --git a/Code/OysterPhysics3D/Ray.h b/Code/OysterPhysics3D/Ray.h index 5f24ea81..34f32ebe 100644 --- a/Code/OysterPhysics3D/Ray.h +++ b/Code/OysterPhysics3D/Ray.h @@ -37,6 +37,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Sphere.cpp b/Code/OysterPhysics3D/Sphere.cpp index 4f6f76f7..eb907e59 100644 --- a/Code/OysterPhysics3D/Sphere.cpp +++ b/Code/OysterPhysics3D/Sphere.cpp @@ -45,6 +45,24 @@ bool Sphere::Intersects( const ICollideable &target ) const } } +bool Sphere::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +{ + switch( target.type ) + { + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); + case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); + // case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_frustrum: return false; // TODO: + default: worldPointOfContact = Float3::null; + return false; + } +} + bool Sphere::Contains( const ICollideable &target ) const { switch( target.type ) diff --git a/Code/OysterPhysics3D/Sphere.h b/Code/OysterPhysics3D/Sphere.h index 8e73de0b..0c4b8094 100644 --- a/Code/OysterPhysics3D/Sphere.h +++ b/Code/OysterPhysics3D/Sphere.h @@ -28,6 +28,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; + bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } From 5f305b7086c870883330f8cf22680536eb65f416 Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Mon, 16 Dec 2013 09:38:38 +0100 Subject: [PATCH 05/42] Oops --- Code/OysterPhysics3D/OysterCollision3D.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 6d437511..2f63fabb 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -348,7 +348,7 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Sphere &sphereA, const Sphere &sphereB, const ::Oyster::Math::Float3& worldPointOfContact ) { - Ray sphereRay(sphereA, Float3(sphereB.center-sphereA.center).Normalize()); + //Ray sphereRay(sphereA, Float3(sphereB.center-sphereA.center).Normalize()); return false; From 61e1d20748e4608b0126c5ecbedf0bf5d9059876 Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Mon, 16 Dec 2013 09:55:59 +0100 Subject: [PATCH 06/42] Fixed const problem --- Code/OysterPhysics3D/OysterCollision3D.cpp | 2 +- Code/OysterPhysics3D/OysterCollision3D.h | 20 ++++++++++---------- Code/OysterPhysics3D/Plane.cpp | 2 +- Code/OysterPhysics3D/Plane.h | 2 +- Code/OysterPhysics3D/Point.cpp | 6 +++--- Code/OysterPhysics3D/Point.h | 2 +- Code/OysterPhysics3D/Ray.cpp | 14 +++++++------- Code/OysterPhysics3D/Ray.h | 2 +- Code/OysterPhysics3D/Sphere.cpp | 2 +- Code/OysterPhysics3D/Sphere.h | 2 +- 10 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 2f63fabb..a5d4117c 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -348,7 +348,7 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Sphere &sphereA, const Sphere &sphereB, const ::Oyster::Math::Float3& worldPointOfContact ) { - //Ray sphereRay(sphereA, Float3(sphereB.center-sphereA.center).Normalize()); + Ray sphereRay(sphereA.center, Float3(sphereB.center-sphereA.center).Normalize()); return false; diff --git a/Code/OysterPhysics3D/OysterCollision3D.h b/Code/OysterPhysics3D/OysterCollision3D.h index 2b1f820f..7920a885 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.h +++ b/Code/OysterPhysics3D/OysterCollision3D.h @@ -25,28 +25,28 @@ namespace Oyster { namespace Collision3D { namespace Utility void Compare( ::Oyster::Math::Float &connectOffset, const Plane &plane, const Point &point ); bool Intersect( const Point &pointA, const Point &pointB ); - bool Intersect( const Point &pointA, const Point &pointB, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3& worldPointOfContact ); bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB ); - bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3& worldPointOfContact ); bool Intersect( const Sphere &sphere, const Point &point ); bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Sphere &sphereA, const Sphere &sphereB ); - bool Intersect( const Sphere &sphere, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Sphere &sphereA, const Sphere &sphereB, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3& worldPointOfContact ); bool Intersect( const Plane &plane, const Point &point ); bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Plane &plane, const Sphere &sphere ); bool Intersect( const Plane &planeA, const Plane &planeB ); - bool Intersect( const Plane &plane, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Plane &plane, const Sphere &sphere, const ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Plane &planeA, const Plane &planeB, const ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &plane, const Point &point, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &plane, const Sphere &sphere, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &planeA, const Plane &planeB, ::Oyster::Math::Float3& worldPointOfContact ); // bool Intersect( const Triangle &triangle, const Point &point, ? ); // bool Intersect( const Triangle &triangle, const Ray &ray, ? ); diff --git a/Code/OysterPhysics3D/Plane.cpp b/Code/OysterPhysics3D/Plane.cpp index 0bc14982..87d20c84 100644 --- a/Code/OysterPhysics3D/Plane.cpp +++ b/Code/OysterPhysics3D/Plane.cpp @@ -50,7 +50,7 @@ bool Plane::Intersects( const ICollideable &target ) const } } -bool Plane::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Plane::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const { switch( target.type ) { diff --git a/Code/OysterPhysics3D/Plane.h b/Code/OysterPhysics3D/Plane.h index e38240f3..35b68261 100644 --- a/Code/OysterPhysics3D/Plane.h +++ b/Code/OysterPhysics3D/Plane.h @@ -29,7 +29,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Point.cpp b/Code/OysterPhysics3D/Point.cpp index 7bcce9ae..717b47a4 100644 --- a/Code/OysterPhysics3D/Point.cpp +++ b/Code/OysterPhysics3D/Point.cpp @@ -48,14 +48,14 @@ bool Point::Intersects( const ICollideable &target ) const } } -bool Point::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Point::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const { switch( target.type ) { case Type_universe: return true; case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *(Ray*)&target, *this, ((Ray*)&target)->collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, worldPointOfContact ); case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); diff --git a/Code/OysterPhysics3D/Point.h b/Code/OysterPhysics3D/Point.h index 60b74659..ca6f4082 100644 --- a/Code/OysterPhysics3D/Point.h +++ b/Code/OysterPhysics3D/Point.h @@ -28,7 +28,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Ray.cpp b/Code/OysterPhysics3D/Ray.cpp index 2a640163..d1e81974 100644 --- a/Code/OysterPhysics3D/Ray.cpp +++ b/Code/OysterPhysics3D/Ray.cpp @@ -55,20 +55,20 @@ bool Ray::Intersects( const ICollideable &target ) const } } -bool Ray::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Ray::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const { switch( target.type ) { case Type_universe: this->collisionDistance = 0.0f; return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); + case Type_point: return Utility::Intersect( *this, *(Point*)&target, this->collisionDistance, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, this->collisionDistance, ((Ray*)&target)->collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, this->collisionDistance, worldPointOfContact ); + case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, this->collisionDistance, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, this->collisionDistance, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, this->collisionDistance, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = NULL; return false; diff --git a/Code/OysterPhysics3D/Ray.h b/Code/OysterPhysics3D/Ray.h index 34f32ebe..52131af3 100644 --- a/Code/OysterPhysics3D/Ray.h +++ b/Code/OysterPhysics3D/Ray.h @@ -37,7 +37,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Sphere.cpp b/Code/OysterPhysics3D/Sphere.cpp index eb907e59..399fd0be 100644 --- a/Code/OysterPhysics3D/Sphere.cpp +++ b/Code/OysterPhysics3D/Sphere.cpp @@ -45,7 +45,7 @@ bool Sphere::Intersects( const ICollideable &target ) const } } -bool Sphere::Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Sphere::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const { switch( target.type ) { diff --git a/Code/OysterPhysics3D/Sphere.h b/Code/OysterPhysics3D/Sphere.h index 0c4b8094..e2719328 100644 --- a/Code/OysterPhysics3D/Sphere.h +++ b/Code/OysterPhysics3D/Sphere.h @@ -28,7 +28,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, const ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } From a3ced24fea95caf78a3782743e2a1188a086f685 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Mon, 16 Dec 2013 10:03:29 +0100 Subject: [PATCH 07/42] Some compile error fixes --- Code/OysterPhysics3D/ICollideable.h | 1 + Code/OysterPhysics3D/Plane.cpp | 4 ++-- Code/OysterPhysics3D/Point.cpp | 4 ++-- Code/OysterPhysics3D/Ray.cpp | 4 ++-- Code/OysterPhysics3D/Ray.h | 1 - Code/OysterPhysics3D/Sphere.cpp | 4 ++-- Code/OysterPhysics3D/Universe.h | 1 + 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Code/OysterPhysics3D/ICollideable.h b/Code/OysterPhysics3D/ICollideable.h index 14676a1e..a8eb9464 100644 --- a/Code/OysterPhysics3D/ICollideable.h +++ b/Code/OysterPhysics3D/ICollideable.h @@ -6,6 +6,7 @@ #ifndef OYSTER_COLLISION_3D_ICOLLIDEABLE_H #define OYSTER_COLLISION_3D_ICOLLIDEABLE_H +#include "OysterMath.h" #include "Utilities.h" namespace Oyster { namespace Collision3D //! Contains a collection of 3D shapes and intercollission algorithms. diff --git a/Code/OysterPhysics3D/Plane.cpp b/Code/OysterPhysics3D/Plane.cpp index 87d20c84..f44ba810 100644 --- a/Code/OysterPhysics3D/Plane.cpp +++ b/Code/OysterPhysics3D/Plane.cpp @@ -60,8 +60,8 @@ bool Plane::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worl case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = NULL; return false; diff --git a/Code/OysterPhysics3D/Point.cpp b/Code/OysterPhysics3D/Point.cpp index 717b47a4..2981f268 100644 --- a/Code/OysterPhysics3D/Point.cpp +++ b/Code/OysterPhysics3D/Point.cpp @@ -58,8 +58,8 @@ bool Point::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worl case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, worldPointOfContact ); case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = NULL; return false; diff --git a/Code/OysterPhysics3D/Ray.cpp b/Code/OysterPhysics3D/Ray.cpp index d1e81974..86823b69 100644 --- a/Code/OysterPhysics3D/Ray.cpp +++ b/Code/OysterPhysics3D/Ray.cpp @@ -67,8 +67,8 @@ bool Ray::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldP case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, this->collisionDistance, worldPointOfContact ); case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, this->collisionDistance, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, this->collisionDistance, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, this->collisionDistance, worldPointOfContact ); + case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, this->collisionDistance, worldPointOfContact ); + case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, this->collisionDistance, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = NULL; return false; diff --git a/Code/OysterPhysics3D/Ray.h b/Code/OysterPhysics3D/Ray.h index 52131af3..bae600e4 100644 --- a/Code/OysterPhysics3D/Ray.h +++ b/Code/OysterPhysics3D/Ray.h @@ -10,7 +10,6 @@ #ifndef OYSTER_COLLISION_3D_RAY_H #define OYSTER_COLLISION_3D_RAY_H -#include "OysterMath.h" #include "ICollideable.h" namespace Oyster { namespace Collision3D diff --git a/Code/OysterPhysics3D/Sphere.cpp b/Code/OysterPhysics3D/Sphere.cpp index 399fd0be..e31a361c 100644 --- a/Code/OysterPhysics3D/Sphere.cpp +++ b/Code/OysterPhysics3D/Sphere.cpp @@ -55,8 +55,8 @@ bool Sphere::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &wor case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = Float3::null; return false; diff --git a/Code/OysterPhysics3D/Universe.h b/Code/OysterPhysics3D/Universe.h index fce8179e..aa497cbc 100644 --- a/Code/OysterPhysics3D/Universe.h +++ b/Code/OysterPhysics3D/Universe.h @@ -7,6 +7,7 @@ #define OYSTER_COLLISION_3D_UNIVERSE_H #include "ICollideable.h" +#include "OysterMath.h" namespace Oyster { namespace Collision3D { From d8b323e230d62dba18b9dc61c93738c880fdb240 Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Mon, 16 Dec 2013 10:28:49 +0100 Subject: [PATCH 08/42] Extractable collision point for SphereVSSphere --- Code/OysterPhysics3D/OysterCollision3D.cpp | 26 ++++++++++++++++------ Code/OysterPhysics3D/Point.cpp | 2 +- Code/OysterPhysics3D/Sphere.cpp | 2 +- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index a5d4117c..994513a6 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -249,7 +249,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; // Passed all tests, is in same position } - bool Intersect( const Point &pointA, const Point &pointB, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3& worldPointOfContact ) { return false; } @@ -284,12 +284,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ) { return false; } - bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3& worldPointOfContact ) { return false; } @@ -336,20 +336,32 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - bool Intersect( const Sphere &sphere, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3& worldPointOfContact ) { return false; } - bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ) { return false; } - bool Intersect( const Sphere &sphereA, const Sphere &sphereB, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3& worldPointOfContact ) { - Ray sphereRay(sphereA.center, Float3(sphereB.center-sphereA.center).Normalize()); + //Float3 C = sphereA.center; + //C -= sphereB.center; + //Float r = (sphereA.radius + sphereB.radius); + //if (r*r >= C.Dot(C)) + //{ + // Float distance; + + // Intersect(sphereA, Ray(sphereB.center, C.Normalize()), distance); + + // worldPointOfContact = sphereB.center+C.Normalize()*distance; + + // return true; // Intersect detected! + //} return false; } diff --git a/Code/OysterPhysics3D/Point.cpp b/Code/OysterPhysics3D/Point.cpp index 2981f268..ea6691a7 100644 --- a/Code/OysterPhysics3D/Point.cpp +++ b/Code/OysterPhysics3D/Point.cpp @@ -56,7 +56,7 @@ bool Point::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worl case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); case Type_ray: return Utility::Intersect( *(Ray*)&target, *this, ((Ray*)&target)->collisionDistance, worldPointOfContact ); case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, worldPointOfContact ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); + //case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); diff --git a/Code/OysterPhysics3D/Sphere.cpp b/Code/OysterPhysics3D/Sphere.cpp index e31a361c..6c7ae223 100644 --- a/Code/OysterPhysics3D/Sphere.cpp +++ b/Code/OysterPhysics3D/Sphere.cpp @@ -53,7 +53,7 @@ bool Sphere::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &wor case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); + //case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); From 4858f573e625bd3672f618ae8b9536b52857fe2c Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Mon, 16 Dec 2013 10:31:26 +0100 Subject: [PATCH 09/42] Added more collision subs --- Code/OysterPhysics3D/OysterCollision3D.cpp | 72 ++++++++++++++++++++++ Code/OysterPhysics3D/OysterCollision3D.h | 28 ++++++--- Code/OysterPhysics3D/Plane.cpp | 4 +- Code/OysterPhysics3D/Point.cpp | 4 +- Code/OysterPhysics3D/Ray.cpp | 4 +- Code/OysterPhysics3D/Sphere.cpp | 4 +- 6 files changed, 98 insertions(+), 18 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 994513a6..25a8948b 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -251,6 +251,7 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } @@ -286,6 +287,7 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } @@ -338,11 +340,13 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } @@ -411,21 +415,25 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Plane &plane, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } bool Intersect( const Plane &plane, const Sphere &sphere, const ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } bool Intersect( const Plane &planeA, const Plane &planeB, const ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } @@ -440,6 +448,16 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const BoxAxisAligned &box, const Point &point, Float3 &worldPointOfContact ) + { // by Dan Andersson + if( Intersect(box, point) ) + { + worldPointOfContact = point.center; + return true; + } + return false; + } + bool Intersect( const BoxAxisAligned &box, const Ray &ray, Float &connectDistance ) { // by Dan Andersson Float tMin = ::std::numeric_limits::max(), @@ -456,6 +474,16 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const BoxAxisAligned &box, const Ray &ray, Float &connectDistance, Float3 &worldPointOfContact ) + { // by Dan Andersson + if( Intersect(box, ray, connectDistance) ) + { + worldPointOfContact = ray.origin + ray.direction * connectDistance; + return true; + } + return false; + } + bool Intersect( const BoxAxisAligned &box, const Sphere &sphere ) { // by Dan Andersson Float4 e = Max( Float4(box.minVertex - sphere.center, 0.0f), Float4::null ); @@ -465,6 +493,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, Float3 &worldPointOfContact ) + { + //! @todo TODO: implement stub + return Intersect( box, sphere ); + } + bool Intersect( const BoxAxisAligned &box, const Plane &plane ) { // by Dan Andersson Float e, d; @@ -474,6 +508,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const BoxAxisAligned &box, const Plane &plane, Float3 &worldPointOfContact ) + { + //! @todo TODO: implement stub + return Intersect( box, plane ); + } + // bool Intersect( const BoxAxisAligned &box, const Triangle &triangle ) // { return false; /* TODO: */ } @@ -507,6 +547,16 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const Box &box, const Point &point, Float3 &worldPointOfContact ) + { // by Dan Andersson + if( Intersect(box, point) ) + { + worldPointOfContact = point.center; + return true; + } + return false; + } + bool Intersect( const Box &box, const Ray &ray, Float &connectDistance ) { // by Dan Andersson Float tMin = ::std::numeric_limits::max(), @@ -522,6 +572,16 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const Box &box, const Ray &ray, Float &connectDistance, Float3 &worldPointOfContact ) + { // by Dan Andersson + if( Intersect(box, ray, connectDistance) ) + { + worldPointOfContact = ray.origin + ray.direction * connectDistance; + return true; + } + return false; + } + bool Intersect( const Box &box, const Sphere &sphere ) { // by Dan Andersson // center: sphere's center in the box's view space @@ -534,6 +594,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const Box &box, const Sphere &sphere, Float3 &worldPointOfContact ) + { + //! @todo TODO: implement stub + return Intersect( box, sphere ); + } + bool Intersect( const Box &box, const Plane &plane ) {// by Dan Andersson Float e, d; @@ -543,6 +609,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const Box &box, const Plane &plane, Float3 &worldPointOfContact ) + { + //! @todo TODO: implement stub + return Intersect( box, plane ); + } + bool Intersect( const Box &boxA, const BoxAxisAligned &boxB ) { // by Dan Andersson Float3 alignedOffsetBoundaries = (boxB.maxVertex - boxB.minVertex) * 0.5f, diff --git a/Code/OysterPhysics3D/OysterCollision3D.h b/Code/OysterPhysics3D/OysterCollision3D.h index 7920a885..6ec28625 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.h +++ b/Code/OysterPhysics3D/OysterCollision3D.h @@ -25,28 +25,28 @@ namespace Oyster { namespace Collision3D { namespace Utility void Compare( ::Oyster::Math::Float &connectOffset, const Plane &plane, const Point &point ); bool Intersect( const Point &pointA, const Point &pointB ); - bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB ); - bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Sphere &sphere, const Point &point ); bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Sphere &sphereA, const Sphere &sphereB ); - bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Plane &plane, const Point &point ); bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance ); bool Intersect( const Plane &plane, const Sphere &sphere ); bool Intersect( const Plane &planeA, const Plane &planeB ); - bool Intersect( const Plane &plane, const Point &point, ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Plane &plane, const Sphere &sphere, ::Oyster::Math::Float3& worldPointOfContact ); - bool Intersect( const Plane &planeA, const Plane &planeB, ::Oyster::Math::Float3& worldPointOfContact ); + bool Intersect( const Plane &plane, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Plane &plane, const Sphere &sphere, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Plane &planeA, const Plane &planeB, ::Oyster::Math::Float3 &worldPointOfContact ); // bool Intersect( const Triangle &triangle, const Point &point, ? ); // bool Intersect( const Triangle &triangle, const Ray &ray, ? ); @@ -55,16 +55,24 @@ namespace Oyster { namespace Collision3D { namespace Utility // bool Intersect( const Triangle &triangleA, const Triangle &triangleB, ? ); bool Intersect( const BoxAxisAligned &box, const Point &point ); + bool Intersect( const BoxAxisAligned &box, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const BoxAxisAligned &box, const Ray &ray, ::Oyster::Math::Float &connectDistance ); + bool Intersect( const BoxAxisAligned &box, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const BoxAxisAligned &box, const Sphere &sphere ); + bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const BoxAxisAligned &box, const Plane &plane ); + bool Intersect( const BoxAxisAligned &box, const Plane &plane, ::Oyster::Math::Float3 &worldPointOfContact ); // bool Intersect( const BoxAxisAligned &box, const Triangle &triangle ); bool Intersect( const BoxAxisAligned &boxA, const BoxAxisAligned &boxB ); bool Intersect( const Box &box, const Point &point ); + bool Intersect( const Box &box, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Box &box, const Ray &ray, ::Oyster::Math::Float &connectDistance ); + bool Intersect( const Box &box, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Box &box, const Sphere &sphere ); + bool Intersect( const Box &box, const Sphere &sphere, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Box &box, const Plane &plane ); + bool Intersect( const Box &box, const Plane &plane, ::Oyster::Math::Float3 &worldPointOfContact ); // bool Intersect( const Box &box, const Triangle &triangle, ? ); bool Intersect( const Box &boxA, const BoxAxisAligned &boxB ); bool Intersect( const Box &boxA, const Box &boxB ); diff --git a/Code/OysterPhysics3D/Plane.cpp b/Code/OysterPhysics3D/Plane.cpp index f44ba810..87d20c84 100644 --- a/Code/OysterPhysics3D/Plane.cpp +++ b/Code/OysterPhysics3D/Plane.cpp @@ -60,8 +60,8 @@ bool Plane::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worl case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = NULL; return false; diff --git a/Code/OysterPhysics3D/Point.cpp b/Code/OysterPhysics3D/Point.cpp index ea6691a7..8b1ab081 100644 --- a/Code/OysterPhysics3D/Point.cpp +++ b/Code/OysterPhysics3D/Point.cpp @@ -58,8 +58,8 @@ bool Point::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worl case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, worldPointOfContact ); //case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = NULL; return false; diff --git a/Code/OysterPhysics3D/Ray.cpp b/Code/OysterPhysics3D/Ray.cpp index 86823b69..d1e81974 100644 --- a/Code/OysterPhysics3D/Ray.cpp +++ b/Code/OysterPhysics3D/Ray.cpp @@ -67,8 +67,8 @@ bool Ray::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldP case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, this->collisionDistance, worldPointOfContact ); case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, this->collisionDistance, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, this->collisionDistance, worldPointOfContact ); - case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, this->collisionDistance, worldPointOfContact ); + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, this->collisionDistance, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, this->collisionDistance, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = NULL; return false; diff --git a/Code/OysterPhysics3D/Sphere.cpp b/Code/OysterPhysics3D/Sphere.cpp index 6c7ae223..efec7c20 100644 --- a/Code/OysterPhysics3D/Sphere.cpp +++ b/Code/OysterPhysics3D/Sphere.cpp @@ -55,8 +55,8 @@ bool Sphere::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &wor case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); //case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return false; // return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return false; // return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); + case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); case Type_frustrum: return false; // TODO: default: worldPointOfContact = Float3::null; return false; From ec6cd72f3c42e261b2dc6b249e9c7a5b2e6dbb2c Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Mon, 16 Dec 2013 13:33:33 +0100 Subject: [PATCH 10/42] SeperatingAxisTest_AxisAlignedVsTransformedBox overloaded --- Code/OysterPhysics3D/OysterCollision3D.cpp | 183 +++++++++++++++++++++ 1 file changed, 183 insertions(+) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 25a8948b..1dcd24ab 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -203,6 +203,188 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + + bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float3 &boundingOffsetA, const Float3 &boundingOffsetB, const Float4x4 &rotationB, const Float3 &worldOffset, Float3 &worldPointOfContact ) + { // by Dan Andersson + + /***************************************************************** + * Uses the Seperating Axis Theorem + * if( |t dot s| > hA dot |s * RA| + hB dot |s * RB| ) then not intersecting + * |t dot s| > hA dot |s| + hB dot |s * RB| .. as RA = I + * + * t: objectB's offset from objectA [worldOffset] + * s: current comparison axis + * hA: boundingReach vector of objectA. Only absolute values is assumed. [boundingOffsetA] + * hB: boundingReach vector of objectB. Only absolute values is assumed. [boundingOffsetB] + * RA: rotation matrix of objectA. Is identity matrix here, thus omitted. + * RB: rotation matrix of objectB. Is transformed into objectA's view at this point. [rotationB] + * + * Note: s * RB = (RB^T * s)^T = (RB^-1 * s)^T .... vector == vector^T + *****************************************************************/ + + /***************************************************************** + * Distance Alghorithm based on .. something Dan came up with + * pi = si * ( |t dot si| * (hA dot |si|) / (hA dot |si| + hB dot |si * RB|) ) + * p = point of contact + * = ( p1 + p2 + ... + p13 + p14 ) / 5 + *****************************************************************/ + + Float4 t = Float4( worldOffset, 0.0f ), + s = Float4::standard_unit_x, + hA = Float4( boundingOffsetA, 0.0f ), + hB = Float4( boundingOffsetB, 0.0f ); + Float centerSeperation = Abs( t.Dot(s) ), + eA = hA.Dot( Abs(s) ), + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + Float4 sumPoints = s * ( centerSeperation * eA / edgeSeperation ); + + s = Float4::standard_unit_y; + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + + s = Float4::standard_unit_z; + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + + s = rotationB.v[0]; + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + + s = rotationB.v[1]; + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + + s = rotationB.v[2]; + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_x.Cross(rotationB.v[0].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_x.Cross(rotationB.v[1].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_x.Cross(rotationB.v[2].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_y.Cross(rotationB.v[0].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_y.Cross(rotationB.v[1].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_y.Cross(rotationB.v[2].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_z.Cross(rotationB.v[0].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_z.Cross(rotationB.v[1].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + s = Float4( Float3::standard_unit_z.Cross(rotationB.v[2].xyz), 0.0f ); + centerSeperation = Abs( t.Dot(s) ); + eA = hA.Dot( Abs(s) ); + edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); + if( centerSeperation > edgeSeperation ) + { // no intersection + return false; + } + sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); + + worldPointOfContact = ((1.0f/5.0f) * sumPoints).xyz; + return true; + } } // PUBLIC BODY ////////////////////////////////////////////////////// @@ -293,6 +475,7 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3& worldPointOfContact ) { + //! @todo TODO: implement Stub return false; } From a03568e19e6fd5ac1304d53f6aad0b192ef48eba Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Tue, 17 Dec 2013 12:09:20 +0100 Subject: [PATCH 11/42] Updated formula for BoxVsBox point of contact good enough approximation. Tested --- Code/OysterPhysics3D/OysterCollision3D.cpp | 79 ++++++++++------------ 1 file changed, 35 insertions(+), 44 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 1dcd24ab..12b3d040 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -224,165 +224,156 @@ namespace Oyster { namespace Collision3D { namespace Utility /***************************************************************** * Distance Alghorithm based on .. something Dan came up with - * pi = si * ( |t dot si| * (hA dot |si|) / (hA dot |si| + hB dot |si * RB|) ) - * p = point of contact - * = ( p1 + p2 + ... + p13 + p14 ) / 5 + * pi = si * ( (t dot si) * (hA dot |si|) / (hA dot |si| + hB dot |si * RB|) ) + * p = estimated point of contact + * = ( p1 + p2 + ... + p5 + p6 ) / 2 *****************************************************************/ Float4 t = Float4( worldOffset, 0.0f ), s = Float4::standard_unit_x, hA = Float4( boundingOffsetA, 0.0f ), hB = Float4( boundingOffsetB, 0.0f ); - Float centerSeperation = Abs( t.Dot(s) ), + Float centerSeperation = t.Dot(s), eA = hA.Dot( Abs(s) ), edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } Float4 sumPoints = s * ( centerSeperation * eA / edgeSeperation ); s = Float4::standard_unit_y; - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } sumPoints += s * ( centerSeperation * eA / edgeSeperation ); s = Float4::standard_unit_z; - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } sumPoints += s * ( centerSeperation * eA / edgeSeperation ); s = rotationB.v[0]; - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } sumPoints += s * ( centerSeperation * eA / edgeSeperation ); s = rotationB.v[1]; - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } sumPoints += s * ( centerSeperation * eA / edgeSeperation ); s = rotationB.v[2]; - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + sumPoints += s * ( centerSeperation * eA / edgeSeperation ); // enough point of contact data gathered for approximative result. s = Float4( Float3::standard_unit_x.Cross(rotationB.v[0].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_x.Cross(rotationB.v[1].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_x.Cross(rotationB.v[2].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_y.Cross(rotationB.v[0].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_y.Cross(rotationB.v[1].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_y.Cross(rotationB.v[2].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_z.Cross(rotationB.v[0].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_z.Cross(rotationB.v[1].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); s = Float4( Float3::standard_unit_z.Cross(rotationB.v[2].xyz), 0.0f ); - centerSeperation = Abs( t.Dot(s) ); + centerSeperation = t.Dot(s); eA = hA.Dot( Abs(s) ); edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); - if( centerSeperation > edgeSeperation ) + if( Abs(centerSeperation) > edgeSeperation ) { // no intersection return false; } - sumPoints += s.GetNormalized() * ( centerSeperation * eA / edgeSeperation ); - worldPointOfContact = ((1.0f/5.0f) * sumPoints).xyz; + worldPointOfContact = (0.5f * sumPoints).xyz; return true; } } From 632570f66b8dc14be892905dc231614d22179f01 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Tue, 17 Dec 2013 12:27:23 +0100 Subject: [PATCH 12/42] Updated the BoxVsBox collision alghorithm and added overloaded --- Code/OysterPhysics3D/OysterCollision3D.cpp | 55 +++++++++++++--------- Code/OysterPhysics3D/OysterCollision3D.h | 1 + 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 12b3d040..98aacd24 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -81,7 +81,7 @@ namespace Oyster { namespace Collision3D { namespace Utility centerDistance = box.center.Dot(plane.normal) + plane.phasing; // distance between box center and plane } - bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float3 &boundingOffsetA, const Float3 &boundingOffsetB, const Float4x4 &rotationB, const Float3 &worldOffset ) + bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float3 &boundingOffsetA, const Float3 &boundingOffsetB, const Float4x4 &rotationB, const Float4 &worldOffset ) { // by Dan Andersson /***************************************************************** @@ -121,19 +121,19 @@ namespace Oyster { namespace Collision3D { namespace Utility } // s = RB.v[0].xyz - if( Abs(worldOffset.Dot(rotationB.v[0].xyz)) > boundingOffsetA.Dot(absRotationB.v[0].xyz) + boundingOffsetB.x ) + if( Abs(worldOffset.Dot(rotationB.v[0])) > boundingOffsetA.Dot(absRotationB.v[0].xyz) + boundingOffsetB.x ) { // |t dot s| > hA dot |s| + hB dot |s * RB| -->> |t dot s| > hA dot |s| + hB dot |{1, 0, 0}| -->> |t dot s| > hA dot |s| + hB.x return false; } // s = RB.v[1].xyz - if( Abs(worldOffset.Dot(rotationB.v[1].xyz)) > boundingOffsetA.Dot(absRotationB.v[1].xyz) + boundingOffsetB.y ) + if( Abs(worldOffset.Dot(rotationB.v[1])) > boundingOffsetA.Dot(absRotationB.v[1].xyz) + boundingOffsetB.y ) { // |t dot s| > hA dot |s| + hB.y return false; } // s = RB.v[2].xyz - if( Abs(worldOffset.Dot(rotationB.v[2].xyz)) > boundingOffsetA.Dot(absRotationB.v[2].xyz) + boundingOffsetB.z ) + if( Abs(worldOffset.Dot(rotationB.v[2])) > boundingOffsetA.Dot(absRotationB.v[2].xyz) + boundingOffsetB.z ) { // |t dot s| > hA dot |s| + hB.z return false; } @@ -204,7 +204,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } - bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float3 &boundingOffsetA, const Float3 &boundingOffsetB, const Float4x4 &rotationB, const Float3 &worldOffset, Float3 &worldPointOfContact ) + bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float3 &boundingOffsetA, const Float3 &boundingOffsetB, const Float4x4 &rotationB, const Float4 &worldOffset, Float4 &worldPointOfContact ) { // by Dan Andersson /***************************************************************** @@ -229,8 +229,8 @@ namespace Oyster { namespace Collision3D { namespace Utility * = ( p1 + p2 + ... + p5 + p6 ) / 2 *****************************************************************/ - Float4 t = Float4( worldOffset, 0.0f ), - s = Float4::standard_unit_x, + const Float4 &t = worldOffset; + Float4 s = Float4::standard_unit_x, hA = Float4( boundingOffsetA, 0.0f ), hB = Float4( boundingOffsetB, 0.0f ); Float centerSeperation = t.Dot(s), @@ -240,7 +240,7 @@ namespace Oyster { namespace Collision3D { namespace Utility { // no intersection return false; } - Float4 sumPoints = s * ( centerSeperation * eA / edgeSeperation ); + worldPointOfContact = s * ( centerSeperation * eA / edgeSeperation ); s = Float4::standard_unit_y; centerSeperation = t.Dot(s); @@ -250,7 +250,7 @@ namespace Oyster { namespace Collision3D { namespace Utility { // no intersection return false; } - sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + worldPointOfContact += s * ( centerSeperation * eA / edgeSeperation ); s = Float4::standard_unit_z; centerSeperation = t.Dot(s); @@ -260,7 +260,7 @@ namespace Oyster { namespace Collision3D { namespace Utility { // no intersection return false; } - sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + worldPointOfContact += s * ( centerSeperation * eA / edgeSeperation ); s = rotationB.v[0]; centerSeperation = t.Dot(s); @@ -270,7 +270,7 @@ namespace Oyster { namespace Collision3D { namespace Utility { // no intersection return false; } - sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + worldPointOfContact += s * ( centerSeperation * eA / edgeSeperation ); s = rotationB.v[1]; centerSeperation = t.Dot(s); @@ -280,7 +280,7 @@ namespace Oyster { namespace Collision3D { namespace Utility { // no intersection return false; } - sumPoints += s * ( centerSeperation * eA / edgeSeperation ); + worldPointOfContact += s * ( centerSeperation * eA / edgeSeperation ); s = rotationB.v[2]; centerSeperation = t.Dot(s); @@ -290,7 +290,7 @@ namespace Oyster { namespace Collision3D { namespace Utility { // no intersection return false; } - sumPoints += s * ( centerSeperation * eA / edgeSeperation ); // enough point of contact data gathered for approximative result. + worldPointOfContact += s * ( centerSeperation * eA / edgeSeperation ); // enough point of contact data gathered for approximative result. s = Float4( Float3::standard_unit_x.Cross(rotationB.v[0].xyz), 0.0f ); centerSeperation = t.Dot(s); @@ -373,7 +373,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - worldPointOfContact = (0.5f * sumPoints).xyz; + worldPointOfContact *= 0.5f; return true; } } @@ -791,20 +791,31 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Box &boxA, const BoxAxisAligned &boxB ) { // by Dan Andersson - Float3 alignedOffsetBoundaries = (boxB.maxVertex - boxB.minVertex) * 0.5f, - offset = boxA.center - Average( boxB.minVertex, boxB.maxVertex ); - return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries, boxA.boundingOffset, boxA.rotation, offset ); + Float4 alignedOffsetBoundaries = (Float4(boxB.maxVertex, 1.0f) - Float4(boxB.minVertex, 1.0f)) * 0.5f, + offset = Float4(boxA.center, 1.0f) - Average( Float4(boxB.maxVertex, 1.0f), Float4(boxB.minVertex, 1.0f) ); + return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries.xyz, boxA.boundingOffset, boxA.rotation, offset ); } bool Intersect( const Box &boxA, const Box &boxB ) { // by Dan Andersson - Float4x4 orientationA = OrientationMatrix(boxA.rotation, boxA.center), - orientationB = OrientationMatrix(boxB.rotation, boxB.center), - invOrientationA = InverseOrientationMatrix( orientationA ); + Float4x4 rotationB = TransformMatrix( InverseRotationMatrix(boxA.rotation), boxB.rotation ); + Float4 posB = boxB.center - boxA.center; - orientationB = TransformMatrix( invOrientationA, orientationB ); + return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( boxA.boundingOffset, boxB.boundingOffset, rotationB, posB ); + } - return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( boxA.boundingOffset, boxB.boundingOffset, ExtractRotationMatrix(orientationB), orientationB.v[3].xyz ); + bool Intersect( const Box &boxA, const Box &boxB, Float3 &worldPointOfContact ) + { + Float4x4 rotationB = TransformMatrix( InverseRotationMatrix(boxA.rotation), boxB.rotation ); + Float4 posB = boxB.center - boxA.center; + + Float4 pointOfContact; + if( Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( boxA.boundingOffset, boxB.boundingOffset, rotationB, posB, pointOfContact ) ) + { + TransformVector( boxA.rotation, pointOfContact, pointOfContact ); + return true; + } + else return false; } bool Intersect( const Frustrum &frustrum, const Point &point ) diff --git a/Code/OysterPhysics3D/OysterCollision3D.h b/Code/OysterPhysics3D/OysterCollision3D.h index 6ec28625..5234b31e 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.h +++ b/Code/OysterPhysics3D/OysterCollision3D.h @@ -76,6 +76,7 @@ namespace Oyster { namespace Collision3D { namespace Utility // bool Intersect( const Box &box, const Triangle &triangle, ? ); bool Intersect( const Box &boxA, const BoxAxisAligned &boxB ); bool Intersect( const Box &boxA, const Box &boxB ); + bool Intersect( const Box &boxA, const Box &boxB, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Frustrum &frustrum, const Point &point ); bool Intersect( const Frustrum &frustrum, const Ray &ray, ::Oyster::Math::Float &connectDistance ); From e8952dc739102c2575cfbecb58b418030082ed8e Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Tue, 17 Dec 2013 14:14:54 +0100 Subject: [PATCH 13/42] CollideAble implementations updated --- Code/OysterPhysics3D/Box.cpp | 49 ++++++++++------- Code/OysterPhysics3D/BoxAxisAligned.cpp | 41 +++++++------- Code/OysterPhysics3D/Frustrum.cpp | 46 ++++++++-------- Code/OysterPhysics3D/OysterCollision3D.cpp | 16 +++++- Code/OysterPhysics3D/OysterCollision3D.h | 1 + Code/OysterPhysics3D/Plane.cpp | 61 +++++++++++---------- Code/OysterPhysics3D/Point.cpp | 49 +++++++++-------- Code/OysterPhysics3D/Ray.cpp | 44 +++++++-------- Code/OysterPhysics3D/Sphere.cpp | 63 ++++++++++++---------- Code/OysterPhysics3D/Universe.cpp | 41 +++++++------- 10 files changed, 231 insertions(+), 180 deletions(-) diff --git a/Code/OysterPhysics3D/Box.cpp b/Code/OysterPhysics3D/Box.cpp index 59c98372..7d67754c 100644 --- a/Code/OysterPhysics3D/Box.cpp +++ b/Code/OysterPhysics3D/Box.cpp @@ -41,35 +41,48 @@ bool Box::Intersects( const ICollideable &target ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target ); - case Type_plane: return Utility::Intersect( *this, *(Plane*)&target ); - // case Type_triangle: return false; // TODO: : - case Type_box_axis_aligned: return Utility::Intersect( *this, *(BoxAxisAligned*)&target ); - case Type_box: return Utility::Intersect( *this, *(Box*)&target ); - // case Type_frustrum: return false; // TODO: : - default: return false; + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target ); + case Type_plane: return Utility::Intersect( *this, (const Plane&)target ); + // case Type_triangle: return false; // TODO: : + case Type_box_axis_aligned: return Utility::Intersect( *this, (const BoxAxisAligned&)target ); + case Type_box: return Utility::Intersect( *this, (const Box&)target ); + // case Type_frustrum: return false; // TODO: : + default: return false; } } bool Box::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const { - //! @todo TODO: implement stub properly - return this->Intersects( target ); + switch( target.type ) + { + case Type_universe: + worldPointOfContact = this->center; + return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target, worldPointOfContact ); + case Type_plane: return Utility::Intersect( *this, (const Plane&)target, worldPointOfContact ); + // case Type_triangle: return false; // TODO: : + case Type_box_axis_aligned: return Utility::Intersect( *this, (const BoxAxisAligned&)target, worldPointOfContact ); + case Type_box: return Utility::Intersect( *this, (const Box&)target, worldPointOfContact ); + // case Type_frustrum: return false; // TODO: : + default: return false; + } } bool Box::Contains( const ICollideable &target ) const { switch( target.type ) { - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - // case Type_sphere: return false; // TODO: - // case Type_triangle: return false; // TODO: - // case Type_box_axis_aligned: return false; // TODO: - // case Type_box: return false; // TODO: - // case Type_frustrum: return false; // TODO: + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + //case Type_sphere: return false; // TODO: + //case Type_triangle: return false; // TODO: + //case Type_box_axis_aligned: return false; // TODO: + //case Type_box: return false; // TODO: + //case Type_frustrum: return false; // TODO: default: return false; } } \ No newline at end of file diff --git a/Code/OysterPhysics3D/BoxAxisAligned.cpp b/Code/OysterPhysics3D/BoxAxisAligned.cpp index f1fc2a78..a0ebdd63 100644 --- a/Code/OysterPhysics3D/BoxAxisAligned.cpp +++ b/Code/OysterPhysics3D/BoxAxisAligned.cpp @@ -44,16 +44,16 @@ bool BoxAxisAligned::Intersects( const ICollideable &target ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target ); - case Type_plane: return Utility::Intersect( *this, *(Plane*)&target ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *this, *(BoxAxisAligned*)&target ); - // case Type_box: return false; // TODO: - // case Type_frustrum: return false; // TODO: - default: return false; + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target ); + case Type_plane: return Utility::Intersect( *this, (const Plane&)target ); + // case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( *this, (const BoxAxisAligned&)target ); + // case Type_box: return false; // TODO: + // case Type_frustrum: return false; // TODO: + default: return false; } } @@ -65,14 +65,15 @@ bool BoxAxisAligned::Intersects( const ICollideable &target, Float3 &worldPointO bool BoxAxisAligned::Contains( const ICollideable &target ) const { - switch( target.type ) - { - // case Type_point: return false; // TODO: - // case Type_sphere: return false; // TODO: - // case Type_triangle: return false; // TODO: - // case Type_box_axis_aligned: return false; // TODO: - // case Type_box: return false; // TODO: - // case Type_frustrum: return false; // TODO: - default: return false; - } + //switch( target.type ) + //{ + ////case Type_point: return false; // TODO: + ////case Type_sphere: return false; // TODO: + ////case Type_triangle: return false; // TODO: + ////case Type_box_axis_aligned: return false; // TODO: + ////case Type_box: return false; // TODO: + ////case Type_frustrum: return false; // TODO: + //default: return false; + //} + return false; } \ No newline at end of file diff --git a/Code/OysterPhysics3D/Frustrum.cpp b/Code/OysterPhysics3D/Frustrum.cpp index 39e27318..e8aa65fa 100644 --- a/Code/OysterPhysics3D/Frustrum.cpp +++ b/Code/OysterPhysics3D/Frustrum.cpp @@ -198,23 +198,25 @@ void Frustrum::WriteToByte( unsigned int &nextIndex, unsigned char targetMem[] ) } ::Utility::DynamicMemory::UniquePointer Frustrum::Clone( ) const -{ return ::Utility::DynamicMemory::UniquePointer( new Frustrum(*this) ); } +{ + return ::Utility::DynamicMemory::UniquePointer( new Frustrum(*this) ); +} bool Frustrum::Intersects( const ICollideable &target ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target ); - case Type_plane: return Utility::Intersect( *this, *(Plane*)&target ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *this, *(BoxAxisAligned*)&target ); - case Type_box: return Utility::Intersect( *this, *(Box*)&target ); - case Type_frustrum: return Utility::Intersect( *this, *(Frustrum*)&target ); - // case Type_line: return false; // TODO: - default: return false; + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target ); + case Type_plane: return Utility::Intersect( *this, (const Plane&)target ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( *this, (const BoxAxisAligned&)target ); + case Type_box: return Utility::Intersect( *this, (const Box&)target ); + case Type_frustrum: return Utility::Intersect( *this, (const Frustrum&)target ); + //case Type_line: return false; // TODO: + default: return false; } } @@ -228,15 +230,15 @@ bool Frustrum::Contains( const ICollideable &target ) const { switch( target.type ) { - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - // case Type_ray: return false; // TODO: - // case Type_sphere: return false; // TODO: - // case Type_plane: return false; // TODO: - // case Type_triangle: return false; // TODO: - // case Type_box_axis_aligned: return false; // TODO: - // case Type_box: return false; // TODO: - // case Type_frustrum: return false; // TODO: - // case Type_line: return false; // TODO: - default: return false; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + //case Type_ray: return false; // TODO: + //case Type_sphere: return false; // TODO: + //case Type_plane: return false; // TODO: + //case Type_triangle: return false; // TODO: + //case Type_box_axis_aligned: return false; // TODO: + //case Type_box: return false; // TODO: + //case Type_frustrum: return false; // TODO: + //case Type_line: return false; // TODO: + default: return false; } } \ No newline at end of file diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 98aacd24..9f8a9fe1 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -796,6 +796,20 @@ namespace Oyster { namespace Collision3D { namespace Utility return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries.xyz, boxA.boundingOffset, boxA.rotation, offset ); } + bool Intersect( const Box &boxA, const BoxAxisAligned &boxB, ::Oyster::Math::Float3 &worldPointOfContact ) + { // by Dan Andersson + Float4 alignedOffsetBoundaries = (Float4(boxB.maxVertex, 1.0f) - Float4(boxB.minVertex, 1.0f)) * 0.5f, + offset = Float4(boxA.center, 1.0f) - Average( Float4(boxB.maxVertex, 1.0f), Float4(boxB.minVertex, 1.0f) ); + + Float4 pointOfContact; + if( Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries.xyz, boxA.boundingOffset, boxA.rotation, offset, pointOfContact ) ) + { + worldPointOfContact = pointOfContact.xyz; + return true; + } + else return false; + } + bool Intersect( const Box &boxA, const Box &boxB ) { // by Dan Andersson Float4x4 rotationB = TransformMatrix( InverseRotationMatrix(boxA.rotation), boxB.rotation ); @@ -812,7 +826,7 @@ namespace Oyster { namespace Collision3D { namespace Utility Float4 pointOfContact; if( Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( boxA.boundingOffset, boxB.boundingOffset, rotationB, posB, pointOfContact ) ) { - TransformVector( boxA.rotation, pointOfContact, pointOfContact ); + worldPointOfContact = TransformVector( boxA.rotation, pointOfContact, pointOfContact ).xyz; return true; } else return false; diff --git a/Code/OysterPhysics3D/OysterCollision3D.h b/Code/OysterPhysics3D/OysterCollision3D.h index 5234b31e..603dfc7c 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.h +++ b/Code/OysterPhysics3D/OysterCollision3D.h @@ -75,6 +75,7 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Box &box, const Plane &plane, ::Oyster::Math::Float3 &worldPointOfContact ); // bool Intersect( const Box &box, const Triangle &triangle, ? ); bool Intersect( const Box &boxA, const BoxAxisAligned &boxB ); + bool Intersect( const Box &boxA, const BoxAxisAligned &boxB, ::Oyster::Math::Float3 &worldPointOfContact ); bool Intersect( const Box &boxA, const Box &boxB ); bool Intersect( const Box &boxA, const Box &boxB, ::Oyster::Math::Float3 &worldPointOfContact ); diff --git a/Code/OysterPhysics3D/Plane.cpp b/Code/OysterPhysics3D/Plane.cpp index 87d20c84..863b0c5a 100644 --- a/Code/OysterPhysics3D/Plane.cpp +++ b/Code/OysterPhysics3D/Plane.cpp @@ -30,40 +30,45 @@ Plane & Plane::operator = ( const Plane &plane ) } ::Utility::DynamicMemory::UniquePointer Plane::Clone( ) const -{ return ::Utility::DynamicMemory::UniquePointer( new Plane(*this) ); } +{ + return ::Utility::DynamicMemory::UniquePointer( new Plane(*this) ); +} bool Plane::Intersects( const ICollideable &target ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target ); - case Type_plane: return Utility::Intersect( *this, *(Plane*)&target ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this ); - case Type_frustrum: return false; // TODO: - case Type_line: return false; // TODO: - default: return false; + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target ); + case Type_plane: return Utility::Intersect( *this, (const Plane&)target ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this ); + case Type_box: return Utility::Intersect( (const Box&)target, *this ); + //case Type_frustrum: return false; // TODO: + //case Type_line: return false; // TODO: + default: return false; } } -bool Plane::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Plane::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); - case Type_frustrum: return false; // TODO: - default: worldPointOfContact = NULL; + case Type_universe: + worldPointOfContact = this->normal * this->phasing; + return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target, worldPointOfContact ); + case Type_plane: return Utility::Intersect( (const Plane&)target, *this, worldPointOfContact ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( (const Box&)target, *this, worldPointOfContact ); + //case Type_frustrum: return false; // TODO: + default: + worldPointOfContact = Float3::null; return false; } } @@ -72,10 +77,10 @@ bool Plane::Contains( const ICollideable &target ) const { switch( target.type ) { - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_ray: return Utility::Contains( *this, *(Ray*)&target ); - case Type_plane: return Utility::Contains( *this, *(Plane*)&target ); - // case Type_triangle: return false; // TODO: - default: return false; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_ray: return Utility::Contains( *this, (const Ray&)target ); + case Type_plane: return Utility::Contains( *this, (const Plane&)target ); + //case Type_triangle: return false; // TODO: + default: return false; } } \ No newline at end of file diff --git a/Code/OysterPhysics3D/Point.cpp b/Code/OysterPhysics3D/Point.cpp index 8b1ab081..7a40c7cc 100644 --- a/Code/OysterPhysics3D/Point.cpp +++ b/Code/OysterPhysics3D/Point.cpp @@ -35,33 +35,36 @@ bool Point::Intersects( const ICollideable &target ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_ray: return Utility::Intersect( *(Ray*)&target, *this, ((Ray*)&target)->collisionDistance ); - case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this ); - //case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this ); - case Type_frustrum: return false; // TODO: - default: return false; + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_ray: return Utility::Intersect( (const Ray&)target, *this, ((const Ray&)target).collisionDistance ); + case Type_sphere: return Utility::Intersect( (const Sphere&)target, *this ); + case Type_plane: return Utility::Intersect( (const Plane&)target, *this ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this ); + case Type_box: return Utility::Intersect( (const Box&)target, *this ); + //case Type_frustrum: return false; // TODO: + default: return false; } } -bool Point::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Point::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); - case Type_ray: return Utility::Intersect( *(Ray*)&target, *this, ((Ray*)&target)->collisionDistance, worldPointOfContact ); - case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, worldPointOfContact ); - //case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); - case Type_frustrum: return false; // TODO: - default: worldPointOfContact = NULL; + case Type_universe: + worldPointOfContact = this->center; + return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( (const Ray&)target, *this, ((const Ray&)target).collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( (const Sphere&)target, *this, worldPointOfContact ); + case Type_plane: return Utility::Intersect( (const Plane&)target, *this, worldPointOfContact ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( (const Box&)target, *this, worldPointOfContact ); + case Type_frustrum: return false; // TODO: + default: + worldPointOfContact = Float3::null; return false; } } @@ -70,7 +73,7 @@ bool Point::Contains( const ICollideable &target ) const { switch( target.type ) { - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - default: return false; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + default: return false; } } \ No newline at end of file diff --git a/Code/OysterPhysics3D/Ray.cpp b/Code/OysterPhysics3D/Ray.cpp index d1e81974..6d65fe7f 100644 --- a/Code/OysterPhysics3D/Ray.cpp +++ b/Code/OysterPhysics3D/Ray.cpp @@ -43,34 +43,36 @@ bool Ray::Intersects( const ICollideable &target ) const case Type_universe: this->collisionDistance = 0.0f; return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target, this->collisionDistance ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, this->collisionDistance, ((Ray*)&target)->collisionDistance ); - case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, this->collisionDistance ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, this->collisionDistance ); + case Type_point: return Utility::Intersect( *this, (const Point&)target, this->collisionDistance ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, this->collisionDistance, ((const Ray&)target).collisionDistance ); + case Type_sphere: return Utility::Intersect( (const Sphere&)target, *this, this->collisionDistance ); + case Type_plane: return Utility::Intersect( (const Plane&)target, *this, this->collisionDistance ); // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, this->collisionDistance ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, this->collisionDistance ); - case Type_frustrum: return false; // TODO: - default: return false; + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this, this->collisionDistance ); + case Type_box: return Utility::Intersect( (const Box&)target, *this, this->collisionDistance ); + case Type_frustrum: return false; // TODO: + default: return false; } } -bool Ray::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Ray::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const { switch( target.type ) { case Type_universe: this->collisionDistance = 0.0f; + worldPointOfContact = this->origin; return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target, this->collisionDistance, worldPointOfContact ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, this->collisionDistance, ((Ray*)&target)->collisionDistance, worldPointOfContact ); - case Type_sphere: return Utility::Intersect( *(Sphere*)&target, *this, this->collisionDistance, worldPointOfContact ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, this->collisionDistance, worldPointOfContact ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, this->collisionDistance, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, this->collisionDistance, worldPointOfContact ); - case Type_frustrum: return false; // TODO: - default: worldPointOfContact = NULL; + case Type_point: return Utility::Intersect( *this, (const Point&)target, this->collisionDistance, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, this->collisionDistance, ((const Ray&)target).collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( (const Sphere&)target, *this, this->collisionDistance, worldPointOfContact ); + case Type_plane: return Utility::Intersect( (const Plane&)target, *this, this->collisionDistance, worldPointOfContact ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this, this->collisionDistance, worldPointOfContact ); + case Type_box: return Utility::Intersect( (const Box&)target, *this, this->collisionDistance, worldPointOfContact ); + //case Type_frustrum: return false; // TODO: + default: + worldPointOfContact = Float3::null; return false; } } @@ -79,8 +81,8 @@ bool Ray::Contains( const ICollideable &target ) const { switch( target.type ) { - case Type_point: return Utility::Intersect( *this, *(Point*)&target, this->collisionDistance ); - case Type_ray: return Utility::Contains( *this, *(Ray*)&target ); - default: return false; + case Type_point: return Utility::Intersect( *this, (const Point&)target, this->collisionDistance ); + case Type_ray: return Utility::Contains( *this, (const Ray&)target ); + default: return false; } } \ No newline at end of file diff --git a/Code/OysterPhysics3D/Sphere.cpp b/Code/OysterPhysics3D/Sphere.cpp index efec7c20..8c786f54 100644 --- a/Code/OysterPhysics3D/Sphere.cpp +++ b/Code/OysterPhysics3D/Sphere.cpp @@ -26,39 +26,44 @@ Sphere & Sphere::operator = ( const Sphere &sphere ) } ::Utility::DynamicMemory::UniquePointer Sphere::Clone( ) const -{ return ::Utility::DynamicMemory::UniquePointer( new Sphere(*this) ); } +{ + return ::Utility::DynamicMemory::UniquePointer( new Sphere(*this) ); +} bool Sphere::Intersects( const ICollideable &target ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target ); - case Type_plane: return Utility::Intersect( *(Plane*)&target, *this ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this ); - case Type_frustrum: return false; // TODO: - default: return false; + case Type_universe: return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target ); + case Type_plane: return Utility::Intersect( (const Plane&)target, *this ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this ); + case Type_box: return Utility::Intersect( (const Box&)target, *this ); + //case Type_frustrum: return false; // TODO: + default: return false; } } -bool Sphere::Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const +bool Sphere::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const { switch( target.type ) { - case Type_universe: return true; - case Type_point: return Utility::Intersect( *this, *(Point*)&target, worldPointOfContact ); - case Type_ray: return Utility::Intersect( *this, *(Ray*)&target, ((Ray*)&target)->collisionDistance, worldPointOfContact ); - case Type_sphere: return Utility::Intersect( *this, *(Sphere*)&target, worldPointOfContact ); - //case Type_plane: return Utility::Intersect( *(Plane*)&target, *this, worldPointOfContact ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return Utility::Intersect( *(BoxAxisAligned*)&target, *this, worldPointOfContact ); - case Type_box: return Utility::Intersect( *(Box*)&target, *this, worldPointOfContact ); - case Type_frustrum: return false; // TODO: - default: worldPointOfContact = Float3::null; + case Type_universe: + worldPointOfContact = this->center; + return true; + case Type_point: return Utility::Intersect( *this, (const Point&)target, worldPointOfContact ); + case Type_ray: return Utility::Intersect( *this, (const Ray&)target, ((const Ray&)target).collisionDistance, worldPointOfContact ); + case Type_sphere: return Utility::Intersect( *this, (const Sphere&)target, worldPointOfContact ); + case Type_plane: return Utility::Intersect( (const Plane&)target, *this, worldPointOfContact ); + //case Type_triangle: return false; // TODO: + case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this, worldPointOfContact ); + case Type_box: return Utility::Intersect( (const Box&)target, *this, worldPointOfContact ); + //case Type_frustrum: return false; // TODO: + default: + worldPointOfContact = Float3::null; return false; } } @@ -67,12 +72,12 @@ bool Sphere::Contains( const ICollideable &target ) const { switch( target.type ) { - case Type_point: return Utility::Intersect( *this, *(Point*)&target ); - case Type_sphere: return Utility::Contains( *this, *(Sphere*)&target ); - // case Type_triangle: return false; // TODO: - case Type_box_axis_aligned: return false; // TODO: - case Type_box: return false; // TODO: - case Type_frustrum: return false; // TODO: - default: return false; + case Type_point: return Utility::Intersect( *this, (const Point&)target ); + case Type_sphere: return Utility::Contains( *this, (const Sphere&)target ); + //case Type_triangle: return false; // TODO: + //case Type_box_axis_aligned: return false; // TODO: + //case Type_box: return false; // TODO: + //case Type_frustrum: return false; // TODO: + default: return false; } } \ No newline at end of file diff --git a/Code/OysterPhysics3D/Universe.cpp b/Code/OysterPhysics3D/Universe.cpp index f1887e0b..c2308690 100644 --- a/Code/OysterPhysics3D/Universe.cpp +++ b/Code/OysterPhysics3D/Universe.cpp @@ -10,20 +10,24 @@ Universe::Universe() : ICollideable(Type_universe) {} Universe::~Universe() {} Universe & Universe::operator = ( const Universe &universe ) -{ return *this; } +{ + return *this; +} UniquePointer Universe::Clone( ) const -{ return UniquePointer( new Universe(*this) ); } +{ + return UniquePointer( new Universe(*this) ); +} bool Universe::Intersects( const ICollideable &target ) const { // universe touches everything switch( target.type ) { case Type_ray: - ((Ray*)&target)->collisionDistance = 0.0f; + ((const Ray&)target).collisionDistance = 0.0f; break; case Type_line: - ((Line*)&target)->ray.collisionDistance = 0.0f; + ((const Line&)target).ray.collisionDistance = 0.0f; break; default: break; } @@ -36,32 +40,32 @@ bool Universe::Intersects( const ICollideable &target, Float3 &worldPointOfConta switch( target.type ) { case Type_point: - worldPointOfContact = ((Point*)&target)->center; + worldPointOfContact = ((const Point&)target).center; break; case Type_sphere: - worldPointOfContact = ((Sphere*)&target)->center; + worldPointOfContact = ((const Sphere&)target).center; break; case Type_plane: - worldPointOfContact = ((Plane*)&target)->normal * ((Plane*)&target)->phasing; + worldPointOfContact = ((const Plane&)target).normal * ((const Plane&)target).phasing; break; case Type_box_axis_aligned: - worldPointOfContact = Average( ((BoxAxisAligned*)&target)->minVertex, ((BoxAxisAligned*)&target)->maxVertex ); + worldPointOfContact = Average( ((const BoxAxisAligned&)target).minVertex, ((const BoxAxisAligned&)target).maxVertex ); break; case Type_box: - worldPointOfContact = ((Box*)&target)->center; + worldPointOfContact = ((const Box&)target).center; break; case Type_frustrum: - worldPointOfContact = Average( ((Frustrum*)&target)->leftPlane.normal * ((Frustrum*)&target)->leftPlane.phasing, ((Frustrum*)&target)->rightPlane.normal * ((Frustrum*)&target)->rightPlane.phasing ); - worldPointOfContact = Average( worldPointOfContact, Average( ((Frustrum*)&target)->bottomPlane.normal * ((Frustrum*)&target)->bottomPlane.phasing, ((Frustrum*)&target)->topPlane.normal * ((Frustrum*)&target)->topPlane.phasing ) ); - worldPointOfContact = Average( worldPointOfContact, Average( ((Frustrum*)&target)->nearPlane.normal * ((Frustrum*)&target)->nearPlane.phasing, ((Frustrum*)&target)->farPlane.normal * ((Frustrum*)&target)->farPlane.phasing ) ); + worldPointOfContact = Average( ((const Frustrum&)target).leftPlane.normal * ((const Frustrum&)target).leftPlane.phasing, ((const Frustrum&)target).rightPlane.normal * ((const Frustrum&)target).rightPlane.phasing ); + worldPointOfContact = Average( worldPointOfContact, Average( ((const Frustrum&)target).bottomPlane.normal * ((const Frustrum&)target).bottomPlane.phasing, ((const Frustrum&)target).topPlane.normal * ((const Frustrum&)target).topPlane.phasing ) ); + worldPointOfContact = Average( worldPointOfContact, Average( ((const Frustrum&)target).nearPlane.normal * ((const Frustrum&)target).nearPlane.phasing, ((const Frustrum&)target).farPlane.normal * ((const Frustrum&)target).farPlane.phasing ) ); break; case Type_ray: - ((Ray*)&target)->collisionDistance = 0.0f; - worldPointOfContact = ((Ray*)&target)->origin; + ((const Ray&)target).collisionDistance = 0.0f; + worldPointOfContact = ((const Ray&)target).origin; break; case Type_line: - ((Line*)&target)->ray.collisionDistance = 0.0f; - worldPointOfContact = ((Line*)&target)->ray.origin; + ((const Line&)target).ray.collisionDistance = 0.0f; + worldPointOfContact = ((const Line&)target).ray.origin; break; default: worldPointOfContact = Float3::null; @@ -72,5 +76,6 @@ bool Universe::Intersects( const ICollideable &target, Float3 &worldPointOfConta } bool Universe::Contains( const ICollideable &target ) const -{ return true; } // universe contains everything - +{ // universe contains everything + return true; +} \ No newline at end of file From 9cdbe2c8613099b4b0c224a3c1923f4edd0e2e3e Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Wed, 18 Dec 2013 08:57:10 +0100 Subject: [PATCH 14/42] Added algorithms for collision stubs --- Code/OysterPhysics3D/OysterCollision3D.cpp | 72 ++++++++++++++-------- 1 file changed, 45 insertions(+), 27 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 9f8a9fe1..835be03a 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -422,7 +422,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; // Passed all tests, is in same position } - bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; @@ -458,13 +458,13 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; } - bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; @@ -512,34 +512,35 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; } - bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; } - bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3& worldPointOfContact ) - { - //Float3 C = sphereA.center; - //C -= sphereB.center; - //Float r = (sphereA.radius + sphereB.radius); + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3 &worldPointOfContact ) + { // by Robin Engman + Float3 C = sphereA.center; + C -= sphereB.center; + Float r = sphereA.radius + sphereB.radius; - //if (r*r >= C.Dot(C)) - //{ - // Float distance; + if ( r*r >= C.Dot(C) ) + { + Float distance; + Ray ray(sphereB.center, C.Normalize()); - // Intersect(sphereA, Ray(sphereB.center, C.Normalize()), distance); + Intersect( sphereA, ray, distance ); - // worldPointOfContact = sphereB.center+C.Normalize()*distance; + worldPointOfContact = ray.origin + ray.direction*distance; - // return true; // Intersect detected! - //} + return true; + } return false; } @@ -587,25 +588,25 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; // none parallell planes ALWAYS intersects somewhere } - bool Intersect( const Plane &plane, const Point &point, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Plane &plane, const Point &point, const ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; } - bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; } - bool Intersect( const Plane &plane, const Sphere &sphere, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Plane &plane, const Sphere &sphere, const ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; } - bool Intersect( const Plane &planeA, const Plane &planeB, const ::Oyster::Math::Float3& worldPointOfContact ) + bool Intersect( const Plane &planeA, const Plane &planeB, const ::Oyster::Math::Float3 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; @@ -668,9 +669,18 @@ namespace Oyster { namespace Collision3D { namespace Utility } bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, Float3 &worldPointOfContact ) - { - //! @todo TODO: implement stub - return Intersect( box, sphere ); + { // by Robin Engman + + if(Intersect(box, sphere)) + { + Float distance; + Float3 boxMiddle = (box.maxVertex - box.minVertex)*0.5f; + Ray ray(boxMiddle, Float3(sphere.center - boxMiddle).Normalize()); + Intersect( sphere, ray, distance ); + worldPointOfContact = ray.origin + ray.direction * distance; + } + + return false; } bool Intersect( const BoxAxisAligned &box, const Plane &plane ) @@ -769,9 +779,17 @@ namespace Oyster { namespace Collision3D { namespace Utility } bool Intersect( const Box &box, const Sphere &sphere, Float3 &worldPointOfContact ) - { - //! @todo TODO: implement stub - return Intersect( box, sphere ); + { // by Robin Engman + if( Intersect(box, sphere) ) + { + Float distance; + Ray ray( sphere.center, Float3(box.center - sphere.center) ); + + Intersect( box, ray, distance ); + worldPointOfContact = ray.origin + ray.direction*distance; + } + + return false; } bool Intersect( const Box &box, const Plane &plane ) From dbb0c3843236d5d2bab8368863889f2ec21078c4 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Wed, 18 Dec 2013 08:57:27 +0100 Subject: [PATCH 15/42] Big patch Loads of collision response related implementations/edits --- Bin/DLL/GamePhysics_x86D.pdb | Bin 0 -> 1870848 bytes .../Implementation/PhysicsAPI_Impl.cpp | 64 +++++-- .../Implementation/PhysicsAPI_Impl.h | 1 - .../Implementation/SimpleRigidBody.cpp | 34 ++-- .../Implementation/SimpleRigidBody.h | 7 +- .../Implementation/SphericalRigidBody.cpp | 36 ++-- .../Implementation/SphericalRigidBody.h | 7 +- Code/GamePhysics/PhysicsAPI.h | 44 ++--- Code/GamePhysics/PhysicsFormula.h | 4 +- Code/GamePhysics/PhysicsStructs-Impl.h | 78 +++++++- Code/GamePhysics/PhysicsStructs.h | 23 ++- Code/OysterPhysics3D/Box.cpp | 6 +- Code/OysterPhysics3D/Box.h | 12 +- Code/OysterPhysics3D/BoxAxisAligned.cpp | 12 +- Code/OysterPhysics3D/BoxAxisAligned.h | 6 +- Code/OysterPhysics3D/Frustrum.cpp | 14 +- Code/OysterPhysics3D/Frustrum.h | 2 +- Code/OysterPhysics3D/ICollideable.h | 2 +- Code/OysterPhysics3D/Line.cpp | 2 +- Code/OysterPhysics3D/Line.h | 2 +- Code/OysterPhysics3D/OysterCollision3D.cpp | 179 +++++++++--------- Code/OysterPhysics3D/OysterCollision3D.h | 40 ++-- Code/OysterPhysics3D/Particle.cpp | 8 +- Code/OysterPhysics3D/Plane.cpp | 6 +- Code/OysterPhysics3D/Plane.h | 10 +- Code/OysterPhysics3D/Point.cpp | 9 +- Code/OysterPhysics3D/Point.h | 7 +- Code/OysterPhysics3D/Ray.cpp | 16 +- Code/OysterPhysics3D/Ray.h | 6 +- Code/OysterPhysics3D/RigidBody.cpp | 34 ++-- Code/OysterPhysics3D/Sphere.cpp | 16 +- Code/OysterPhysics3D/Sphere.h | 7 +- Code/OysterPhysics3D/Universe.cpp | 2 +- Code/OysterPhysics3D/Universe.h | 2 +- 34 files changed, 412 insertions(+), 286 deletions(-) create mode 100644 Bin/DLL/GamePhysics_x86D.pdb diff --git a/Bin/DLL/GamePhysics_x86D.pdb b/Bin/DLL/GamePhysics_x86D.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d19b70c22ccebd6d2c13a11b970152858509fd24 GIT binary patch literal 1870848 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

1c+ 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

^b=y88w#)~9FsvrzOqZAy*v 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

b+!p;r)Ea*k!lvo0*L9x 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 literal 0 HcmV?d00001 diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index d01d95f7..02f5317b 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -17,11 +17,51 @@ namespace auto proto = worldScene.GetCustomBody( protoTempRef ); auto deuter = worldScene.GetCustomBody( deuterTempRef ); - float deltaWhen; - Float3 worldWhere; - if( proto->Intersects(*deuter, 1.0f, deltaWhen, worldWhere) ) + Float4 worldPointOfContact; + if( proto->Intersects(*deuter, worldPointOfContact) ) { - proto->CallSubscription( proto, deuter ); + switch( proto->CallSubscription(proto, deuter) ) + { + case ICustomBody::SubscriptMessage_ignore_collision_response: + break; + default: + { // Apply CollisionResponse in pure gather pattern + ICustomBody::State protoState; proto->GetState( protoState ); + ICustomBody::State deuterState; proto->GetState( deuterState ); + + Float4 protoG = protoState.GetLinearMomentum( worldPointOfContact ), + deuterG = deuterState.GetLinearMomentum( worldPointOfContact ); + + // calc from perspective of deuter + Float4 normal; deuter->GetNormalAt( worldPointOfContact, normal ); + Float protoG_Magnitude = protoG.Dot( normal ), + deuterG_Magnitude = deuterG.Dot( normal ); + + // bounce + Float4 sumJ = normal * Formula::CollisionResponse::Impulse( deuterState.GetRestitutionCoeff(), + deuterState.GetMass(), deuterG_Magnitude, + protoState.GetMass(), protoG_Magnitude ); + + // @todo TODO: friction + // sumJ -= ; + + // calc from perspective of proto + proto->GetNormalAt( worldPointOfContact, normal ); + protoG_Magnitude = protoG.Dot( normal ), + deuterG_Magnitude = deuterG.Dot( normal ); + + // bounce + sumJ += normal * Formula::CollisionResponse::Impulse( protoState.GetRestitutionCoeff(), + protoState.GetMass(), protoG_Magnitude, + deuterState.GetMass(), deuterG_Magnitude ); + // @todo TODO: friction + // sumJ += ; + + protoState.ApplyImpulse( sumJ, worldPointOfContact, normal ); + proto->SetState( protoState ); + } + break; + } } } } @@ -71,10 +111,16 @@ void API_Impl::SetSubscription( API::EventAction_Destruction functionPointer ) void API_Impl::Update() { /** @todo TODO: Update is a temporary solution .*/ + + + ::std::vector updateList; auto proto = this->worldScene.Sample( Universe(), updateList ).begin(); for( ; proto != updateList.end(); ++proto ) { + // Step 1: @todo TODO: Apply Gravity + + // Step 2: Apply Collision Response this->worldScene.Visit( *proto, OnPossibleCollision ); } @@ -135,16 +181,6 @@ void API_Impl::ApplyForceAt( const ICustomBody* objRef, const Float3 &worldPos, } } -void API_Impl::ApplyCollisionResponse( const ICustomBody* objRefA, const ICustomBody* objRefB, Float &deltaWhen, Float3 &worldPointOfContact ) -{ - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRefA ); - if( tempRef != this->worldScene.invalid_ref ) - { - //! @todo TODO: implement stub - this->worldScene.SetAsAltered( tempRef ); - } -} - void API_Impl::SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const Float4x4 &localI ) { // deprecated unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h index 5de9c05a..aea4c013 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h @@ -31,7 +31,6 @@ namespace Oyster void DestroyObject( const ICustomBody* objRef ); void ApplyForceAt( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &worldF ); - void ApplyCollisionResponse( const ICustomBody* objRefA, const ICustomBody* objRefB, ::Oyster::Math::Float &deltaWhen, ::Oyster::Math::Float3 &worldPointOfContact ); void SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ); void SetMomentOfInertiaTensor_KeepMomentum( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ); diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 80e352ea..49309a99 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -44,12 +44,12 @@ UniquePointer SimpleRigidBody::Clone() const SimpleRigidBody::State SimpleRigidBody::GetState() const { - return State( this->rigid.box.boundingOffset, this->rigid.box.center, AngularAxis(this->rigid.box.rotation).xyz ); + return State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); } SimpleRigidBody::State & SimpleRigidBody::GetState( SimpleRigidBody::State &targetMem ) const { - return targetMem = State( this->rigid.box.boundingOffset, this->rigid.box.center, AngularAxis(this->rigid.box.rotation).xyz ); + return targetMem = State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); } void SimpleRigidBody::SetState( const SimpleRigidBody::State &state ) @@ -59,9 +59,9 @@ void SimpleRigidBody::SetState( const SimpleRigidBody::State &state ) this->rigid.box.rotation = state.GetRotation(); } -void SimpleRigidBody::CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) +ICustomBody::SubscriptMessage SimpleRigidBody::CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) { - this->collisionAction( proto, deuter ); + return this->collisionAction( proto, deuter ); } bool SimpleRigidBody::IsAffectedByGravity() const @@ -69,31 +69,27 @@ bool SimpleRigidBody::IsAffectedByGravity() const return !this->ignoreGravity; } -bool SimpleRigidBody::Intersects( const ICustomBody &object, Float timeStepLength, Float &deltaWhen, Float3 &worldPointOfContact ) const -{ - if( object.Intersects(this->rigid.box) ) - { //! @todo TODO: better implementation needed - deltaWhen = timeStepLength; - worldPointOfContact = Average( this->rigid.box.center, object.GetCenter() ); - return true; - } - else - { - return false; - } -} - bool SimpleRigidBody::Intersects( const ICollideable &shape ) const { return this->rigid.box.Intersects( shape ); } +bool SimpleRigidBody::Intersects( const ICollideable &shape, Float4 &worldPointOfContact ) const +{ + return this->rigid.box.Intersects( shape, worldPointOfContact ); +} + +bool SimpleRigidBody::Intersects( const ICustomBody &object, Float4 &worldPointOfContact ) const +{ + return object.Intersects( this->rigid.box, worldPointOfContact ); +} + Sphere & SimpleRigidBody::GetBoundingSphere( Sphere &targetMem ) const { return targetMem = Sphere( this->rigid.box.center, this->rigid.box.boundingOffset.GetMagnitude() ); } -Float3 & SimpleRigidBody::GetNormalAt( const Float3 &worldPos, Float3 &targetMem ) const +Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem ) const { //! @todo TODO: better implementation needed return targetMem = (worldPos - this->rigid.box.center).GetNormalized(); diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.h b/Code/GamePhysics/Implementation/SimpleRigidBody.h index 9eefeb48..40448292 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.h +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.h @@ -20,13 +20,14 @@ namespace Oyster { namespace Physics void SetState( const State &state ); ::Oyster::Math::Float3 GetRigidLinearVelocity() const; - void CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ); + SubscriptMessage CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ); bool IsAffectedByGravity() const; - bool Intersects( const ICustomBody &object, ::Oyster::Math::Float timeStepLength, ::Oyster::Math::Float &deltaWhen, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Intersects( const ::Oyster::Collision3D::ICollideable &shape ) const; + bool Intersects( const ::Oyster::Collision3D::ICollideable &shape, ::Oyster::Math::Float4 &worldPointOfContact ) const; + bool Intersects( const ICustomBody &object, ::Oyster::Math::Float4 &worldPointOfContact ) const; ::Oyster::Collision3D::Sphere & GetBoundingSphere( ::Oyster::Collision3D::Sphere &targetMem = ::Oyster::Collision3D::Sphere() ) const; - ::Oyster::Math::Float3 & GetNormalAt( const ::Oyster::Math::Float3 &worldPos, ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; + ::Oyster::Math::Float4 & GetNormalAt( const ::Oyster::Math::Float4 &worldPos, ::Oyster::Math::Float4 &targetMem = ::Oyster::Math::Float4() ) const; ::Oyster::Math::Float3 & GetGravityNormal( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; ::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; ::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index ce31456e..6b63a699 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -46,12 +46,12 @@ UniquePointer SphericalRigidBody::Clone() const SphericalRigidBody::State SphericalRigidBody::GetState() const { - return State( this->rigid.box.boundingOffset, this->rigid.box.center, AngularAxis(this->rigid.box.rotation).xyz ); + return State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); } SphericalRigidBody::State & SphericalRigidBody::GetState( SphericalRigidBody::State &targetMem ) const { - return targetMem = State( this->rigid.box.boundingOffset, this->rigid.box.center, AngularAxis(this->rigid.box.rotation).xyz ); + return targetMem = State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); } void SphericalRigidBody::SetState( const SphericalRigidBody::State &state ) @@ -61,9 +61,9 @@ void SphericalRigidBody::SetState( const SphericalRigidBody::State &state ) this->rigid.box.rotation = state.GetRotation(); } -void SphericalRigidBody::CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) +ICustomBody::SubscriptMessage SphericalRigidBody::CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) { - this->collisionAction( proto, deuter ); + return this->collisionAction( proto, deuter ); } bool SphericalRigidBody::IsAffectedByGravity() const @@ -71,23 +71,19 @@ bool SphericalRigidBody::IsAffectedByGravity() const return !this->ignoreGravity; } -bool SphericalRigidBody::Intersects( const ICustomBody &object, Float timeStepLength, Float &deltaWhen, Float3 &worldPointOfContact ) const -{ - if( object.Intersects(this->body) ) - { //! @todo TODO: better implementation needed - deltaWhen = timeStepLength; - worldPointOfContact = Average( this->body.center, object.GetCenter() ); - return true; - } - else - { - return false; - } -} - bool SphericalRigidBody::Intersects( const ICollideable &shape ) const { - return this->rigid.box.Intersects( shape ); + return Sphere( this->rigid.box.center, this->rigid.box.boundingOffset.x ).Intersects( shape ); +} + +bool SphericalRigidBody::Intersects( const ICollideable &shape, Float4 &worldPointOfContact ) const +{ + return Sphere( this->rigid.box.center, this->rigid.box.boundingOffset.x ).Intersects( shape, worldPointOfContact ); +} + +bool SphericalRigidBody::Intersects( const ICustomBody &object, Float4 &worldPointOfContact ) const +{ + return object.Intersects( Sphere(this->rigid.box.center, this->rigid.box.boundingOffset.x), worldPointOfContact ); } Sphere & SphericalRigidBody::GetBoundingSphere( Sphere &targetMem ) const @@ -95,7 +91,7 @@ Sphere & SphericalRigidBody::GetBoundingSphere( Sphere &targetMem ) const return targetMem = this->body; } -Float3 & SphericalRigidBody::GetNormalAt( const Float3 &worldPos, Float3 &targetMem ) const +Float4 & SphericalRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem ) const { //! @todo TODO: better implementation needed return targetMem = (worldPos - this->rigid.box.center).GetNormalized(); diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.h b/Code/GamePhysics/Implementation/SphericalRigidBody.h index 4d003f99..cf02a10c 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.h +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.h @@ -21,13 +21,14 @@ namespace Oyster { namespace Physics void SetState( const State &state ); ::Oyster::Math::Float3 GetRigidLinearVelocity() const; - void CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ); + SubscriptMessage CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ); bool IsAffectedByGravity() const; - bool Intersects( const ICustomBody &object, ::Oyster::Math::Float timeStepLength, ::Oyster::Math::Float &deltaWhen, ::Oyster::Math::Float3 &worldPointOfContact ) const; bool Intersects( const ::Oyster::Collision3D::ICollideable &shape ) const; + bool Intersects( const ::Oyster::Collision3D::ICollideable &shape, ::Oyster::Math::Float4 &worldPointOfContact ) const; + bool Intersects( const ICustomBody &object, ::Oyster::Math::Float4 &worldPointOfContact ) const; ::Oyster::Collision3D::Sphere & GetBoundingSphere( ::Oyster::Collision3D::Sphere &targetMem = ::Oyster::Collision3D::Sphere() ) const; - ::Oyster::Math::Float3 & GetNormalAt( const ::Oyster::Math::Float3 &worldPos, ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; + ::Oyster::Math::Float4 & GetNormalAt( const ::Oyster::Math::Float4 &worldPos, ::Oyster::Math::Float4 &targetMem = ::Oyster::Math::Float4() ) const; ::Oyster::Math::Float3 & GetGravityNormal( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; ::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; ::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; diff --git a/Code/GamePhysics/PhysicsAPI.h b/Code/GamePhysics/PhysicsAPI.h index 6c43a754..46c8c70d 100644 --- a/Code/GamePhysics/PhysicsAPI.h +++ b/Code/GamePhysics/PhysicsAPI.h @@ -132,15 +132,6 @@ namespace Oyster ********************************************************/ virtual void ApplyForceAt( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &worldF ) = 0; - /******************************************************** - * Apply force on an object. - * @param objRefA: A pointer to the ICustomBody representing a physical object. - * @param objRefB: A pointer to the ICustomBody representing a physical object. - * @param deltaWhen: The elapsed simulation time since last update frame. [s] - * @param worldPointOfContact: Point of Collision, relative to the world origo. (Not relative to the objects) [m] - ********************************************************/ - virtual void ApplyCollisionResponse( const ICustomBody* objRefA, const ICustomBody* objRefB, ::Oyster::Math::Float &deltaWhen, ::Oyster::Math::Float3 &worldPointOfContact ) = 0; - /******************************************************** * Sets the MomentOfInertia tensor matrix of an object without changing it's angular velocity. * Noticeable effect: The angular momentum will change. Changing the amount of kinetic energy. @@ -229,11 +220,6 @@ namespace Oyster SubscriptMessage_ignore_collision_response }; - /******************************************************** - * @param gameObjectRef: a pointer to the object in the game owning the rigid body. - ********************************************************/ - void* gameObjectRef; - typedef SubscriptMessage (*EventAction_Collision)( const ICustomBody *proto, const ICustomBody *deuter ); typedef Struct::SimpleBodyDescription SimpleBodyDescription; typedef Struct::SphericalBodyDescription SphericalBodyDescription; @@ -250,7 +236,7 @@ namespace Oyster /******************************************************** * @todo TODO: need doc ********************************************************/ - virtual void CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) = 0; + virtual SubscriptMessage CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) = 0; /******************************************************** * @todo TODO: need doc @@ -277,22 +263,28 @@ namespace Oyster ********************************************************/ virtual bool IsAffectedByGravity() const = 0; - /******************************************************** - * Performs a detailed Intersect test and returns if, when and where. - * @param object: What this is intersect testing against. - * @param timeStepLength: The value set by API::SetDeltaTime(...) - * @param deltaWhen: Time in seconds since last update frame til timeOfContact. 0.0f <= deltaWhen <= timeStepLength - * @param worldPointOfContact: Where at timeOfContact, this and object touches eachother. - * @return true if this truly intersects with object. - ********************************************************/ - virtual bool Intersects( const ICustomBody &object, ::Oyster::Math::Float timeStepLength, ::Oyster::Math::Float &deltaWhen, ::Oyster::Math::Float3 &worldPointOfContact ) const = 0; - /******************************************************** * param shape: Any defined sample shape. * @return true if this truly intersects with shape. ********************************************************/ virtual bool Intersects( const ::Oyster::Collision3D::ICollideable &shape ) const = 0; + /******************************************************** + * Performs a detailed Intersect test and returns if, when and where. + * @param shape: Any defined sample shape. + * @param worldPointOfContact: Where at timeOfContact, this and object touches eachother. + * @return true if this truly intersects with object. + ********************************************************/ + virtual bool Intersects( const ::Oyster::Collision3D::ICollideable &shape, ::Oyster::Math::Float4 &worldPointOfContact ) const = 0; + + /******************************************************** + * Performs a detailed Intersect test and returns if, when and where. + * @param object: What this is intersect testing against. + * @param worldPointOfContact: Where at timeOfContact, this and object touches eachother. + * @return true if this truly intersects with object. + ********************************************************/ + virtual bool Intersects( const ICustomBody &object, ::Oyster::Math::Float4 &worldPointOfContact ) const = 0; + /******************************************************** * Required by Engine's Collision Search. * @param targetMem: Provided memory that written into and then returned. @@ -306,7 +298,7 @@ namespace Oyster * @param targetMem: Provided memory that written into and then returned. * @return a surface normal in worldSpace. ********************************************************/ - virtual ::Oyster::Math::Float3 & GetNormalAt( const ::Oyster::Math::Float3 &worldPos, ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const = 0; + virtual ::Oyster::Math::Float4 & GetNormalAt( const ::Oyster::Math::Float4 &worldPos, ::Oyster::Math::Float4 &targetMem = ::Oyster::Math::Float4() ) const = 0; /******************************************************** * The gravity normal will have same direction as the total gravity force pulling on this and have the magnitude of 1.0f. diff --git a/Code/GamePhysics/PhysicsFormula.h b/Code/GamePhysics/PhysicsFormula.h index c015e571..156b9e45 100644 --- a/Code/GamePhysics/PhysicsFormula.h +++ b/Code/GamePhysics/PhysicsFormula.h @@ -17,8 +17,8 @@ namespace Oyster { namespace Physics { namespace Formula namespace CollisionResponse { ::Oyster::Math::Float Impulse( ::Oyster::Math::Float coeffOfRestitution, - ::Oyster::Math::Float massA, ::Oyster::Math::Float momentumA, - ::Oyster::Math::Float massB, ::Oyster::Math::Float momentumB ); + ::Oyster::Math::Float massA, ::Oyster::Math::Float momentumA, + ::Oyster::Math::Float massB, ::Oyster::Math::Float momentumB ); } } } } diff --git a/Code/GamePhysics/PhysicsStructs-Impl.h b/Code/GamePhysics/PhysicsStructs-Impl.h index 3de46ee2..daf108bb 100644 --- a/Code/GamePhysics/PhysicsStructs-Impl.h +++ b/Code/GamePhysics/PhysicsStructs-Impl.h @@ -28,12 +28,13 @@ namespace Oyster { namespace Physics this->ignoreGravity = false; } - - inline CustomBodyState::CustomBodyState( const ::Oyster::Math::Float3 &reach, const ::Oyster::Math::Float3 ¢erPos, const ::Oyster::Math::Float3 &rotation ) + inline CustomBodyState::CustomBodyState( const ::Oyster::Math::Float3 &reach, const ::Oyster::Math::Float3 ¢erPos, const ::Oyster::Math::Float3 &rotation, const ::Oyster::Math::Float3 &linearMomentum, const ::Oyster::Math::Float3 &angularMomentum ) { this->reach = ::Oyster::Math::Float4( reach, 0.0f ); this->centerPos = ::Oyster::Math::Float4( centerPos, 1.0f ); this->angularAxis = ::Oyster::Math::Float4( rotation, 0.0f ); + this->linearMomentum = ::Oyster::Math::Float4( linearMomentum, 0.0f ); + this->angularMomentum = ::Oyster::Math::Float4( angularMomentum, 0.0f ); this->isSpatiallyAltered = this->isDisturbed = false; } @@ -42,6 +43,8 @@ namespace Oyster { namespace Physics this->reach = state.reach; this->centerPos = state.centerPos; this->angularAxis = state.angularAxis; + this->linearMomentum = state.linearMomentum; + this->angularMomentum = state.angularMomentum; this->isSpatiallyAltered = state.isSpatiallyAltered; this->isDisturbed = state.isDisturbed; @@ -73,6 +76,39 @@ namespace Oyster { namespace Physics return ::Oyster::Math3D::RotationMatrix( this->GetAngularAxis().xyz ); } + inline const ::Oyster::Math::Float CustomBodyState::GetMass() const + { + //! @todo TODO: stub to be implemented (CustomBodyState::GetMass) + return 1.0f; + } + + inline const ::Oyster::Math::Float CustomBodyState::GetRestitutionCoeff() const + { + //! @todo TODO: stub to be implemented (CustomBodyState::GetRestitutionCoeff) + return 1.0f; + } + + inline const ::Oyster::Math::Float4 & CustomBodyState::GetLinearMomentum() const + { + return this->linearMomentum; + } + + inline ::Oyster::Math::Float4 CustomBodyState::GetLinearMomentum( const ::Oyster::Math::Float3 &at ) const + { + return this->GetLinearMomentum( ::Oyster::Math::Float4(at, 1.0f) ); + } + + inline ::Oyster::Math::Float4 CustomBodyState::GetLinearMomentum( const ::Oyster::Math::Float4 &at ) const + { + //! @todo TODO: stub to be implemented (CustomBodyState::GetLinearMomentum) + return ::Oyster::Math::Float4::null; + } + + inline const ::Oyster::Math::Float4 & CustomBodyState::GetAngularMomentum() const + { + return this->angularMomentum; + } + inline void CustomBodyState::SetSize( const ::Oyster::Math::Float3 &size ) { this->SetReach( 0.5f * size ); @@ -102,6 +138,44 @@ namespace Oyster { namespace Physics this->SetRotation( ::Oyster::Math3D::AngularAxis(rotation).xyz ); } + inline void CustomBodyState::SetMass( ::Oyster::Math::Float m ) + { + //! @todo TODO: stub to be implemented (CustomBodyState::SetRestitutionCoeff) + } + + inline void CustomBodyState::SetRestitutionCoeff( ::Oyster::Math::Float e ) + { + //! @todo TODO: stub to be implemented (CustomBodyState::SetRestitutionCoeff) + } + + inline void CustomBodyState::SetLinearMomentum( const ::Oyster::Math::Float3 &g ) + { + this->linearMomentum = ::Oyster::Math::Float4( g, 0.0f ); + this->isDisturbed = true; + } + + inline void CustomBodyState::SetAngularMomentum( const ::Oyster::Math::Float3 &h ) + { + this->angularMomentum = ::Oyster::Math::Float4( h, 0.0f ); + this->isDisturbed = true; + } + + inline void CustomBodyState::ApplyImpulse( const ::Oyster::Math::Float4 &j ) + { + this->linearMomentum += j; + this->isDisturbed = true; + } + + inline void CustomBodyState::ApplyImpulse( const ::Oyster::Math::Float4 &j, const ::Oyster::Math::Float4 &at, const ::Oyster::Math::Float4 &normal ) + { + //! @todo TODO: stub to be implemented (CustomBodyState::ApplyImpulse) + + this->linearMomentum += j.Dot( normal ) * normal; // perpendicular impulse component + //this->angularImpulse += Formula:: ... + + this->isDisturbed = true; + } + inline bool CustomBodyState::IsSpatiallyAltered() const { return this->isSpatiallyAltered; diff --git a/Code/GamePhysics/PhysicsStructs.h b/Code/GamePhysics/PhysicsStructs.h index c1f74640..e3c20fea 100644 --- a/Code/GamePhysics/PhysicsStructs.h +++ b/Code/GamePhysics/PhysicsStructs.h @@ -36,9 +36,11 @@ namespace Oyster { namespace Physics struct CustomBodyState { public: - CustomBodyState( const ::Oyster::Math::Float3 &reach = ::Oyster::Math::Float3::null, - const ::Oyster::Math::Float3 ¢erPos = ::Oyster::Math::Float3::null, - const ::Oyster::Math::Float3 &rotation = ::Oyster::Math::Float3::null ); + CustomBodyState( const ::Oyster::Math::Float3 &reach = ::Oyster::Math::Float3::null, + const ::Oyster::Math::Float3 ¢erPos = ::Oyster::Math::Float3::null, + const ::Oyster::Math::Float3 &rotation = ::Oyster::Math::Float3::null, + const ::Oyster::Math::Float3 &linearMomentum = ::Oyster::Math::Float3::null, + const ::Oyster::Math::Float3 &angularMomentum = ::Oyster::Math::Float3::null ); CustomBodyState & operator = ( const CustomBodyState &state ); @@ -47,18 +49,33 @@ namespace Oyster { namespace Physics const ::Oyster::Math::Float4 & GetCenterPosition() const; const ::Oyster::Math::Float4 & GetAngularAxis() const; ::Oyster::Math::Float4x4 GetRotation() const; + const ::Oyster::Math::Float GetMass() const; + const ::Oyster::Math::Float GetRestitutionCoeff() const; + const ::Oyster::Math::Float4 & GetLinearMomentum() const; + ::Oyster::Math::Float4 GetLinearMomentum( const ::Oyster::Math::Float3 &at ) const; + ::Oyster::Math::Float4 GetLinearMomentum( const ::Oyster::Math::Float4 &at ) const; + const ::Oyster::Math::Float4 & GetAngularMomentum() const; + void SetSize( const ::Oyster::Math::Float3 &size ); void SetReach( const ::Oyster::Math::Float3 &halfSize ); void SetCenterPosition( const ::Oyster::Math::Float3 ¢erPos ); void SetRotation( const ::Oyster::Math::Float3 &angularAxis ); void SetRotation( const ::Oyster::Math::Float4x4 &rotation ); + void SetMass( ::Oyster::Math::Float m ); + void SetRestitutionCoeff( ::Oyster::Math::Float e ); + void SetLinearMomentum( const ::Oyster::Math::Float3 &g ); + void SetAngularMomentum( const ::Oyster::Math::Float3 &h ); + + void ApplyImpulse( const ::Oyster::Math::Float4 &j ); + void ApplyImpulse( const ::Oyster::Math::Float4 &j, const ::Oyster::Math::Float4 &at, const ::Oyster::Math::Float4 &normal ); bool IsSpatiallyAltered() const; bool IsDisturbed() const; private: ::Oyster::Math::Float4 reach, centerPos, angularAxis; + ::Oyster::Math::Float4 linearMomentum, angularMomentum; bool isSpatiallyAltered, isDisturbed; }; diff --git a/Code/OysterPhysics3D/Box.cpp b/Code/OysterPhysics3D/Box.cpp index 7d67754c..94f948a6 100644 --- a/Code/OysterPhysics3D/Box.cpp +++ b/Code/OysterPhysics3D/Box.cpp @@ -18,8 +18,8 @@ Box::Box( ) : ICollideable(Type_box) Box::Box( const Float4x4 &r, const Float3 &p, const Float3 &s ) : ICollideable(Type_box) { this->rotation = r; - this->center = p; - this->boundingOffset = Float3(s*0.5); + this->center = Float4( p, 1.0f ); + this->boundingOffset = Float4( s * 0.5f , 0.0f); } Box::~Box( ) {} @@ -54,7 +54,7 @@ bool Box::Intersects( const ICollideable &target ) const } } -bool Box::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Box::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { switch( target.type ) { diff --git a/Code/OysterPhysics3D/Box.h b/Code/OysterPhysics3D/Box.h index bdef2f9a..3259908f 100644 --- a/Code/OysterPhysics3D/Box.h +++ b/Code/OysterPhysics3D/Box.h @@ -16,14 +16,14 @@ namespace Oyster { namespace Collision3D public: union { - struct{ ::Oyster::Math::Float4x4 rotation; ::Oyster::Math::Float3 center, boundingOffset; }; + struct{ ::Oyster::Math::Float4x4 rotation; ::Oyster::Math::Float4 center, boundingOffset; }; struct { - ::Oyster::Math::Float3 xAxis; ::Oyster::Math::Float paddingA; - ::Oyster::Math::Float3 yAxis; ::Oyster::Math::Float paddingB; - ::Oyster::Math::Float3 zAxis; ::Oyster::Math::Float paddingC; + ::Oyster::Math::Float4 xAxis; + ::Oyster::Math::Float4 yAxis; + ::Oyster::Math::Float4 zAxis; }; - char byte[sizeof(::Oyster::Math::Float4x4) + 2*sizeof(::Oyster::Math::Float3)]; + char byte[sizeof(::Oyster::Math::Float4x4) + 2*sizeof(::Oyster::Math::Float4)]; }; Box( ); @@ -34,7 +34,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/BoxAxisAligned.cpp b/Code/OysterPhysics3D/BoxAxisAligned.cpp index a0ebdd63..bd10016f 100644 --- a/Code/OysterPhysics3D/BoxAxisAligned.cpp +++ b/Code/OysterPhysics3D/BoxAxisAligned.cpp @@ -14,16 +14,16 @@ BoxAxisAligned::BoxAxisAligned( ) : ICollideable(Type_box_axis_aligned) this->maxVertex = Float3( 0.5f, 0.5f, 0.5f ); } -BoxAxisAligned::BoxAxisAligned( const Float3 &_minVertex, const Float3 &_maxVertex ) : ICollideable(Type_box_axis_aligned) +BoxAxisAligned::BoxAxisAligned( const Float3 &minVertex, const Float3 &maxVertex ) : ICollideable(Type_box_axis_aligned) { - this->minVertex = _minVertex; - this->maxVertex = _maxVertex; + this->minVertex = Float4( minVertex, 1.0f ); + this->maxVertex = Float4( maxVertex, 1.0f ); } BoxAxisAligned::BoxAxisAligned( const Float &leftClip, const Float &rightClip, const Float &topClip, const Float &bottomClip, const Float &nearClip, const Float &farClip ) : ICollideable(Type_box_axis_aligned) { - this->minVertex = Float3( leftClip, bottomClip, nearClip ); - this->maxVertex = Float3( rightClip, topClip, farClip ); + this->minVertex = Float4( leftClip, bottomClip, nearClip, 1.0f ); + this->maxVertex = Float4( rightClip, topClip, farClip, 1.0f ); } BoxAxisAligned::~BoxAxisAligned( ) {} @@ -57,7 +57,7 @@ bool BoxAxisAligned::Intersects( const ICollideable &target ) const } } -bool BoxAxisAligned::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool BoxAxisAligned::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { //! @todo TODO: implement stub properly return this->Intersects( target ); diff --git a/Code/OysterPhysics3D/BoxAxisAligned.h b/Code/OysterPhysics3D/BoxAxisAligned.h index 374c888f..2ff39463 100644 --- a/Code/OysterPhysics3D/BoxAxisAligned.h +++ b/Code/OysterPhysics3D/BoxAxisAligned.h @@ -16,8 +16,8 @@ namespace Oyster { namespace Collision3D public: union { - struct{ ::Oyster::Math::Float3 minVertex, maxVertex; }; - char byte[2*sizeof(::Oyster::Math::Float3)]; + struct{ ::Oyster::Math::Float4 minVertex, maxVertex; }; + char byte[2*sizeof(::Oyster::Math::Float4)]; }; BoxAxisAligned( ); @@ -29,7 +29,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Frustrum.cpp b/Code/OysterPhysics3D/Frustrum.cpp index e8aa65fa..54e6a67f 100644 --- a/Code/OysterPhysics3D/Frustrum.cpp +++ b/Code/OysterPhysics3D/Frustrum.cpp @@ -76,12 +76,12 @@ namespace PrivateStatic Frustrum::Frustrum() : ICollideable(Type_frustrum) { - this->leftPlane = Plane( Float3::standard_unit_x, -0.5f ); - this->rightPlane = Plane(-Float3::standard_unit_x, 0.5f ), - this->bottomPlane = Plane( Float3::standard_unit_y, -0.5f ); - this->topPlane = Plane(-Float3::standard_unit_y, 0.5f ); - this->nearPlane = Plane( Float3::standard_unit_z, -0.5f ); - this->farPlane = Plane(-Float3::standard_unit_z, 0.5f ); + this->leftPlane = Plane( Float4::standard_unit_x, -0.5f ); + this->rightPlane = Plane(-Float4::standard_unit_x, 0.5f ), + this->bottomPlane = Plane( Float4::standard_unit_y, -0.5f ); + this->topPlane = Plane(-Float4::standard_unit_y, 0.5f ); + this->nearPlane = Plane( Float4::standard_unit_z, -0.5f ); + this->farPlane = Plane(-Float4::standard_unit_z, 0.5f ); } Frustrum::Frustrum( const Float4x4 &vp ) : ICollideable(Type_frustrum) @@ -220,7 +220,7 @@ bool Frustrum::Intersects( const ICollideable &target ) const } } -bool Frustrum::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Frustrum::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { //! @todo TODO: implement stub properly return this->Intersects( target ); diff --git a/Code/OysterPhysics3D/Frustrum.h b/Code/OysterPhysics3D/Frustrum.h index c59d89f5..ba5656c5 100644 --- a/Code/OysterPhysics3D/Frustrum.h +++ b/Code/OysterPhysics3D/Frustrum.h @@ -39,7 +39,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; diff --git a/Code/OysterPhysics3D/ICollideable.h b/Code/OysterPhysics3D/ICollideable.h index a8eb9464..b3f61671 100644 --- a/Code/OysterPhysics3D/ICollideable.h +++ b/Code/OysterPhysics3D/ICollideable.h @@ -35,7 +35,7 @@ namespace Oyster { namespace Collision3D //! Contains a collection of 3D shapes virtual ~ICollideable(); virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const = 0; - virtual bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const = 0; + virtual bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const = 0; virtual bool Intersects( const ICollideable &target ) const = 0; virtual bool Contains( const ICollideable &target ) const = 0; }; diff --git a/Code/OysterPhysics3D/Line.cpp b/Code/OysterPhysics3D/Line.cpp index 0d3c3dcd..cebceaff 100644 --- a/Code/OysterPhysics3D/Line.cpp +++ b/Code/OysterPhysics3D/Line.cpp @@ -55,7 +55,7 @@ bool Line::Intersects( const ICollideable &target ) const return false; } -bool Line::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Line::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { if( target.type == Type_universe ) { diff --git a/Code/OysterPhysics3D/Line.h b/Code/OysterPhysics3D/Line.h index e90e7ac4..2e6d2d55 100644 --- a/Code/OysterPhysics3D/Line.h +++ b/Code/OysterPhysics3D/Line.h @@ -30,7 +30,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 835be03a..526f87e7 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -30,10 +30,10 @@ namespace Oyster { namespace Collision3D { namespace Utility } // returns true if miss/reject - bool BoxVsRayPerSlabCheck( const Float3 &axis, const Float &boundingOffset, const Float3 &deltaPos, const Float3 rayDirection, Float &tMin, Float &tMax ) + bool BoxVsRayPerSlabCheck( const Float4 &axis, const Float &boundingOffset, const Float4 &deltaPos, const Float4 rayDirection, Float &tMin, Float &tMax ) { // by Dan Andersson Float e = axis.Dot( deltaPos ), - f = axis.Dot( rayDirection ); + f = axis.Dot( rayDirection ); if( EqualsZero(f) ) // if axis is not parallell with ray { Float t1 = e + boundingOffset, @@ -51,12 +51,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - inline bool Contains( const Plane &container, const Float3 &pos ) + inline bool Contains( const Plane &container, const Float4 &pos ) { // by Dan Andersson return EqualsZero( container.normal.Dot( pos ) + container.phasing ); } - inline void Compare( Float &connectOffset, const Plane &plane, const Float3 &pos ) + inline void Compare( Float &connectOffset, const Plane &plane, const Float4 &pos ) { // by Dan Andersson connectOffset = plane.normal.Dot(pos); connectOffset += plane.phasing; @@ -64,7 +64,7 @@ namespace Oyster { namespace Collision3D { namespace Utility void Compare( Float &boxExtend, Float ¢erDistance, const Plane &plane, const BoxAxisAligned &box ) { // by Dan Andersson - Float3 c = (box.maxVertex + box.minVertex) * 0.5f, // box.Center + Float4 c = (box.maxVertex + box.minVertex) * 0.5f, // box.Center h = (box.maxVertex - box.minVertex) * 0.5f; // box.halfSize boxExtend = h.x * Abs(plane.normal.x); // Box max extending towards plane boxExtend += h.y * Abs(plane.normal.y); @@ -81,7 +81,7 @@ namespace Oyster { namespace Collision3D { namespace Utility centerDistance = box.center.Dot(plane.normal) + plane.phasing; // distance between box center and plane } - bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float3 &boundingOffsetA, const Float3 &boundingOffsetB, const Float4x4 &rotationB, const Float4 &worldOffset ) + bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float4 &boundingOffsetA, const Float4 &boundingOffsetB, const Float4x4 &rotationB, const Float4 &worldOffset ) { // by Dan Andersson /***************************************************************** @@ -103,37 +103,37 @@ namespace Oyster { namespace Collision3D { namespace Utility Float3 absWorldOffset = Abs(worldOffset); // |t|: [absWorldOffset] // s = { 1, 0, 0 } [ RA.v[0] ] - if( absWorldOffset.x > boundingOffsetA.x + boundingOffsetB.Dot(Float3(absRotationB.v[0].x, absRotationB.v[1].x, absRotationB.v[2].x)) ) + if( absWorldOffset.x > boundingOffsetA.x + boundingOffsetB.Dot(Float4(absRotationB.v[0].x, absRotationB.v[1].x, absRotationB.v[2].x, 0.0f)) ) { // |t dot s| > hA dot |s| + hB dot |s * RB| -->> t.x > hA.x + hB dot |{RB.v[0].x, RB.v[1].x, RB.v[2].x}| return false; } // s = { 0, 1, 0 } [ RA.v[1] ] - if( absWorldOffset.y > boundingOffsetA.y + boundingOffsetB.Dot(Float3(absRotationB.v[0].y, absRotationB.v[1].y, absRotationB.v[2].y)) ) + if( absWorldOffset.y > boundingOffsetA.y + boundingOffsetB.Dot(Float4(absRotationB.v[0].y, absRotationB.v[1].y, absRotationB.v[2].y, 0.0f)) ) { // t.y > hA.y + hB dot |{RB.v[0].y, RB.v[1].y, RB.v[2].y}| return false; } // s = { 0, 0, 1 } [ RA.v[2] ] - if( absWorldOffset.z > boundingOffsetA.z + boundingOffsetB.Dot(Float3(absRotationB.v[0].z, absRotationB.v[1].z, absRotationB.v[2].z)) ) + if( absWorldOffset.z > boundingOffsetA.z + boundingOffsetB.Dot(Float4(absRotationB.v[0].z, absRotationB.v[1].z, absRotationB.v[2].z, 0.0f)) ) { // t.z > hA.z + hB dot |{RB.v[0].z, RB.v[1].z, RB.v[2].z}| return false; } // s = RB.v[0].xyz - if( Abs(worldOffset.Dot(rotationB.v[0])) > boundingOffsetA.Dot(absRotationB.v[0].xyz) + boundingOffsetB.x ) + if( Abs(worldOffset.Dot(rotationB.v[0])) > boundingOffsetA.Dot(absRotationB.v[0]) + boundingOffsetB.x ) { // |t dot s| > hA dot |s| + hB dot |s * RB| -->> |t dot s| > hA dot |s| + hB dot |{1, 0, 0}| -->> |t dot s| > hA dot |s| + hB.x return false; } // s = RB.v[1].xyz - if( Abs(worldOffset.Dot(rotationB.v[1])) > boundingOffsetA.Dot(absRotationB.v[1].xyz) + boundingOffsetB.y ) + if( Abs(worldOffset.Dot(rotationB.v[1])) > boundingOffsetA.Dot(absRotationB.v[1]) + boundingOffsetB.y ) { // |t dot s| > hA dot |s| + hB.y return false; } // s = RB.v[2].xyz - if( Abs(worldOffset.Dot(rotationB.v[2])) > boundingOffsetA.Dot(absRotationB.v[2].xyz) + boundingOffsetB.z ) + if( Abs(worldOffset.Dot(rotationB.v[2])) > boundingOffsetA.Dot(absRotationB.v[2]) + boundingOffsetB.z ) { // |t dot s| > hA dot |s| + hB.z return false; } @@ -204,7 +204,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } - bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float3 &boundingOffsetA, const Float3 &boundingOffsetB, const Float4x4 &rotationB, const Float4 &worldOffset, Float4 &worldPointOfContact ) + bool SeperatingAxisTest_AxisAlignedVsTransformedBox( const Float4 &boundingOffsetA, const Float4 &boundingOffsetB, const Float4x4 &rotationB, const Float4 &worldOffset, Float4 &worldPointOfContact ) { // by Dan Andersson /***************************************************************** @@ -229,10 +229,11 @@ namespace Oyster { namespace Collision3D { namespace Utility * = ( p1 + p2 + ... + p5 + p6 ) / 2 *****************************************************************/ - const Float4 &t = worldOffset; - Float4 s = Float4::standard_unit_x, - hA = Float4( boundingOffsetA, 0.0f ), - hB = Float4( boundingOffsetB, 0.0f ); + const Float4 &t = worldOffset, + &hA = boundingOffsetA, + &hB = boundingOffsetB; + Float4 s = Float4::standard_unit_x; + Float centerSeperation = t.Dot(s), eA = hA.Dot( Abs(s) ), edgeSeperation = eA + hB.Dot( Abs(s * rotationB) ); @@ -382,7 +383,7 @@ namespace Oyster { namespace Collision3D { namespace Utility void Compare( Float &connectDistance, Float &connectOffsetSquared, const Ray &ray, const Point &point ) { // by Dan Andersson - Float3 dP = point.center - ray.origin; + Float4 dP = point.center - ray.origin; connectDistance = dP.Dot( ray.direction ); connectDistance /= ray.direction.Dot( ray.direction ); @@ -393,7 +394,7 @@ namespace Oyster { namespace Collision3D { namespace Utility void Compare( Float &connectDistanceA, Float &connectDistanceB, Float &connectOffsetSquared, const Ray &rayA, const Ray &rayB ) { // by Dan Andersson - Float3 dP = rayB.origin - rayA.origin; + Float4 dP = rayB.origin - rayA.origin; connectDistanceA = rayA.direction.Dot( dP ); connectDistanceA /= rayA.direction.Dot( rayA.direction ); @@ -422,7 +423,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; // Passed all tests, is in same position } - bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3 &worldPointOfContact ) + bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float4 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; @@ -443,6 +444,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float4 &worldPointOfContact ) + { + //! @todo TODO: implement Stub + return false; + } + bool Intersect( const Ray &rayA, const Ray &rayB, Float &connectDistanceA, Float &connectDistanceB ) { // by Dan Andersson Float connectOffsetSquared; @@ -458,13 +465,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ) - { - //! @todo TODO: implement Stub - return false; - } - - bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3 &worldPointOfContact ) + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float4 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; @@ -478,9 +479,15 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float4 &worldPointOfContact ) + { + //! @todo TODO: implement Stub + return false; + } + bool Intersect( const Sphere &sphere, const Ray &ray, Float &connectDistance ) {// by Dan Andersson - Float3 dP = sphere.center - ray.origin; + Float4 dP = sphere.center - ray.origin; Float s = dP.Dot( ray.direction ), dSquared = dP.Dot( dP ), rSquared = sphere.radius * sphere.radius; @@ -498,9 +505,15 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float4 &worldPointOfContact ) + { + //! @todo TODO: implement Stub + return false; + } + bool Intersect( const Sphere &sphereA, const Sphere &sphereB ) { // by Fredrick Johansson - Float3 C = sphereA.center; + Float4 C = sphereA.center; C -= sphereB.center; Float r = (sphereA.radius + sphereB.radius); @@ -511,22 +524,10 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } - - bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ) - { - //! @todo TODO: implement Stub - return false; - } - bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ) - { - //! @todo TODO: implement Stub - return false; - } - - bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3 &worldPointOfContact ) + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float4 &worldPointOfContact ) { // by Robin Engman - Float3 C = sphereA.center; + Float4 C = sphereA.center; C -= sphereB.center; Float r = sphereA.radius + sphereB.radius; @@ -552,6 +553,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return Private::EqualsZero(connectOffset); } + bool Intersect( const Plane &plane, const Point &point, Float4 &worldPointOfContact ) + { + //! @todo TODO: implement Stub + return false; + } + bool Intersect( const Plane &plane, const Ray &ray, Float &connectDistance ) { // by Dan Andersson Float c = plane.normal.Dot(ray.direction); @@ -572,6 +579,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return false; } + bool Intersect( const Plane &plane, const Ray &ray, Float &connectDistance, Float4 &worldPointOfContact ) + { + //! @todo TODO: implement Stub + return false; + } + bool Intersect( const Plane &plane, const Sphere &sphere ) { // by Dan Andersson Float connectOffset; @@ -579,6 +592,12 @@ namespace Oyster { namespace Collision3D { namespace Utility return (connectOffset <= sphere.radius); } + bool Intersect( const Plane &plane, const Sphere &sphere, Float4 &worldPointOfContact ) + { + //! @todo TODO: implement Stub + return false; + } + bool Intersect( const Plane &planeA, const Plane &planeB ) { // by Dan Andersson if( planeA.normal == planeB.normal ) // they are parallell @@ -588,25 +607,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; // none parallell planes ALWAYS intersects somewhere } - bool Intersect( const Plane &plane, const Point &point, const ::Oyster::Math::Float3 &worldPointOfContact ) - { - //! @todo TODO: implement Stub - return false; - } - - bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, const ::Oyster::Math::Float3 &worldPointOfContact ) - { - //! @todo TODO: implement Stub - return false; - } - - bool Intersect( const Plane &plane, const Sphere &sphere, const ::Oyster::Math::Float3 &worldPointOfContact ) - { - //! @todo TODO: implement Stub - return false; - } - - bool Intersect( const Plane &planeA, const Plane &planeB, const ::Oyster::Math::Float3 &worldPointOfContact ) + bool Intersect( const Plane &planeA, const Plane &planeB, Float4 &worldPointOfContact ) { //! @todo TODO: implement Stub return false; @@ -623,7 +624,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } - bool Intersect( const BoxAxisAligned &box, const Point &point, Float3 &worldPointOfContact ) + bool Intersect( const BoxAxisAligned &box, const Point &point, Float4 &worldPointOfContact ) { // by Dan Andersson if( Intersect(box, point) ) { @@ -638,18 +639,18 @@ namespace Oyster { namespace Collision3D { namespace Utility Float tMin = ::std::numeric_limits::max(), tMax = -tMin; // initiating to extremevalues - Float3 boundingOffset = ((box.maxVertex - box.minVertex) * 0.5f), + Float4 boundingOffset = ((box.maxVertex - box.minVertex) * 0.5f), dP = ((box.maxVertex + box.minVertex) * 0.5f) - ray.origin; - if( Private::BoxVsRayPerSlabCheck( Float3::standard_unit_x, boundingOffset.x, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } - if( Private::BoxVsRayPerSlabCheck( Float3::standard_unit_y, boundingOffset.y, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } - if( Private::BoxVsRayPerSlabCheck( Float3::standard_unit_z, boundingOffset.z, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } + if( Private::BoxVsRayPerSlabCheck( Float4::standard_unit_x, boundingOffset.x, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } + if( Private::BoxVsRayPerSlabCheck( Float4::standard_unit_y, boundingOffset.y, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } + if( Private::BoxVsRayPerSlabCheck( Float4::standard_unit_z, boundingOffset.z, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } if( tMin > 0.0f ) connectDistance = tMin; else connectDistance = tMax; return true; } - bool Intersect( const BoxAxisAligned &box, const Ray &ray, Float &connectDistance, Float3 &worldPointOfContact ) + bool Intersect( const BoxAxisAligned &box, const Ray &ray, Float &connectDistance, Float4 &worldPointOfContact ) { // by Dan Andersson if( Intersect(box, ray, connectDistance) ) { @@ -661,14 +662,14 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const BoxAxisAligned &box, const Sphere &sphere ) { // by Dan Andersson - Float4 e = Max( Float4(box.minVertex - sphere.center, 0.0f), Float4::null ); - e += Max( Float4(sphere.center - box.maxVertex, 0.0f), Float4::null ); + Float4 e = Max( box.minVertex - sphere.center, Float4::null ); + e += Max( sphere.center - box.maxVertex, Float4::null ); if( e.Dot(e) > (sphere.radius * sphere.radius) ) return false; return true; } - bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, Float3 &worldPointOfContact ) + bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, Float4 &worldPointOfContact ) { // by Robin Engman if(Intersect(box, sphere)) @@ -692,7 +693,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } - bool Intersect( const BoxAxisAligned &box, const Plane &plane, Float3 &worldPointOfContact ) + bool Intersect( const BoxAxisAligned &box, const Plane &plane, Float4 &worldPointOfContact ) { //! @todo TODO: implement stub return Intersect( box, plane ); @@ -714,7 +715,7 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Box &box, const Point &point ) { // by Dan Andersson - Float3 dPos = point.center - box.center; + Float4 dPos = point.center - box.center; Float coordinate = dPos.Dot( box.xAxis ); if( coordinate > box.boundingOffset.x ) return false; @@ -731,7 +732,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } - bool Intersect( const Box &box, const Point &point, Float3 &worldPointOfContact ) + bool Intersect( const Box &box, const Point &point, Float4 &worldPointOfContact ) { // by Dan Andersson if( Intersect(box, point) ) { @@ -746,7 +747,7 @@ namespace Oyster { namespace Collision3D { namespace Utility Float tMin = ::std::numeric_limits::max(), tMax = -tMin; // initiating to extremevalues - Float3 dP = box.center - ray.origin; + Float4 dP = box.center - ray.origin; if( Private::BoxVsRayPerSlabCheck( box.xAxis, box.boundingOffset.x, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } if( Private::BoxVsRayPerSlabCheck( box.yAxis, box.boundingOffset.y, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } if( Private::BoxVsRayPerSlabCheck( box.zAxis, box.boundingOffset.z, dP, ray.direction, tMin, tMax ) ) { connectDistance = 0.0f; return false; } @@ -756,7 +757,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } - bool Intersect( const Box &box, const Ray &ray, Float &connectDistance, Float3 &worldPointOfContact ) + bool Intersect( const Box &box, const Ray &ray, Float &connectDistance, Float4 &worldPointOfContact ) { // by Dan Andersson if( Intersect(box, ray, connectDistance) ) { @@ -769,16 +770,16 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Box &box, const Sphere &sphere ) { // by Dan Andersson // center: sphere's center in the box's view space - Float4 center = TransformVector( InverseRotationMatrix(box.rotation), Float4(sphere.center - box.center, 0.0f) ); + Float4 center = TransformVector( InverseRotationMatrix(box.rotation), sphere.center - box.center ); - Float4 e = Max( Float4(-box.boundingOffset, 0.0f) - center, Float4::null ); - e += Max( center - Float4(box.boundingOffset, 0.0f), Float4::null ); + Float4 e = Max( -box.boundingOffset - center, Float4::null ); + e += Max( center - box.boundingOffset, Float4::null ); if( e.Dot(e) > (sphere.radius * sphere.radius) ) return false; return true; } - bool Intersect( const Box &box, const Sphere &sphere, Float3 &worldPointOfContact ) + bool Intersect( const Box &box, const Sphere &sphere, Float4 &worldPointOfContact ) { // by Robin Engman if( Intersect(box, sphere) ) { @@ -801,7 +802,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return true; } - bool Intersect( const Box &box, const Plane &plane, Float3 &worldPointOfContact ) + bool Intersect( const Box &box, const Plane &plane, Float4 &worldPointOfContact ) { //! @todo TODO: implement stub return Intersect( box, plane ); @@ -809,18 +810,18 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const Box &boxA, const BoxAxisAligned &boxB ) { // by Dan Andersson - Float4 alignedOffsetBoundaries = (Float4(boxB.maxVertex, 1.0f) - Float4(boxB.minVertex, 1.0f)) * 0.5f, - offset = Float4(boxA.center, 1.0f) - Average( Float4(boxB.maxVertex, 1.0f), Float4(boxB.minVertex, 1.0f) ); - return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries.xyz, boxA.boundingOffset, boxA.rotation, offset ); + Float4 alignedOffsetBoundaries = (boxB.maxVertex - boxB.minVertex) * 0.5f, + offset = boxA.center- Average( boxB.maxVertex, boxB.minVertex ); + return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries, boxA.boundingOffset, boxA.rotation, offset ); } - bool Intersect( const Box &boxA, const BoxAxisAligned &boxB, ::Oyster::Math::Float3 &worldPointOfContact ) + bool Intersect( const Box &boxA, const BoxAxisAligned &boxB, ::Oyster::Math::Float4 &worldPointOfContact ) { // by Dan Andersson - Float4 alignedOffsetBoundaries = (Float4(boxB.maxVertex, 1.0f) - Float4(boxB.minVertex, 1.0f)) * 0.5f, - offset = Float4(boxA.center, 1.0f) - Average( Float4(boxB.maxVertex, 1.0f), Float4(boxB.minVertex, 1.0f) ); + Float4 alignedOffsetBoundaries = (boxB.maxVertex - boxB.minVertex) * 0.5f, + offset = boxA.center - Average( boxB.maxVertex, boxB.minVertex ); Float4 pointOfContact; - if( Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries.xyz, boxA.boundingOffset, boxA.rotation, offset, pointOfContact ) ) + if( Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( alignedOffsetBoundaries, boxA.boundingOffset, boxA.rotation, offset, pointOfContact ) ) { worldPointOfContact = pointOfContact.xyz; return true; @@ -836,7 +837,7 @@ namespace Oyster { namespace Collision3D { namespace Utility return Private::SeperatingAxisTest_AxisAlignedVsTransformedBox( boxA.boundingOffset, boxB.boundingOffset, rotationB, posB ); } - bool Intersect( const Box &boxA, const Box &boxB, Float3 &worldPointOfContact ) + bool Intersect( const Box &boxA, const Box &boxB, Float4 &worldPointOfContact ) { Float4x4 rotationB = TransformMatrix( InverseRotationMatrix(boxA.rotation), boxB.rotation ); Float4 posB = boxB.center - boxA.center; diff --git a/Code/OysterPhysics3D/OysterCollision3D.h b/Code/OysterPhysics3D/OysterCollision3D.h index 603dfc7c..20a55a18 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.h +++ b/Code/OysterPhysics3D/OysterCollision3D.h @@ -25,28 +25,28 @@ namespace Oyster { namespace Collision3D { namespace Utility void Compare( ::Oyster::Math::Float &connectOffset, const Plane &plane, const Point &point ); bool Intersect( const Point &pointA, const Point &pointB ); - bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Point &pointA, const Point &pointB, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance ); + bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB ); - bool Intersect( const Ray &ray, const Point &point, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); - bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Ray &rayA, const Ray &rayB, ::Oyster::Math::Float &connectDistanceA, ::Oyster::Math::Float &connectDistanceB, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Sphere &sphere, const Point &point ); + bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance ); + bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Sphere &sphereA, const Sphere &sphereB ); - bool Intersect( const Sphere &sphere, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); - bool Intersect( const Sphere &sphere, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); - bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Sphere &sphereA, const Sphere &sphereB, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Plane &plane, const Point &point ); + bool Intersect( const Plane &plane, const Point &point, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance ); + bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Plane &plane, const Sphere &sphere ); + bool Intersect( const Plane &plane, const Sphere &sphere, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Plane &planeA, const Plane &planeB ); - bool Intersect( const Plane &plane, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); - bool Intersect( const Plane &plane, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); - bool Intersect( const Plane &plane, const Sphere &sphere, ::Oyster::Math::Float3 &worldPointOfContact ); - bool Intersect( const Plane &planeA, const Plane &planeB, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Plane &planeA, const Plane &planeB, ::Oyster::Math::Float4 &worldPointOfContact ); // bool Intersect( const Triangle &triangle, const Point &point, ? ); // bool Intersect( const Triangle &triangle, const Ray &ray, ? ); @@ -55,29 +55,29 @@ namespace Oyster { namespace Collision3D { namespace Utility // bool Intersect( const Triangle &triangleA, const Triangle &triangleB, ? ); bool Intersect( const BoxAxisAligned &box, const Point &point ); - bool Intersect( const BoxAxisAligned &box, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const BoxAxisAligned &box, const Point &point, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const BoxAxisAligned &box, const Ray &ray, ::Oyster::Math::Float &connectDistance ); - bool Intersect( const BoxAxisAligned &box, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const BoxAxisAligned &box, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const BoxAxisAligned &box, const Sphere &sphere ); - bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const BoxAxisAligned &box, const Plane &plane ); - bool Intersect( const BoxAxisAligned &box, const Plane &plane, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const BoxAxisAligned &box, const Plane &plane, ::Oyster::Math::Float4 &worldPointOfContact ); // bool Intersect( const BoxAxisAligned &box, const Triangle &triangle ); bool Intersect( const BoxAxisAligned &boxA, const BoxAxisAligned &boxB ); bool Intersect( const Box &box, const Point &point ); - bool Intersect( const Box &box, const Point &point, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Box &box, const Point &point, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Box &box, const Ray &ray, ::Oyster::Math::Float &connectDistance ); - bool Intersect( const Box &box, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Box &box, const Ray &ray, ::Oyster::Math::Float &connectDistance, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Box &box, const Sphere &sphere ); - bool Intersect( const Box &box, const Sphere &sphere, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Box &box, const Sphere &sphere, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Box &box, const Plane &plane ); - bool Intersect( const Box &box, const Plane &plane, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Box &box, const Plane &plane, ::Oyster::Math::Float4 &worldPointOfContact ); // bool Intersect( const Box &box, const Triangle &triangle, ? ); bool Intersect( const Box &boxA, const BoxAxisAligned &boxB ); - bool Intersect( const Box &boxA, const BoxAxisAligned &boxB, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Box &boxA, const BoxAxisAligned &boxB, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Box &boxA, const Box &boxB ); - bool Intersect( const Box &boxA, const Box &boxB, ::Oyster::Math::Float3 &worldPointOfContact ); + bool Intersect( const Box &boxA, const Box &boxB, ::Oyster::Math::Float4 &worldPointOfContact ); bool Intersect( const Frustrum &frustrum, const Point &point ); bool Intersect( const Frustrum &frustrum, const Ray &ray, ::Oyster::Math::Float &connectDistance ); diff --git a/Code/OysterPhysics3D/Particle.cpp b/Code/OysterPhysics3D/Particle.cpp index 830e13b5..c84b1e31 100644 --- a/Code/OysterPhysics3D/Particle.cpp +++ b/Code/OysterPhysics3D/Particle.cpp @@ -34,7 +34,7 @@ Particle & Particle::operator = ( const Particle &particle ) void Particle::Update_LeapFrog( Float deltaTime ) { // Euler leap frog update when Runga Kutta is not needed this->impulseForceSum *= (deltaTime / this->mass); // is now deltaLinearVelocity ( dt * a = dt * F / m ) - this->sphere.center += deltaTime * ::Utility::Value::AverageWithDelta( Formula::LinearVelocity(this->mass, this->linearMomentum), this->impulseForceSum ); + this->sphere.center.xyz += deltaTime * ::Utility::Value::AverageWithDelta( Formula::LinearVelocity(this->mass, this->linearMomentum), this->impulseForceSum ); this->linearMomentum += Formula::LinearMomentum( this->mass, this->impulseForceSum ); this->impulseForceSum = Float3::null; @@ -66,12 +66,12 @@ void Particle::ApplyLinearImpulseAcceleration( const Float3 &a ) Float3 & Particle::AccessCenter() { - return this->sphere.center; + return this->sphere.center.xyz; } const Float3 & Particle::AccessCenter() const { - return this->sphere.center; + return this->sphere.center.xyz; } Float & Particle::AccessRadius() @@ -91,7 +91,7 @@ const Float & Particle::GetMass() const const Float3 & Particle::GetCenter() const { - return this->sphere.center; + return this->sphere.center.xyz; } const Float & Particle::GetRadius() const diff --git a/Code/OysterPhysics3D/Plane.cpp b/Code/OysterPhysics3D/Plane.cpp index 863b0c5a..59ffbc47 100644 --- a/Code/OysterPhysics3D/Plane.cpp +++ b/Code/OysterPhysics3D/Plane.cpp @@ -10,11 +10,11 @@ using namespace ::Oyster::Math; Plane::Plane( ) : ICollideable(Type_plane) { - this->normal = Float3::standard_unit_z; + this->normal = Float4::standard_unit_z; this->phasing = 0.0f; } -Plane::Plane( const Float3 &n, const Float &p ) : ICollideable(Type_plane) +Plane::Plane( const Float4 &n, const Float &p ) : ICollideable(Type_plane) { this->normal = n; this->phasing = p; @@ -52,7 +52,7 @@ bool Plane::Intersects( const ICollideable &target ) const } } -bool Plane::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Plane::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { switch( target.type ) { diff --git a/Code/OysterPhysics3D/Plane.h b/Code/OysterPhysics3D/Plane.h index 35b68261..f148ed8e 100644 --- a/Code/OysterPhysics3D/Plane.h +++ b/Code/OysterPhysics3D/Plane.h @@ -16,20 +16,20 @@ namespace Oyster { namespace Collision3D public: union { - struct{ ::Oyster::Math::Float3 normal; ::Oyster::Math::Float phasing; }; - ::Oyster::Math::Float element[4]; - char byte[sizeof(::Oyster::Math::Float3) + sizeof(::Oyster::Math::Float)]; + struct{ ::Oyster::Math::Float4 normal; ::Oyster::Math::Float phasing; }; + ::Oyster::Math::Float element[5]; + char byte[sizeof(::Oyster::Math::Float4) + sizeof(::Oyster::Math::Float)]; }; Plane( ); - Plane( const ::Oyster::Math::Float3 &normal, const ::Oyster::Math::Float &phasing ); + Plane( const ::Oyster::Math::Float4 &normal, const ::Oyster::Math::Float &phasing ); virtual ~Plane( ); Plane & operator = ( const Plane &plane ); virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Point.cpp b/Code/OysterPhysics3D/Point.cpp index 7a40c7cc..788ab32d 100644 --- a/Code/OysterPhysics3D/Point.cpp +++ b/Code/OysterPhysics3D/Point.cpp @@ -10,10 +10,15 @@ using namespace ::Oyster::Math3D; Point::Point( ) : ICollideable(Type_point) { - this->center = Float3::null; + this->center = Float4::standard_unit_w; } Point::Point( const Float3 &pos ) : ICollideable(Type_point) +{ + this->center = Float4( pos, 1.0f ); +} + +Point::Point( const Float4 &pos ) : ICollideable(Type_point) { this->center = pos; } @@ -48,7 +53,7 @@ bool Point::Intersects( const ICollideable &target ) const } } -bool Point::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Point::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { switch( target.type ) { diff --git a/Code/OysterPhysics3D/Point.h b/Code/OysterPhysics3D/Point.h index ca6f4082..60486373 100644 --- a/Code/OysterPhysics3D/Point.h +++ b/Code/OysterPhysics3D/Point.h @@ -16,19 +16,20 @@ namespace Oyster { namespace Collision3D public: union { - struct{ ::Oyster::Math::Float3 center; }; - char byte[sizeof(::Oyster::Math::Float3)]; + struct{ ::Oyster::Math::Float4 center; }; + char byte[sizeof(::Oyster::Math::Float4)]; }; Point( ); Point( const ::Oyster::Math::Float3 &position ); + Point( const ::Oyster::Math::Float4 &position ); virtual ~Point( ); Point & operator = ( const Point &point ); virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Ray.cpp b/Code/OysterPhysics3D/Ray.cpp index 6d65fe7f..b68ee68e 100644 --- a/Code/OysterPhysics3D/Ray.cpp +++ b/Code/OysterPhysics3D/Ray.cpp @@ -10,15 +10,15 @@ using namespace ::Oyster::Math3D; Ray::Ray( ) : ICollideable(Type_ray) { - this->origin = Float3::null; - this->direction = Float3::standard_unit_z; + this->origin = Float4::standard_unit_w; + this->direction = Float4::standard_unit_z; this->collisionDistance = 0.0f; } -Ray::Ray( const Float3 &o, const ::Oyster::Math::Float3 &d ) : ICollideable(Type_ray) +Ray::Ray( const Float3 &o, const Float3 &d ) : ICollideable(Type_ray) { - this->origin = o; - this->direction = d; + this->origin = Float4( o, 1.0f ); + this->direction = Float4( d, 0.0f ); this->collisionDistance = 0.0f; } @@ -47,15 +47,15 @@ bool Ray::Intersects( const ICollideable &target ) const case Type_ray: return Utility::Intersect( *this, (const Ray&)target, this->collisionDistance, ((const Ray&)target).collisionDistance ); case Type_sphere: return Utility::Intersect( (const Sphere&)target, *this, this->collisionDistance ); case Type_plane: return Utility::Intersect( (const Plane&)target, *this, this->collisionDistance ); - // case Type_triangle: return false; // TODO: + //case Type_triangle: return false; // TODO: case Type_box_axis_aligned: return Utility::Intersect( (const BoxAxisAligned&)target, *this, this->collisionDistance ); case Type_box: return Utility::Intersect( (const Box&)target, *this, this->collisionDistance ); - case Type_frustrum: return false; // TODO: + //case Type_frustrum: return false; // TODO: default: return false; } } -bool Ray::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Ray::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { switch( target.type ) { diff --git a/Code/OysterPhysics3D/Ray.h b/Code/OysterPhysics3D/Ray.h index bae600e4..79be0c21 100644 --- a/Code/OysterPhysics3D/Ray.h +++ b/Code/OysterPhysics3D/Ray.h @@ -21,10 +21,10 @@ namespace Oyster { namespace Collision3D { struct { - ::Oyster::Math::Float3 origin, + ::Oyster::Math::Float4 origin, direction; /// Assumed to be normalized }; - char byte[2*sizeof(::Oyster::Math::Float3)]; + char byte[2*sizeof(::Oyster::Math::Float4)]; }; mutable float collisionDistance; @@ -36,7 +36,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/RigidBody.cpp b/Code/OysterPhysics3D/RigidBody.cpp index 182a5a17..eed27b52 100644 --- a/Code/OysterPhysics3D/RigidBody.cpp +++ b/Code/OysterPhysics3D/RigidBody.cpp @@ -119,12 +119,12 @@ void RigidBody::Update_LeapFrog( Float deltaTime ) rotationAxis /= deltaRadian; // using rotationAxis, deltaRadian and deltaPos to create a matrix to update the box - this->box.center += deltaPos; + this->box.center.xyz += deltaPos; TransformMatrix( RotationMatrix(deltaRadian, rotationAxis), this->box.rotation, this->box.rotation ); } else { // no rotation, only use deltaPos to translate the RigidBody - this->box.center += deltaPos; + this->box.center.xyz += deltaPos; } // update momentums and clear impulseForceSum and impulseTorqueSum @@ -141,7 +141,7 @@ void RigidBody::ApplyImpulseForce( const Float3 &worldF ) void RigidBody::ApplyImpulseForceAt( const Float3 &worldF, const Float3 &worldPos ) { // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center; + Float3 worldOffset = worldPos - this->box.center.xyz; if( worldOffset != Float3::null ) { this->impulseForceSum += VectorProjection( worldF, worldOffset ); @@ -160,7 +160,7 @@ void RigidBody::ApplyLinearImpulseAcceleration( const Float3 &worldA ) void RigidBody::ApplyLinearImpulseAccelerationAt( const Float3 &worldA, const Float3 &worldPos ) { // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center; + Float3 worldOffset = worldPos - this->box.center.xyz; if( worldOffset != Float3::null ) { this->impulseForceSum += Formula::ImpulseForce( this->mass, VectorProjection(worldA, worldOffset) ); @@ -188,22 +188,22 @@ void RigidBody::ApplyAngularImpulseAcceleration( const Float3 &worldA ) Float3 & RigidBody::AccessBoundingReach() { // by Dan Andersson - return this->box.boundingOffset; + return this->box.boundingOffset.xyz; } const Float3 & RigidBody::AccessBoundingReach() const { // by Dan Andersson - return this->box.boundingOffset; + return this->box.boundingOffset.xyz; } Float3 & RigidBody::AccessCenter() { // by Dan Andersson - return this->box.center; + return this->box.center.xyz; } const Float3 & RigidBody::AccessCenter() const { // by Dan Andersson - return this->box.center; + return this->box.center.xyz; } const Float4x4 & RigidBody::GetMomentOfInertia() const @@ -218,7 +218,7 @@ const Float & RigidBody::GetMass() const const Float4x4 RigidBody::GetOrientation() const { // by Dan Andersson - return OrientationMatrix( this->box.rotation, this->box.center ); + return OrientationMatrix( this->box.rotation, this->box.center.xyz ); } Float4x4 RigidBody::GetView() const @@ -228,17 +228,17 @@ Float4x4 RigidBody::GetView() const const Float3 & RigidBody::GetBoundingReach() const { // by Dan Andersson - return this->box.boundingOffset; + return this->box.boundingOffset.xyz; } Float3 RigidBody::GetSize() const { // by Dan Andersson - return 2.0f * this->box.boundingOffset; + return 2.0f * this->box.boundingOffset.xyz; } const Float3 & RigidBody::GetCenter() const { // by Dan Andersson - return this->box.center; + return this->box.center.xyz; } const Float3 & RigidBody::GetImpulsTorque() const @@ -283,7 +283,7 @@ Float3 RigidBody::GetLinearVelocity() const void RigidBody::GetMomentumAt( const Float3 &worldPos, const Float3 &surfaceNormal, Float3 &normalMomentum, Float3 &tangentialMomentum ) const { // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center; + Float3 worldOffset = worldPos - this->box.center.xyz; Float3 momentum = Formula::TangentialLinearMomentum( this->angularMomentum, worldOffset ); momentum += this->linearMomentum; @@ -391,21 +391,21 @@ void RigidBody::SetLinearVelocity( const Float3 &worldV ) void RigidBody::SetImpulseForceAt( const Float3 &worldForce, const Float3 &worldPos ) { // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center; + Float3 worldOffset = worldPos - this->box.center.xyz; this->impulseForceSum = VectorProjection( worldForce, worldOffset ); this->impulseTorqueSum = Formula::ImpulseTorque( worldForce, worldOffset ); } void RigidBody::SetLinearMomentumAt( const Float3 &worldG, const Float3 &worldPos ) { // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center; + Float3 worldOffset = worldPos - this->box.center.xyz; this->linearMomentum = VectorProjection( worldG, worldOffset ); this->angularMomentum = Formula::AngularMomentum( worldG, worldOffset ); } void RigidBody::SetImpulseAccelerationAt( const Float3 &worldA, const Float3 &worldPos ) { // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center; + Float3 worldOffset = worldPos - this->box.center.xyz; this->impulseForceSum = Formula::ImpulseForce( this->mass, VectorProjection(worldA, worldOffset) ); this->impulseTorqueSum = Formula::ImpulseTorque( this->box.rotation * this->momentOfInertiaTensor, Formula::AngularImpulseAcceleration(worldA, worldOffset) ); @@ -413,7 +413,7 @@ void RigidBody::SetImpulseAccelerationAt( const Float3 &worldA, const Float3 &wo void RigidBody::SetLinearVelocityAt( const Float3 &worldV, const Float3 &worldPos ) { // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center; + Float3 worldOffset = worldPos - this->box.center.xyz; this->linearMomentum = Formula::LinearMomentum( this->mass, VectorProjection(worldV, worldOffset) ); this->angularMomentum = Formula::AngularMomentum( this->box.rotation * this->momentOfInertiaTensor, Formula::AngularVelocity(worldV, worldOffset) ); diff --git a/Code/OysterPhysics3D/Sphere.cpp b/Code/OysterPhysics3D/Sphere.cpp index 8c786f54..c402b2ef 100644 --- a/Code/OysterPhysics3D/Sphere.cpp +++ b/Code/OysterPhysics3D/Sphere.cpp @@ -6,14 +6,20 @@ using namespace ::Oyster::Math; Sphere::Sphere( ) : ICollideable(Type_sphere) { - this->center = Float3::null; + this->center = Float4::standard_unit_w; this->radius = 0.0f; } -Sphere::Sphere( const Float3 &_position, const Float &_radius ) : ICollideable(Type_sphere) +Sphere::Sphere( const Float3 &p, const Float &r ) : ICollideable(Type_sphere) { - this->center = _position; - this->radius = _radius; + this->center = Float4( p, 1.0f ); + this->radius = r; +} + +Sphere::Sphere( const Float4 &p, const Float &r ) : ICollideable(Type_sphere) +{ + this->center = p; + this->radius = r; } Sphere::~Sphere( ) {} @@ -47,7 +53,7 @@ bool Sphere::Intersects( const ICollideable &target ) const } } -bool Sphere::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Sphere::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { switch( target.type ) { diff --git a/Code/OysterPhysics3D/Sphere.h b/Code/OysterPhysics3D/Sphere.h index e2719328..2f483ecd 100644 --- a/Code/OysterPhysics3D/Sphere.h +++ b/Code/OysterPhysics3D/Sphere.h @@ -16,19 +16,20 @@ namespace Oyster { namespace Collision3D public: union { - struct{ ::Oyster::Math::Float3 center; ::Oyster::Math::Float radius; }; - char byte[sizeof(::Oyster::Math::Float3) + sizeof(::Oyster::Math::Float)]; + struct{ ::Oyster::Math::Float4 center; ::Oyster::Math::Float radius; }; + char byte[sizeof(::Oyster::Math::Float4) + sizeof(::Oyster::Math::Float)]; }; Sphere( ); Sphere( const ::Oyster::Math::Float3 ¢er, const ::Oyster::Math::Float &radius ); + Sphere( const ::Oyster::Math::Float4 ¢er, const ::Oyster::Math::Float &radius ); virtual ~Sphere( ); Sphere & operator = ( const Sphere &sphere ); virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } diff --git a/Code/OysterPhysics3D/Universe.cpp b/Code/OysterPhysics3D/Universe.cpp index c2308690..7eb788ae 100644 --- a/Code/OysterPhysics3D/Universe.cpp +++ b/Code/OysterPhysics3D/Universe.cpp @@ -35,7 +35,7 @@ bool Universe::Intersects( const ICollideable &target ) const return true; } -bool Universe::Intersects( const ICollideable &target, Float3 &worldPointOfContact ) const +bool Universe::Intersects( const ICollideable &target, Float4 &worldPointOfContact ) const { // universe touches everything switch( target.type ) { diff --git a/Code/OysterPhysics3D/Universe.h b/Code/OysterPhysics3D/Universe.h index aa497cbc..5f009e0b 100644 --- a/Code/OysterPhysics3D/Universe.h +++ b/Code/OysterPhysics3D/Universe.h @@ -21,7 +21,7 @@ namespace Oyster { namespace Collision3D virtual ::Utility::DynamicMemory::UniquePointer Clone( ) const; bool Intersects( const ICollideable &target ) const; - bool Intersects( const ICollideable &target, ::Oyster::Math::Float3 &worldPointOfContact ) const; + bool Intersects( const ICollideable &target, ::Oyster::Math::Float4 &worldPointOfContact ) const; bool Contains( const ICollideable &target ) const; }; } } From 96bf20e5ae07c1d77689c70ad7f6fe49f66251ef Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Wed, 18 Dec 2013 09:25:04 +0100 Subject: [PATCH 16/42] compile errors fixed --- Code/OysterPhysics3D/OysterCollision3D.cpp | 11 ++++++----- Code/OysterPhysics3D/Ray.cpp | 7 +++++++ Code/OysterPhysics3D/Ray.h | 1 + 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 526f87e7..00684898 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -671,14 +671,14 @@ namespace Oyster { namespace Collision3D { namespace Utility bool Intersect( const BoxAxisAligned &box, const Sphere &sphere, Float4 &worldPointOfContact ) { // by Robin Engman - - if(Intersect(box, sphere)) + if( Intersect(box, sphere) ) { Float distance; - Float3 boxMiddle = (box.maxVertex - box.minVertex)*0.5f; - Ray ray(boxMiddle, Float3(sphere.center - boxMiddle).Normalize()); + Float4 boxMiddle = (box.maxVertex - box.minVertex) * 0.5f; + Ray ray( boxMiddle, (sphere.center - boxMiddle).Normalize() ); Intersect( sphere, ray, distance ); worldPointOfContact = ray.origin + ray.direction * distance; + return true; } return false; @@ -784,10 +784,11 @@ namespace Oyster { namespace Collision3D { namespace Utility if( Intersect(box, sphere) ) { Float distance; - Ray ray( sphere.center, Float3(box.center - sphere.center) ); + Ray ray( sphere.center, box.center - sphere.center ); Intersect( box, ray, distance ); worldPointOfContact = ray.origin + ray.direction*distance; + return true; } return false; diff --git a/Code/OysterPhysics3D/Ray.cpp b/Code/OysterPhysics3D/Ray.cpp index b68ee68e..e7f21de8 100644 --- a/Code/OysterPhysics3D/Ray.cpp +++ b/Code/OysterPhysics3D/Ray.cpp @@ -22,6 +22,13 @@ Ray::Ray( const Float3 &o, const Float3 &d ) : ICollideable(Type_ray) this->collisionDistance = 0.0f; } +Ray::Ray( const Float4 &o, const Float4 &d ) : ICollideable(Type_ray) +{ + this->origin = o; + this->direction = d; + this->collisionDistance = 0.0f; +} + Ray::~Ray( ) {} Ray & Ray::operator = ( const Ray &ray ) diff --git a/Code/OysterPhysics3D/Ray.h b/Code/OysterPhysics3D/Ray.h index 79be0c21..a85580b3 100644 --- a/Code/OysterPhysics3D/Ray.h +++ b/Code/OysterPhysics3D/Ray.h @@ -30,6 +30,7 @@ namespace Oyster { namespace Collision3D Ray( ); Ray( const ::Oyster::Math::Float3 &origin, const ::Oyster::Math::Float3 &normalizedDirection ); + Ray( const ::Oyster::Math::Float4 &origin, const ::Oyster::Math::Float4 &normalizedDirection ); virtual ~Ray( ); Ray & operator = ( const Ray &ray ); From 5051a9e767beb0f00245b1f4e198e27451a4423a Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Wed, 18 Dec 2013 14:16:13 +0100 Subject: [PATCH 17/42] Major StateStruct and API update --- Bin/DLL/GamePhysics_x86D.pdb | Bin 1870848 -> 1838080 bytes .../Implementation/PhysicsAPI_Impl.cpp | 170 +++++------ .../Implementation/PhysicsAPI_Impl.h | 18 +- .../Implementation/SimpleRigidBody.cpp | 138 +++++---- .../Implementation/SimpleRigidBody.h | 26 +- .../Implementation/SphericalRigidBody.cpp | 145 ++++----- .../Implementation/SphericalRigidBody.h | 26 +- Code/GamePhysics/PhysicsAPI.h | 282 +++++++++--------- Code/GamePhysics/PhysicsFormula-Impl.h | 3 +- Code/GamePhysics/PhysicsFormula.h | 1 + Code/GamePhysics/PhysicsStructs-Impl.h | 193 +++++++++--- Code/GamePhysics/PhysicsStructs.h | 80 +++-- Code/OysterMath/LinearMath.h | 33 +- Code/OysterMath/OysterMath.cpp | 14 +- Code/OysterMath/OysterMath.h | 20 +- Code/OysterPhysics3D/OysterPhysics3D.h | 60 +++- Code/OysterPhysics3D/RigidBody.cpp | 4 + Code/OysterPhysics3D/RigidBody.h | 1 + 18 files changed, 724 insertions(+), 490 deletions(-) diff --git a/Bin/DLL/GamePhysics_x86D.pdb b/Bin/DLL/GamePhysics_x86D.pdb index d19b70c22ccebd6d2c13a11b970152858509fd24..039b5f36a10f138fdd5f96a59af2b9ecc6bce1e0 100644 GIT binary patch delta 443141 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
  • 6WMula$TZmXn14s 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 z%0A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컱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%0A71P+5=kZoX!!LfI#IdR2Y1f?rRLjIJ+ItcjA_| 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.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - //this->worldScene.GetCustomBody( tempRef )->Apply //!< @todo TODO: need function - this->worldScene.SetAsAltered( tempRef ); - } -} - -void API_Impl::SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const Float4x4 &localI ) -{ // deprecated - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - this->worldScene.GetCustomBody( tempRef )->SetMomentOfInertiaTensor_KeepVelocity( localI ); - } -} - -void API_Impl::SetMomentOfInertiaTensor_KeepMomentum( const ICustomBody* objRef, const Float4x4 &localI ) -{ // deprecated - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - this->worldScene.GetCustomBody( tempRef )->SetMomentOfInertiaTensor_KeepMomentum( localI ); - } -} - -void API_Impl::SetMass_KeepVelocity( const ICustomBody* objRef, Float m ) -{ // deprecated - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - this->worldScene.GetCustomBody( tempRef )->SetMass_KeepVelocity( m ); - } -} - -void API_Impl::SetMass_KeepMomentum( const ICustomBody* objRef, Float m ) -{ // deprecated - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - this->worldScene.GetCustomBody( tempRef )->SetMass_KeepMomentum( m ); - } -} - -void API_Impl::SetCenter( const ICustomBody* objRef, const Float3 &worldPos ) -{ - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - //this->worldScene.GetCustomBody( tempRef )->Set //!< @todo TODO: need function - this->worldScene.EvaluatePosition( tempRef ); - } -} - -void API_Impl::SetRotation( const ICustomBody* objRef, const Float4x4 &rotation ) -{ - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - this->worldScene.GetCustomBody( tempRef )->SetRotation( rotation ); - this->worldScene.EvaluatePosition( tempRef ); - } -} - -void API_Impl::SetOrientation( const ICustomBody* objRef, const Float4x4 &orientation ) -{ - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - this->worldScene.GetCustomBody( tempRef )->SetOrientation( orientation ); - this->worldScene.EvaluatePosition( tempRef ); - } -} - -void API_Impl::SetSize( const ICustomBody* objRef, const Float3 &size ) -{ - unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); - if( tempRef != this->worldScene.invalid_ref ) - { - this->worldScene.GetCustomBody( tempRef )->SetSize( size ); - this->worldScene.EvaluatePosition( tempRef ); - } -} +//void API_Impl::ApplyForceAt( const ICustomBody* objRef, const Float3 &worldPos, const Float3 &worldF ) +//{ +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// //this->worldScene.GetCustomBody( tempRef )->Apply //!< @todo TODO: need function +// this->worldScene.SetAsAltered( tempRef ); +// } +//} +// +//void API_Impl::SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const Float4x4 &localI ) +//{ // deprecated +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// this->worldScene.GetCustomBody( tempRef )->SetMomentOfInertiaTensor_KeepVelocity( localI ); +// } +//} +// +//void API_Impl::SetMomentOfInertiaTensor_KeepMomentum( const ICustomBody* objRef, const Float4x4 &localI ) +//{ // deprecated +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// this->worldScene.GetCustomBody( tempRef )->SetMomentOfInertiaTensor_KeepMomentum( localI ); +// } +//} +// +//void API_Impl::SetMass_KeepVelocity( const ICustomBody* objRef, Float m ) +//{ // deprecated +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// this->worldScene.GetCustomBody( tempRef )->SetMass_KeepVelocity( m ); +// } +//} +// +//void API_Impl::SetMass_KeepMomentum( const ICustomBody* objRef, Float m ) +//{ // deprecated +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// this->worldScene.GetCustomBody( tempRef )->SetMass_KeepMomentum( m ); +// } +//} +// +//void API_Impl::SetCenter( const ICustomBody* objRef, const Float3 &worldPos ) +//{ +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// //this->worldScene.GetCustomBody( tempRef )->Set //!< @todo TODO: need function +// this->worldScene.EvaluatePosition( tempRef ); +// } +//} +// +//void API_Impl::SetRotation( const ICustomBody* objRef, const Float4x4 &rotation ) +//{ +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// this->worldScene.GetCustomBody( tempRef )->SetRotation( rotation ); +// this->worldScene.EvaluatePosition( tempRef ); +// } +//} +// +//void API_Impl::SetOrientation( const ICustomBody* objRef, const Float4x4 &orientation ) +//{ +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// this->worldScene.GetCustomBody( tempRef )->SetOrientation( orientation ); +// this->worldScene.EvaluatePosition( tempRef ); +// } +//} +// +//void API_Impl::SetSize( const ICustomBody* objRef, const Float3 &size ) +//{ +// unsigned int tempRef = this->worldScene.GetTemporaryReferenceOf( objRef ); +// if( tempRef != this->worldScene.invalid_ref ) +// { +// this->worldScene.GetCustomBody( tempRef )->SetSize( size ); +// this->worldScene.EvaluatePosition( tempRef ); +// } +//} UniquePointer API_Impl::CreateRigidBody( const API::SimpleBodyDescription &desc ) const { diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h index aea4c013..d10d067a 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h @@ -30,16 +30,16 @@ namespace Oyster ::Utility::DynamicMemory::UniquePointer ExtractObject( const ICustomBody* objRef ); void DestroyObject( const ICustomBody* objRef ); - void ApplyForceAt( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &worldF ); + //void ApplyForceAt( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &worldF ); - void SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ); - void SetMomentOfInertiaTensor_KeepMomentum( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ); - void SetMass_KeepVelocity( const ICustomBody* objRef, ::Oyster::Math::Float m ); - void SetMass_KeepMomentum( const ICustomBody* objRef, ::Oyster::Math::Float m ); - void SetCenter( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos ); - void SetRotation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &rotation ); - void SetOrientation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &orientation ); - void SetSize( const ICustomBody* objRef, const ::Oyster::Math::Float3 &size ); + //void SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ); + //void SetMomentOfInertiaTensor_KeepMomentum( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ); + //void SetMass_KeepVelocity( const ICustomBody* objRef, ::Oyster::Math::Float m ); + //void SetMass_KeepMomentum( const ICustomBody* objRef, ::Oyster::Math::Float m ); + //void SetCenter( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos ); + //void SetRotation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &rotation ); + //void SetOrientation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &orientation ); + //void SetSize( const ICustomBody* objRef, const ::Oyster::Math::Float3 &size ); ::Utility::DynamicMemory::UniquePointer CreateRigidBody( const SimpleBodyDescription &desc ) const; ::Utility::DynamicMemory::UniquePointer CreateRigidBody( const SphericalBodyDescription &desc ) const; diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 49309a99..0399d5de 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -18,7 +18,7 @@ SimpleRigidBody::SimpleRigidBody() SimpleRigidBody::SimpleRigidBody( const API::SimpleBodyDescription &desc ) { - this->rigid = RigidBody( Box( desc.rotation, desc.centerPosition, desc.size ), + this->rigid = RigidBody( Box( desc.rotation, desc.centerPosition.xyz, desc.size.xyz ), desc.mass, desc.inertiaTensor ); this->gravityNormal = Float3::null; @@ -44,12 +44,18 @@ UniquePointer SimpleRigidBody::Clone() const SimpleRigidBody::State SimpleRigidBody::GetState() const { - return State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); + return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, + this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, + this->rigid.box.center, AngularAxis(this->rigid.box.rotation), + Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); } SimpleRigidBody::State & SimpleRigidBody::GetState( SimpleRigidBody::State &targetMem ) const { - return targetMem = State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); + return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, + this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, + this->rigid.box.center, AngularAxis(this->rigid.box.rotation), + Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); } void SimpleRigidBody::SetState( const SimpleRigidBody::State &state ) @@ -100,25 +106,25 @@ Float3 & SimpleRigidBody::GetGravityNormal( Float3 &targetMem ) const return targetMem = this->gravityNormal; } -Float3 & SimpleRigidBody::GetCenter( Float3 &targetMem ) const -{ - return targetMem = this->rigid.box.center; -} - -Float4x4 & SimpleRigidBody::GetRotation( Float4x4 &targetMem ) const -{ - return targetMem = this->rigid.box.rotation; -} - -Float4x4 & SimpleRigidBody::GetOrientation( Float4x4 &targetMem ) const -{ - return targetMem = this->rigid.GetOrientation(); -} - -Float4x4 & SimpleRigidBody::GetView( Float4x4 &targetMem ) const -{ - return targetMem = this->rigid.GetView(); -} +//Float3 & SimpleRigidBody::GetCenter( Float3 &targetMem ) const +//{ +// return targetMem = this->rigid.box.center; +//} +// +//Float4x4 & SimpleRigidBody::GetRotation( Float4x4 &targetMem ) const +//{ +// return targetMem = this->rigid.box.rotation; +//} +// +//Float4x4 & SimpleRigidBody::GetOrientation( Float4x4 &targetMem ) const +//{ +// return targetMem = this->rigid.GetOrientation(); +//} +// +//Float4x4 & SimpleRigidBody::GetView( Float4x4 &targetMem ) const +//{ +// return targetMem = this->rigid.GetView(); +//} Float3 SimpleRigidBody::GetRigidLinearVelocity() const { @@ -158,47 +164,47 @@ void SimpleRigidBody::SetGravityNormal( const Float3 &normalizedVector ) this->gravityNormal = normalizedVector; } -void SimpleRigidBody::SetMomentOfInertiaTensor_KeepVelocity( const Float4x4 &localI ) -{ - this->rigid.SetMomentOfInertia_KeepVelocity( localI ); -} - -void SimpleRigidBody::SetMomentOfInertiaTensor_KeepMomentum( const Float4x4 &localI ) -{ - this->rigid.SetMomentOfInertia_KeepMomentum( localI ); -} - -void SimpleRigidBody::SetMass_KeepVelocity( Float m ) -{ - this->rigid.SetMass_KeepVelocity( m ); -} - -void SimpleRigidBody::SetMass_KeepMomentum( Float m ) -{ - this->rigid.SetMass_KeepMomentum( m ); -} - -void SimpleRigidBody::SetCenter( const Float3 &worldPos ) -{ - this->rigid.SetCenter( worldPos ); -} - -void SimpleRigidBody::SetRotation( const Float4x4 &rotation ) -{ - this->rigid.SetRotation( rotation ); -} - -void SimpleRigidBody::SetOrientation( const Float4x4 &orientation ) -{ - this->rigid.SetOrientation( orientation ); -} - -void SimpleRigidBody::SetSize( const Float3 &size ) -{ - this->rigid.SetSize( size ); -} - -void SimpleRigidBody::SetMomentum( const Float3 &worldG ) -{ - this->rigid.SetLinearMomentum( worldG ); -} \ No newline at end of file +//void SimpleRigidBody::SetMomentOfInertiaTensor_KeepVelocity( const Float4x4 &localI ) +//{ +// this->rigid.SetMomentOfInertia_KeepVelocity( localI ); +//} +// +//void SimpleRigidBody::SetMomentOfInertiaTensor_KeepMomentum( const Float4x4 &localI ) +//{ +// this->rigid.SetMomentOfInertia_KeepMomentum( localI ); +//} +// +//void SimpleRigidBody::SetMass_KeepVelocity( Float m ) +//{ +// this->rigid.SetMass_KeepVelocity( m ); +//} +// +//void SimpleRigidBody::SetMass_KeepMomentum( Float m ) +//{ +// this->rigid.SetMass_KeepMomentum( m ); +//} +// +//void SimpleRigidBody::SetCenter( const Float3 &worldPos ) +//{ +// this->rigid.SetCenter( worldPos ); +//} +// +//void SimpleRigidBody::SetRotation( const Float4x4 &rotation ) +//{ +// this->rigid.SetRotation( rotation ); +//} +// +//void SimpleRigidBody::SetOrientation( const Float4x4 &orientation ) +//{ +// this->rigid.SetOrientation( orientation ); +//} +// +//void SimpleRigidBody::SetSize( const Float3 &size ) +//{ +// this->rigid.SetSize( size ); +//} +// +//void SimpleRigidBody::SetMomentum( const Float3 &worldG ) +//{ +// this->rigid.SetLinearMomentum( worldG ); +//} diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.h b/Code/GamePhysics/Implementation/SimpleRigidBody.h index 40448292..c314d09d 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.h +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.h @@ -29,25 +29,25 @@ namespace Oyster { namespace Physics ::Oyster::Collision3D::Sphere & GetBoundingSphere( ::Oyster::Collision3D::Sphere &targetMem = ::Oyster::Collision3D::Sphere() ) const; ::Oyster::Math::Float4 & GetNormalAt( const ::Oyster::Math::Float4 &worldPos, ::Oyster::Math::Float4 &targetMem = ::Oyster::Math::Float4() ) const; ::Oyster::Math::Float3 & GetGravityNormal( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; - ::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; - ::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; - ::Oyster::Math::Float4x4 & GetOrientation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; - ::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; + //::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; + //::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; + //::Oyster::Math::Float4x4 & GetOrientation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; + //::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; UpdateState Update( ::Oyster::Math::Float timeStepLength ); void SetSubscription( EventAction_Collision functionPointer ); void SetGravity( bool ignore); void SetGravityNormal( const ::Oyster::Math::Float3 &normalizedVector ); - void SetMomentOfInertiaTensor_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ); - void SetMomentOfInertiaTensor_KeepMomentum( const ::Oyster::Math::Float4x4 &localI ); - void SetMass_KeepVelocity( ::Oyster::Math::Float m ); - void SetMass_KeepMomentum( ::Oyster::Math::Float m ); - void SetCenter( const ::Oyster::Math::Float3 &worldPos ); - void SetRotation( const ::Oyster::Math::Float4x4 &rotation ); - void SetOrientation( const ::Oyster::Math::Float4x4 &orientation ); - void SetSize( const ::Oyster::Math::Float3 &size ); - void SetMomentum( const ::Oyster::Math::Float3 &worldG ); + //void SetMomentOfInertiaTensor_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ); + //void SetMomentOfInertiaTensor_KeepMomentum( const ::Oyster::Math::Float4x4 &localI ); + //void SetMass_KeepVelocity( ::Oyster::Math::Float m ); + //void SetMass_KeepMomentum( ::Oyster::Math::Float m ); + //void SetCenter( const ::Oyster::Math::Float3 &worldPos ); + //void SetRotation( const ::Oyster::Math::Float4x4 &rotation ); + //void SetOrientation( const ::Oyster::Math::Float4x4 &orientation ); + //void SetSize( const ::Oyster::Math::Float3 &size ); + //void SetMomentum( const ::Oyster::Math::Float3 &worldG ); private: ::Oyster::Physics3D::RigidBody rigid; diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index 6b63a699..d7154f2f 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -19,7 +19,7 @@ SphericalRigidBody::SphericalRigidBody() SphericalRigidBody::SphericalRigidBody( const API::SphericalBodyDescription &desc ) { - this->rigid = RigidBody( Box( desc.rotation, desc.centerPosition, Float3(2.0f * desc.radius) ), + this->rigid = RigidBody( Box( desc.rotation, desc.centerPosition.xyz, Float3(2.0f * desc.radius) ), desc.mass, Formula::MomentOfInertia::CreateSphereMatrix( desc.mass, desc.radius ) ); this->gravityNormal = Float3::null; @@ -46,12 +46,18 @@ UniquePointer SphericalRigidBody::Clone() const SphericalRigidBody::State SphericalRigidBody::GetState() const { - return State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); + return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, + this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, + this->rigid.box.center, AngularAxis(this->rigid.box.rotation), + Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); } SphericalRigidBody::State & SphericalRigidBody::GetState( SphericalRigidBody::State &targetMem ) const { - return targetMem = State( this->rigid.box.boundingOffset.xyz, this->rigid.box.center.xyz, AngularAxis(this->rigid.box.rotation).xyz, this->rigid.linearMomentum, this->rigid.angularMomentum ); + return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, + this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, + this->rigid.box.center, AngularAxis(this->rigid.box.rotation), + Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); } void SphericalRigidBody::SetState( const SphericalRigidBody::State &state ) @@ -93,7 +99,6 @@ Sphere & SphericalRigidBody::GetBoundingSphere( Sphere &targetMem ) const Float4 & SphericalRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem ) const { - //! @todo TODO: better implementation needed return targetMem = (worldPos - this->rigid.box.center).GetNormalized(); } @@ -102,25 +107,25 @@ Float3 & SphericalRigidBody::GetGravityNormal( Float3 &targetMem ) const return targetMem = this->gravityNormal; } -Float3 & SphericalRigidBody::GetCenter( Float3 &targetMem ) const -{ - return targetMem = this->rigid.box.center; -} - -Float4x4 & SphericalRigidBody::GetRotation( Float4x4 &targetMem ) const -{ - return targetMem = this->rigid.box.rotation; -} - -Float4x4 & SphericalRigidBody::GetOrientation( Float4x4 &targetMem ) const -{ - return targetMem = this->rigid.GetOrientation(); -} - -Float4x4 & SphericalRigidBody::GetView( Float4x4 &targetMem ) const -{ - return targetMem = this->rigid.GetView(); -} +//Float3 & SphericalRigidBody::GetCenter( Float3 &targetMem ) const +//{ +// return targetMem = this->rigid.box.center; +//} +// +//Float4x4 & SphericalRigidBody::GetRotation( Float4x4 &targetMem ) const +//{ +// return targetMem = this->rigid.box.rotation; +//} +// +//Float4x4 & SphericalRigidBody::GetOrientation( Float4x4 &targetMem ) const +//{ +// return targetMem = this->rigid.GetOrientation(); +//} +// +//Float4x4 & SphericalRigidBody::GetView( Float4x4 &targetMem ) const +//{ +// return targetMem = this->rigid.GetView(); +//} Float3 SphericalRigidBody::GetRigidLinearVelocity() const { @@ -160,50 +165,50 @@ void SphericalRigidBody::SetGravityNormal( const Float3 &normalizedVector ) this->gravityNormal = normalizedVector; } -void SphericalRigidBody::SetMomentOfInertiaTensor_KeepVelocity( const Float4x4 &localI ) -{ - this->rigid.SetMomentOfInertia_KeepVelocity( localI ); -} - -void SphericalRigidBody::SetMomentOfInertiaTensor_KeepMomentum( const Float4x4 &localI ) -{ - this->rigid.SetMomentOfInertia_KeepMomentum( localI ); -} - -void SphericalRigidBody::SetMass_KeepVelocity( Float m ) -{ - this->rigid.SetMass_KeepVelocity( m ); -} - -void SphericalRigidBody::SetMass_KeepMomentum( Float m ) -{ - this->rigid.SetMass_KeepMomentum( m ); -} - -void SphericalRigidBody::SetCenter( const Float3 &worldPos ) -{ - this->rigid.SetCenter( worldPos ); - this->body.center = worldPos; -} - -void SphericalRigidBody::SetRotation( const Float4x4 &rotation ) -{ - this->rigid.SetRotation( rotation ); -} - -void SphericalRigidBody::SetOrientation( const Float4x4 &orientation ) -{ - this->rigid.SetOrientation( orientation ); - this->body.center = orientation.v[3].xyz; -} - -void SphericalRigidBody::SetSize( const Float3 &size ) -{ - this->rigid.SetSize( size ); - this->body.radius = 0.5f * Min( Min( size.x, size.y ), size.z ); // inline Min( FloatN )? -} - -void SphericalRigidBody::SetMomentum( const Float3 &worldG ) -{ - this->rigid.SetLinearMomentum( worldG ); -} \ No newline at end of file +//void SphericalRigidBody::SetMomentOfInertiaTensor_KeepVelocity( const Float4x4 &localI ) +//{ +// this->rigid.SetMomentOfInertia_KeepVelocity( localI ); +//} +// +//void SphericalRigidBody::SetMomentOfInertiaTensor_KeepMomentum( const Float4x4 &localI ) +//{ +// this->rigid.SetMomentOfInertia_KeepMomentum( localI ); +//} +// +//void SphericalRigidBody::SetMass_KeepVelocity( Float m ) +//{ +// this->rigid.SetMass_KeepVelocity( m ); +//} +// +//void SphericalRigidBody::SetMass_KeepMomentum( Float m ) +//{ +// this->rigid.SetMass_KeepMomentum( m ); +//} +// +//void SphericalRigidBody::SetCenter( const Float3 &worldPos ) +//{ +// this->rigid.SetCenter( worldPos ); +// this->body.center = worldPos; +//} +// +//void SphericalRigidBody::SetRotation( const Float4x4 &rotation ) +//{ +// this->rigid.SetRotation( rotation ); +//} +// +//void SphericalRigidBody::SetOrientation( const Float4x4 &orientation ) +//{ +// this->rigid.SetOrientation( orientation ); +// this->body.center = orientation.v[3].xyz; +//} +// +//void SphericalRigidBody::SetSize( const Float3 &size ) +//{ +// this->rigid.SetSize( size ); +// this->body.radius = 0.5f * Min( Min( size.x, size.y ), size.z ); // inline Min( FloatN )? +//} +// +//void SphericalRigidBody::SetMomentum( const Float3 &worldG ) +//{ +// this->rigid.SetLinearMomentum( worldG ); +//} diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.h b/Code/GamePhysics/Implementation/SphericalRigidBody.h index cf02a10c..3136f4e7 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.h +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.h @@ -30,25 +30,25 @@ namespace Oyster { namespace Physics ::Oyster::Collision3D::Sphere & GetBoundingSphere( ::Oyster::Collision3D::Sphere &targetMem = ::Oyster::Collision3D::Sphere() ) const; ::Oyster::Math::Float4 & GetNormalAt( const ::Oyster::Math::Float4 &worldPos, ::Oyster::Math::Float4 &targetMem = ::Oyster::Math::Float4() ) const; ::Oyster::Math::Float3 & GetGravityNormal( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; - ::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; - ::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; - ::Oyster::Math::Float4x4 & GetOrientation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; - ::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; + //::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const; + //::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; + //::Oyster::Math::Float4x4 & GetOrientation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; + //::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; UpdateState Update( ::Oyster::Math::Float timeStepLength ); void SetSubscription( EventAction_Collision functionPointer ); void SetGravity( bool ignore); void SetGravityNormal( const ::Oyster::Math::Float3 &normalizedVector ); - void SetMomentOfInertiaTensor_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ); - void SetMomentOfInertiaTensor_KeepMomentum( const ::Oyster::Math::Float4x4 &localI ); - void SetMass_KeepVelocity( ::Oyster::Math::Float m ); - void SetMass_KeepMomentum( ::Oyster::Math::Float m ); - void SetCenter( const ::Oyster::Math::Float3 &worldPos ); - void SetRotation( const ::Oyster::Math::Float4x4 &rotation ); - void SetOrientation( const ::Oyster::Math::Float4x4 &orientation ); - void SetSize( const ::Oyster::Math::Float3 &size ); - void SetMomentum( const ::Oyster::Math::Float3 &worldG ); + //void SetMomentOfInertiaTensor_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ); + //void SetMomentOfInertiaTensor_KeepMomentum( const ::Oyster::Math::Float4x4 &localI ); + //void SetMass_KeepVelocity( ::Oyster::Math::Float m ); + //void SetMass_KeepMomentum( ::Oyster::Math::Float m ); + //void SetCenter( const ::Oyster::Math::Float3 &worldPos ); + //void SetRotation( const ::Oyster::Math::Float4x4 &rotation ); + //void SetOrientation( const ::Oyster::Math::Float4x4 &orientation ); + //void SetSize( const ::Oyster::Math::Float3 &size ); + //void SetMomentum( const ::Oyster::Math::Float3 &worldG ); private: ::Oyster::Physics3D::RigidBody rigid; diff --git a/Code/GamePhysics/PhysicsAPI.h b/Code/GamePhysics/PhysicsAPI.h index 46c8c70d..945247b0 100644 --- a/Code/GamePhysics/PhysicsAPI.h +++ b/Code/GamePhysics/PhysicsAPI.h @@ -124,73 +124,73 @@ namespace Oyster ********************************************************/ virtual void DestroyObject( const ICustomBody* objRef ) = 0; - /******************************************************** - * Apply force on an object. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param worldPos: Relative to the world origo. (Not relative to object) [m] - * @param worldF: Vector with the direction and magnitude of the force. [N] - ********************************************************/ - virtual void ApplyForceAt( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &worldF ) = 0; + ///******************************************************** + // * Apply force on an object. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param worldPos: Relative to the world origo. (Not relative to object) [m] + // * @param worldF: Vector with the direction and magnitude of the force. [N] + // ********************************************************/ + //virtual void ApplyForceAt( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &worldF ) = 0; - /******************************************************** - * Sets the MomentOfInertia tensor matrix of an object without changing it's angular velocity. - * Noticeable effect: The angular momentum will change. Changing the amount of kinetic energy. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param localI: The tensor matrix relative to the axises of the object. @see MomentOfInertia namespace. - ********************************************************/ - virtual void SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ) = 0; - - /******************************************************** - * Sets the MomentOfInertia tensor matrix of an object without changing it's angular momentum. - * Noticeable effect: The angular velocity will change. Can be used to create slow effects. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param localI: The tensor matrix relative to the axises of the object. @see MomentOfInertia namespace. - ********************************************************/ - virtual void SetMomentOfInertiaTensor_KeepMomentum( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ) = 0; - - /******************************************************** - * Sets the mass of an object without changing it's linear velocity. - * Noticeable effect: The linear momentum will change. Changing the amount of kinetic energy. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param m: [kg] - ********************************************************/ - virtual void SetMass_KeepVelocity( const ICustomBody* objRef, ::Oyster::Math::Float m ) = 0; - - /******************************************************** - * Sets the mass of an object without changing it's linear velocity. - * Noticeable effect: The linear velocity will change. Can be used to create slow effects. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param m: [kg] - ********************************************************/ - virtual void SetMass_KeepMomentum( const ICustomBody* objRef, ::Oyster::Math::Float m ) = 0; - - /******************************************************** - * Instantly moves an object. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param worldPos: Relative to the world origo. (Not relative to object) [m] - ********************************************************/ - virtual void SetCenter( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos ) = 0; - - /******************************************************** - * Instantly redirects object. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param rotation: New rotation. - ********************************************************/ - virtual void SetRotation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &rotation ) = 0; - - /******************************************************** - * Instantly moves and redirects object. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param orientation: New orientation. - ********************************************************/ - virtual void SetOrientation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &orientation ) = 0; - - /******************************************************** - * Resizes the boundingBox. - * @param objRef: A pointer to the ICustomBody representing a physical object. - * @param size: New size of this [m] - ********************************************************/ - virtual void SetSize( const ICustomBody* objRef, const ::Oyster::Math::Float3 &size ) = 0; + ///******************************************************** + // * Sets the MomentOfInertia tensor matrix of an object without changing it's angular velocity. + // * Noticeable effect: The angular momentum will change. Changing the amount of kinetic energy. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param localI: The tensor matrix relative to the axises of the object. @see MomentOfInertia namespace. + // ********************************************************/ + //virtual void SetMomentOfInertiaTensor_KeepVelocity( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ) = 0; + // + ///******************************************************** + // * Sets the MomentOfInertia tensor matrix of an object without changing it's angular momentum. + // * Noticeable effect: The angular velocity will change. Can be used to create slow effects. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param localI: The tensor matrix relative to the axises of the object. @see MomentOfInertia namespace. + // ********************************************************/ + //virtual void SetMomentOfInertiaTensor_KeepMomentum( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &localI ) = 0; + // + ///******************************************************** + // * Sets the mass of an object without changing it's linear velocity. + // * Noticeable effect: The linear momentum will change. Changing the amount of kinetic energy. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param m: [kg] + // ********************************************************/ + //virtual void SetMass_KeepVelocity( const ICustomBody* objRef, ::Oyster::Math::Float m ) = 0; + // + ///******************************************************** + // * Sets the mass of an object without changing it's linear velocity. + // * Noticeable effect: The linear velocity will change. Can be used to create slow effects. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param m: [kg] + // ********************************************************/ + //virtual void SetMass_KeepMomentum( const ICustomBody* objRef, ::Oyster::Math::Float m ) = 0; + // + ///******************************************************** + // * Instantly moves an object. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param worldPos: Relative to the world origo. (Not relative to object) [m] + // ********************************************************/ + //virtual void SetCenter( const ICustomBody* objRef, const ::Oyster::Math::Float3 &worldPos ) = 0; + // + ///******************************************************** + // * Instantly redirects object. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param rotation: New rotation. + // ********************************************************/ + //virtual void SetRotation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &rotation ) = 0; + // + ///******************************************************** + // * Instantly moves and redirects object. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param orientation: New orientation. + // ********************************************************/ + //virtual void SetOrientation( const ICustomBody* objRef, const ::Oyster::Math::Float4x4 &orientation ) = 0; + // + ///******************************************************** + // * Resizes the boundingBox. + // * @param objRef: A pointer to the ICustomBody representing a physical object. + // * @param size: New size of this [m] + // ********************************************************/ + //virtual void SetSize( const ICustomBody* objRef, const ::Oyster::Math::Float3 &size ) = 0; /******************************************************** * Creates a new dynamically allocated object that can be used as a component for more complex ICustomBodies. @@ -307,30 +307,30 @@ namespace Oyster ********************************************************/ virtual ::Oyster::Math::Float3 & GetGravityNormal( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const = 0; - /******************************************************** - * The world position of this center of gravity. - * @param targetMem: Provided memory that written into and then returned. - * @return a position in worldSpace. - ********************************************************/ - virtual ::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const = 0; - - /******************************************************** - * @param targetMem: Provided memory that written into and then returned. - * @return a copy of this's rotation matrix. - ********************************************************/ - virtual ::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const = 0; - - /******************************************************** - * @param targetMem: Provided memory that written into and then returned. - * @return a copy of this's orientation matrix. - ********************************************************/ - virtual ::Oyster::Math::Float4x4 & GetOrientation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const = 0; - - /******************************************************** - * @param targetMem: Provided memory that written into and then returned. - * @return a copy of this's view matrix. - ********************************************************/ - virtual ::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const = 0; + ///******************************************************** + // * The world position of this center of gravity. + // * @param targetMem: Provided memory that written into and then returned. + // * @return a position in worldSpace. + // ********************************************************/ + //virtual ::Oyster::Math::Float3 & GetCenter( ::Oyster::Math::Float3 &targetMem = ::Oyster::Math::Float3() ) const = 0; + // + ///******************************************************** + // * @param targetMem: Provided memory that written into and then returned. + // * @return a copy of this's rotation matrix. + // ********************************************************/ + //virtual ::Oyster::Math::Float4x4 & GetRotation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const = 0; + // + ///******************************************************** + // * @param targetMem: Provided memory that written into and then returned. + // * @return a copy of this's orientation matrix. + // ********************************************************/ + //virtual ::Oyster::Math::Float4x4 & GetOrientation( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const = 0; + // + ///******************************************************** + // * @param targetMem: Provided memory that written into and then returned. + // * @return a copy of this's view matrix. + // ********************************************************/ + //virtual ::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const = 0; /******************************************************** * To not be called if is in Engine @@ -356,59 +356,59 @@ namespace Oyster ********************************************************/ virtual void SetGravityNormal( const ::Oyster::Math::Float3 &normalizedVector ) = 0; - /******************************************************** - * To not be called if is in Engine - * Use API::SetMomentOfInertiaTensor_KeepVelocity(...) instead - ********************************************************/ - virtual void SetMomentOfInertiaTensor_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ) = 0; - - /******************************************************** - * To not be called if is in Engine - * Use API::SetMomentOfInertiaTensor_KeepMomentum(...) - ********************************************************/ - virtual void SetMomentOfInertiaTensor_KeepMomentum( const ::Oyster::Math::Float4x4 &localI ) = 0; - - /******************************************************** - * To not be called if is in Engine - * Use API::SetMass_KeepVelocity(...) - ********************************************************/ - virtual void SetMass_KeepVelocity( ::Oyster::Math::Float m ) = 0; - - /******************************************************** - * To not be called if is in Engine - * Use API::SetMass_KeepMomentum(...) - ********************************************************/ - virtual void SetMass_KeepMomentum( ::Oyster::Math::Float m ) = 0; - - /******************************************************** - * To not be called if is in Engine - * Use API::SetCenter(...) - ********************************************************/ - virtual void SetCenter( const ::Oyster::Math::Float3 &worldPos ) = 0; - - /******************************************************** - * To not be called if is in Engine - * Use API::SetRotation(...) - ********************************************************/ - virtual void SetRotation( const ::Oyster::Math::Float4x4 &rotation ) = 0; - - /******************************************************** - * To not be called if is in Engine - * Use API::SetOrientation(...) - ********************************************************/ - virtual void SetOrientation( const ::Oyster::Math::Float4x4 &orientation ) = 0; + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetMomentOfInertiaTensor_KeepVelocity(...) instead + // ********************************************************/ + //virtual void SetMomentOfInertiaTensor_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ) = 0; + // + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetMomentOfInertiaTensor_KeepMomentum(...) + // ********************************************************/ + //virtual void SetMomentOfInertiaTensor_KeepMomentum( const ::Oyster::Math::Float4x4 &localI ) = 0; + // + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetMass_KeepVelocity(...) + // ********************************************************/ + //virtual void SetMass_KeepVelocity( ::Oyster::Math::Float m ) = 0; + // + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetMass_KeepMomentum(...) + // ********************************************************/ + //virtual void SetMass_KeepMomentum( ::Oyster::Math::Float m ) = 0; + // + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetCenter(...) + // ********************************************************/ + //virtual void SetCenter( const ::Oyster::Math::Float3 &worldPos ) = 0; + // + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetRotation(...) + // ********************************************************/ + //virtual void SetRotation( const ::Oyster::Math::Float4x4 &rotation ) = 0; + // + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetOrientation(...) + // ********************************************************/ + //virtual void SetOrientation( const ::Oyster::Math::Float4x4 &orientation ) = 0; - /******************************************************** - * To not be called if is in Engine - * Use API::SetSize(...) - ********************************************************/ - virtual void SetSize( const ::Oyster::Math::Float3 &size ) = 0; + ///******************************************************** + // * To not be called if is in Engine + // * Use API::SetSize(...) + // ********************************************************/ + //virtual void SetSize( const ::Oyster::Math::Float3 &size ) = 0; - /******************************************************** - * To not be called if is in Engine - * Use API::?? @todo TODO: - ********************************************************/ - virtual void SetMomentum( const ::Oyster::Math::Float3 &worldG ) = 0; + ///******************************************************** + // * To not be called if is in Engine + // * Use API::?? @todo TODO: + // ********************************************************/ + //virtual void SetMomentum( const ::Oyster::Math::Float3 &worldG ) = 0; }; } } diff --git a/Code/GamePhysics/PhysicsFormula-Impl.h b/Code/GamePhysics/PhysicsFormula-Impl.h index 2c97de24..c0d4ed64 100644 --- a/Code/GamePhysics/PhysicsFormula-Impl.h +++ b/Code/GamePhysics/PhysicsFormula-Impl.h @@ -38,9 +38,10 @@ namespace Oyster { namespace Physics { namespace Formula { inline ::Oyster::Math::Float Impulse( ::Oyster::Math::Float e, ::Oyster::Math::Float mA, ::Oyster::Math::Float gA, ::Oyster::Math::Float mB, ::Oyster::Math::Float gB ) { - return (e+1) * (mB*gA - mA*gB) / (mA + mB); + return (e + 1) * (mB*gA - mA*gB) / (mA + mB); } } + } } } #endif \ No newline at end of file diff --git a/Code/GamePhysics/PhysicsFormula.h b/Code/GamePhysics/PhysicsFormula.h index 156b9e45..c15d8078 100644 --- a/Code/GamePhysics/PhysicsFormula.h +++ b/Code/GamePhysics/PhysicsFormula.h @@ -2,6 +2,7 @@ #define PHYSICS_FORMULA_H #include "OysterMath.h" +#include "OysterPhysics3D.h" namespace Oyster { namespace Physics { namespace Formula { diff --git a/Code/GamePhysics/PhysicsStructs-Impl.h b/Code/GamePhysics/PhysicsStructs-Impl.h index daf108bb..d13fdd80 100644 --- a/Code/GamePhysics/PhysicsStructs-Impl.h +++ b/Code/GamePhysics/PhysicsStructs-Impl.h @@ -10,8 +10,8 @@ namespace Oyster { namespace Physics inline SimpleBodyDescription::SimpleBodyDescription() { this->rotation = ::Oyster::Math::Float4x4::identity; - this->centerPosition = ::Oyster::Math::Float3::null; - this->size = ::Oyster::Math::Float3( 1.0f ); + this->centerPosition = ::Oyster::Math::Float4::null; + this->size = ::Oyster::Math::Float4( 1.0f ); this->mass = 12.0f; this->inertiaTensor = ::Oyster::Math::Float4x4::identity; this->subscription = NULL; @@ -21,36 +21,66 @@ namespace Oyster { namespace Physics inline SphericalBodyDescription::SphericalBodyDescription() { this->rotation = ::Oyster::Math::Float4x4::identity; - this->centerPosition = ::Oyster::Math::Float3::null; + this->centerPosition = ::Oyster::Math::Float4::null; this->radius = 0.5f; this->mass = 10.0f; this->subscription = NULL; this->ignoreGravity = false; } - inline CustomBodyState::CustomBodyState( const ::Oyster::Math::Float3 &reach, const ::Oyster::Math::Float3 ¢erPos, const ::Oyster::Math::Float3 &rotation, const ::Oyster::Math::Float3 &linearMomentum, const ::Oyster::Math::Float3 &angularMomentum ) + inline CustomBodyState::CustomBodyState( ::Oyster::Math::Float mass, ::Oyster::Math::Float restitutionCoeff, ::Oyster::Math::Float frictionCoeff, const ::Oyster::Math::Float4x4 &inertiaTensor, const ::Oyster::Math::Float4 &reach, const ::Oyster::Math::Float4 ¢erPos, const ::Oyster::Math::Float4 &rotation, const ::Oyster::Math::Float4 &linearMomentum, const ::Oyster::Math::Float4 &angularMomentum ) { - this->reach = ::Oyster::Math::Float4( reach, 0.0f ); - this->centerPos = ::Oyster::Math::Float4( centerPos, 1.0f ); - this->angularAxis = ::Oyster::Math::Float4( rotation, 0.0f ); - this->linearMomentum = ::Oyster::Math::Float4( linearMomentum, 0.0f ); - this->angularMomentum = ::Oyster::Math::Float4( angularMomentum, 0.0f ); + this->mass = mass; + this->restitutionCoeff = restitutionCoeff; + this->frictionCoeff = frictionCoeff; + this->inertiaTensor = inertiaTensor; + this->reach = ::Oyster::Math::Float4( reach.xyz, 0.0f ); + this->centerPos = ::Oyster::Math::Float4( centerPos.xyz, 1.0f ); + this->angularAxis = ::Oyster::Math::Float4( rotation.xyz, 0.0f ); + this->linearMomentum = ::Oyster::Math::Float4( linearMomentum.xyz, 0.0f ); + this->angularMomentum = ::Oyster::Math::Float4( angularMomentum.xyz, 0.0f ); + this->linearImpulse = this->angularImpulse = ::Oyster::Math::Float4::null; this->isSpatiallyAltered = this->isDisturbed = false; } inline CustomBodyState & CustomBodyState::operator = ( const CustomBodyState &state ) { + this->mass = state.mass; + this->restitutionCoeff = state.restitutionCoeff; + this->frictionCoeff = state.frictionCoeff; + this->inertiaTensor = state.inertiaTensor; this->reach = state.reach; this->centerPos = state.centerPos; this->angularAxis = state.angularAxis; this->linearMomentum = state.linearMomentum; this->angularMomentum = state.angularMomentum; - + this->linearImpulse = state.linearImpulse; + this->angularImpulse = state.angularImpulse; this->isSpatiallyAltered = state.isSpatiallyAltered; this->isDisturbed = state.isDisturbed; return *this; } + inline const ::Oyster::Math::Float CustomBodyState::GetMass() const + { + return this->mass; + } + + inline const ::Oyster::Math::Float CustomBodyState::GetRestitutionCoeff() const + { + return this->restitutionCoeff; + } + + inline const ::Oyster::Math::Float CustomBodyState::GetFrictionCoeff() const + { + return this->frictionCoeff; + } + + inline const ::Oyster::Math::Float4x4 & CustomBodyState::GetMomentOfInertia() const + { + return this->inertiaTensor; + } + inline const ::Oyster::Math::Float4 & CustomBodyState::GetReach() const { return this->reach; @@ -76,16 +106,14 @@ namespace Oyster { namespace Physics return ::Oyster::Math3D::RotationMatrix( this->GetAngularAxis().xyz ); } - inline const ::Oyster::Math::Float CustomBodyState::GetMass() const + inline ::Oyster::Math::Float4x4 CustomBodyState::GetOrientation() const { - //! @todo TODO: stub to be implemented (CustomBodyState::GetMass) - return 1.0f; + return ::Oyster::Math3D::OrientationMatrix( this->angularAxis.xyz, this->centerPos.xyz ); } - inline const ::Oyster::Math::Float CustomBodyState::GetRestitutionCoeff() const + inline ::Oyster::Math::Float4x4 CustomBodyState::GetView() const { - //! @todo TODO: stub to be implemented (CustomBodyState::GetRestitutionCoeff) - return 1.0f; + return ::Oyster::Math3D::ViewMatrix( this->angularAxis.xyz, this->centerPos.xyz ); } inline const ::Oyster::Math::Float4 & CustomBodyState::GetLinearMomentum() const @@ -93,15 +121,10 @@ namespace Oyster { namespace Physics return this->linearMomentum; } - inline ::Oyster::Math::Float4 CustomBodyState::GetLinearMomentum( const ::Oyster::Math::Float3 &at ) const - { - return this->GetLinearMomentum( ::Oyster::Math::Float4(at, 1.0f) ); - } - inline ::Oyster::Math::Float4 CustomBodyState::GetLinearMomentum( const ::Oyster::Math::Float4 &at ) const { - //! @todo TODO: stub to be implemented (CustomBodyState::GetLinearMomentum) - return ::Oyster::Math::Float4::null; + //return this->linearMomentum + ::Oyster::Physics3D::Formula::TangentialLinearMomentum( this->angularMomentum, at - this->centerPos ); // C3083 error? + return this->linearMomentum + ::Oyster::Math::Float4( this->angularMomentum.xyz.Cross((at - this->centerPos).xyz), 0.0f ); } inline const ::Oyster::Math::Float4 & CustomBodyState::GetAngularMomentum() const @@ -109,25 +132,79 @@ namespace Oyster { namespace Physics return this->angularMomentum; } - inline void CustomBodyState::SetSize( const ::Oyster::Math::Float3 &size ) + inline const ::Oyster::Math::Float4 & CustomBodyState::GetLinearImpulse() const + { + return this->linearImpulse; + } + + inline const ::Oyster::Math::Float4 & CustomBodyState::GetAngularImpulse() const + { + return this->angularImpulse; + } + + inline void CustomBodyState::SetMass_KeepMomentum( ::Oyster::Math::Float m ) + { + this->mass = m; + } + + inline void CustomBodyState::SetMass_KeepVelocity( ::Oyster::Math::Float m ) + { + if( m != 0.0f ) + { // sanity block! + // Formula::LinearMomentum( m, Formula::LinearVelocity(this->mass, this->linearMomentum) ) + // is the same as (this->linearMomentum / this->mass) * m = (m / this->mass) * this->linearMomentum + this->linearMomentum *= (m / this->mass); + this->mass = m; + } + } + + inline void CustomBodyState::SetRestitutionCoeff( ::Oyster::Math::Float e ) + { + this->restitutionCoeff = e; + } + + inline void CustomBodyState::SetFrictionCoeff( ::Oyster::Math::Float u ) + { + this->frictionCoeff = u; + } + + inline void CustomBodyState::SetMomentOfInertia_KeepMomentum( const ::Oyster::Math::Float4x4 &tensor ) + { + this->inertiaTensor = tensor; + } + + inline void CustomBodyState::SetMomentOfInertia_KeepVelocity( const ::Oyster::Math::Float4x4 &tensor ) + { + if( tensor.GetDeterminant() != 0.0f ) + { // sanity block! + ::Oyster::Math::Float4x4 rotation = ::Oyster::Math3D::RotationMatrix(this->angularAxis.xyz); + //::Oyster::Math::Float4 w = ::Oyster::Physics3D::Formula::AngularVelocity( (rotation * this->inertiaTensor).GetInverse(), this->angularMomentum ); // C3083 error? + ::Oyster::Math::Float4 w = (rotation * this->inertiaTensor).GetInverse() * this->angularMomentum; + this->inertiaTensor = tensor; + //this->angularMomentum = ::Oyster::Physics3D::Formula::AngularMomentum( rotation * tensor, w ); // C3083 error? + this->angularMomentum = rotation * tensor * w; + } + } + + inline void CustomBodyState::SetSize( const ::Oyster::Math::Float4 &size ) { this->SetReach( 0.5f * size ); } - inline void CustomBodyState::SetReach( const ::Oyster::Math::Float3 &halfSize ) + inline void CustomBodyState::SetReach( const ::Oyster::Math::Float4 &halfSize ) { this->reach.xyz = halfSize; this->reach = ::Utility::Value::Max( this->reach, ::Oyster::Math::Float4::null ); this->isSpatiallyAltered = this->isDisturbed = true; } - inline void CustomBodyState::SetCenterPosition( const ::Oyster::Math::Float3 ¢erPos ) + inline void CustomBodyState::SetCenterPosition( const ::Oyster::Math::Float4 ¢erPos ) { this->centerPos.xyz = centerPos; this->isSpatiallyAltered = this->isDisturbed = true; } - inline void CustomBodyState::SetRotation( const ::Oyster::Math::Float3 &angularAxis ) + inline void CustomBodyState::SetRotation( const ::Oyster::Math::Float4 &angularAxis ) { this->angularAxis.xyz = angularAxis; this->isSpatiallyAltered = this->isDisturbed = true; @@ -135,43 +212,69 @@ namespace Oyster { namespace Physics inline void CustomBodyState::SetRotation( const ::Oyster::Math::Float4x4 &rotation ) { - this->SetRotation( ::Oyster::Math3D::AngularAxis(rotation).xyz ); + this->SetRotation( ::Oyster::Math3D::AngularAxis(rotation) ); } - inline void CustomBodyState::SetMass( ::Oyster::Math::Float m ) + inline void CustomBodyState::SetOrientation( const ::Oyster::Math::Float4x4 &orientation ) { - //! @todo TODO: stub to be implemented (CustomBodyState::SetRestitutionCoeff) + this->SetRotation( ::Oyster::Math3D::ExtractAngularAxis(orientation) ); + this->SetCenterPosition( orientation.v[3] ); } - inline void CustomBodyState::SetRestitutionCoeff( ::Oyster::Math::Float e ) + inline void CustomBodyState::SetLinearMomentum( const ::Oyster::Math::Float4 &g ) { - //! @todo TODO: stub to be implemented (CustomBodyState::SetRestitutionCoeff) - } - - inline void CustomBodyState::SetLinearMomentum( const ::Oyster::Math::Float3 &g ) - { - this->linearMomentum = ::Oyster::Math::Float4( g, 0.0f ); + this->linearMomentum.xyz = g; this->isDisturbed = true; } - inline void CustomBodyState::SetAngularMomentum( const ::Oyster::Math::Float3 &h ) + inline void CustomBodyState::SetAngularMomentum( const ::Oyster::Math::Float4 &h ) { - this->angularMomentum = ::Oyster::Math::Float4( h, 0.0f ); + this->angularMomentum.xyz = h; this->isDisturbed = true; } - inline void CustomBodyState::ApplyImpulse( const ::Oyster::Math::Float4 &j ) + inline void CustomBodyState::SetLinearImpulse( const ::Oyster::Math::Float4 &j ) { - this->linearMomentum += j; + this->linearImpulse.xyz = j; + this->isDisturbed = true; + } + + inline void CustomBodyState::SetAngularImpulse( const ::Oyster::Math::Float4 &j ) + { + this->angularImpulse.xyz = j; + this->isDisturbed = true; + } + + inline void CustomBodyState::AddRotation( const ::Oyster::Math::Float4 &angularAxis ) + { + this->angularAxis += angularAxis; + this->isSpatiallyAltered = this->isDisturbed = true; + } + + inline void CustomBodyState::AddTranslation( const ::Oyster::Math::Float4 &deltaPos ) + { + this->centerPos += deltaPos; + this->isSpatiallyAltered = this->isDisturbed = true; + } + + inline void CustomBodyState::ApplyLinearImpulse( const ::Oyster::Math::Float4 &j ) + { + this->linearImpulse += j; + this->isDisturbed = true; + } + + inline void CustomBodyState::ApplyAngularImpulse( const ::Oyster::Math::Float4 &j ) + { + this->angularImpulse += j; this->isDisturbed = true; } inline void CustomBodyState::ApplyImpulse( const ::Oyster::Math::Float4 &j, const ::Oyster::Math::Float4 &at, const ::Oyster::Math::Float4 &normal ) { - //! @todo TODO: stub to be implemented (CustomBodyState::ApplyImpulse) - - this->linearMomentum += j.Dot( normal ) * normal; // perpendicular impulse component - //this->angularImpulse += Formula:: ... + //::Oyster::Math::Float4 tangentialImpulse = ::Oyster::Physics3D::Formula::AngularMomentum( j, at - this->centerPos ); // C3083 error? + ::Oyster::Math::Float4 tangentialImpulse = ::Oyster::Math::Float4( (at - this->centerPos).xyz.Cross(j.xyz), 0.0f ); + this->linearImpulse += j - tangentialImpulse; + this->angularImpulse += tangentialImpulse; this->isDisturbed = true; } diff --git a/Code/GamePhysics/PhysicsStructs.h b/Code/GamePhysics/PhysicsStructs.h index e3c20fea..ce2b40cb 100644 --- a/Code/GamePhysics/PhysicsStructs.h +++ b/Code/GamePhysics/PhysicsStructs.h @@ -11,8 +11,8 @@ namespace Oyster { namespace Physics struct SimpleBodyDescription { ::Oyster::Math::Float4x4 rotation; - ::Oyster::Math::Float3 centerPosition; - ::Oyster::Math::Float3 size; + ::Oyster::Math::Float4 centerPosition; + ::Oyster::Math::Float4 size; ::Oyster::Math::Float mass; ::Oyster::Math::Float4x4 inertiaTensor; ::Oyster::Physics::ICustomBody::EventAction_Collision subscription; @@ -24,7 +24,7 @@ namespace Oyster { namespace Physics struct SphericalBodyDescription { ::Oyster::Math::Float4x4 rotation; - ::Oyster::Math::Float3 centerPosition; + ::Oyster::Math::Float4 centerPosition; ::Oyster::Math::Float radius; ::Oyster::Math::Float mass; ::Oyster::Physics::ICustomBody::EventAction_Collision subscription; @@ -36,46 +36,68 @@ namespace Oyster { namespace Physics struct CustomBodyState { public: - CustomBodyState( const ::Oyster::Math::Float3 &reach = ::Oyster::Math::Float3::null, - const ::Oyster::Math::Float3 ¢erPos = ::Oyster::Math::Float3::null, - const ::Oyster::Math::Float3 &rotation = ::Oyster::Math::Float3::null, - const ::Oyster::Math::Float3 &linearMomentum = ::Oyster::Math::Float3::null, - const ::Oyster::Math::Float3 &angularMomentum = ::Oyster::Math::Float3::null ); + CustomBodyState( ::Oyster::Math::Float mass = 1.0f, + ::Oyster::Math::Float restitutionCoeff = 1.0f, + ::Oyster::Math::Float frictionCoeff = 1.0f, + const ::Oyster::Math::Float4x4 &inertiaTensor = ::Oyster::Math::Float4x4::identity, + const ::Oyster::Math::Float4 &reach = ::Oyster::Math::Float4::null, + const ::Oyster::Math::Float4 ¢erPos = ::Oyster::Math::Float4::standard_unit_w, + const ::Oyster::Math::Float4 &rotation = ::Oyster::Math::Float4::null, + const ::Oyster::Math::Float4 &linearMomentum = ::Oyster::Math::Float4::null, + const ::Oyster::Math::Float4 &angularMomentum = ::Oyster::Math::Float4::null ); CustomBodyState & operator = ( const CustomBodyState &state ); - const ::Oyster::Math::Float4 & GetReach() const; - ::Oyster::Math::Float4 GetSize() const; - const ::Oyster::Math::Float4 & GetCenterPosition() const; - const ::Oyster::Math::Float4 & GetAngularAxis() const; - ::Oyster::Math::Float4x4 GetRotation() const; - const ::Oyster::Math::Float GetMass() const; - const ::Oyster::Math::Float GetRestitutionCoeff() const; - const ::Oyster::Math::Float4 & GetLinearMomentum() const; - ::Oyster::Math::Float4 GetLinearMomentum( const ::Oyster::Math::Float3 &at ) const; - ::Oyster::Math::Float4 GetLinearMomentum( const ::Oyster::Math::Float4 &at ) const; - const ::Oyster::Math::Float4 & GetAngularMomentum() const; + const ::Oyster::Math::Float GetMass() const; + const ::Oyster::Math::Float GetRestitutionCoeff() const; + const ::Oyster::Math::Float GetFrictionCoeff() const; + const ::Oyster::Math::Float4x4 & GetMomentOfInertia() const; + const ::Oyster::Math::Float4 & GetReach() const; + ::Oyster::Math::Float4 GetSize() const; + const ::Oyster::Math::Float4 & GetCenterPosition() const; + const ::Oyster::Math::Float4 & GetAngularAxis() const; + ::Oyster::Math::Float4x4 GetRotation() const; + ::Oyster::Math::Float4x4 GetOrientation() const; + ::Oyster::Math::Float4x4 GetView() const; + const ::Oyster::Math::Float4 & GetLinearMomentum() const; + ::Oyster::Math::Float4 GetLinearMomentum( const ::Oyster::Math::Float4 &at ) const; + const ::Oyster::Math::Float4 & GetAngularMomentum() const; + const ::Oyster::Math::Float4 & GetLinearImpulse() const; + const ::Oyster::Math::Float4 & GetAngularImpulse() const; - - void SetSize( const ::Oyster::Math::Float3 &size ); - void SetReach( const ::Oyster::Math::Float3 &halfSize ); - void SetCenterPosition( const ::Oyster::Math::Float3 ¢erPos ); - void SetRotation( const ::Oyster::Math::Float3 &angularAxis ); - void SetRotation( const ::Oyster::Math::Float4x4 &rotation ); - void SetMass( ::Oyster::Math::Float m ); + void SetMass_KeepMomentum( ::Oyster::Math::Float m ); + void SetMass_KeepVelocity( ::Oyster::Math::Float m ); void SetRestitutionCoeff( ::Oyster::Math::Float e ); - void SetLinearMomentum( const ::Oyster::Math::Float3 &g ); - void SetAngularMomentum( const ::Oyster::Math::Float3 &h ); + void SetFrictionCoeff( ::Oyster::Math::Float u ); + void SetMomentOfInertia_KeepMomentum( const ::Oyster::Math::Float4x4 &tensor ); + void SetMomentOfInertia_KeepVelocity( const ::Oyster::Math::Float4x4 &tensor ); + void SetSize( const ::Oyster::Math::Float4 &size ); + void SetReach( const ::Oyster::Math::Float4 &halfSize ); + void SetCenterPosition( const ::Oyster::Math::Float4 ¢erPos ); + void SetRotation( const ::Oyster::Math::Float4 &angularAxis ); + void SetRotation( const ::Oyster::Math::Float4x4 &rotation ); + void SetOrientation( const ::Oyster::Math::Float4x4 &orientation ); + void SetLinearMomentum( const ::Oyster::Math::Float4 &g ); + void SetAngularMomentum( const ::Oyster::Math::Float4 &h ); + void SetLinearImpulse( const ::Oyster::Math::Float4 &j ); + void SetAngularImpulse( const ::Oyster::Math::Float4 &j ); - void ApplyImpulse( const ::Oyster::Math::Float4 &j ); + void AddRotation( const ::Oyster::Math::Float4 &angularAxis ); + void AddTranslation( const ::Oyster::Math::Float4 &deltaPos ); + + void ApplyLinearImpulse( const ::Oyster::Math::Float4 &j ); + void ApplyAngularImpulse( const ::Oyster::Math::Float4 &j ); void ApplyImpulse( const ::Oyster::Math::Float4 &j, const ::Oyster::Math::Float4 &at, const ::Oyster::Math::Float4 &normal ); bool IsSpatiallyAltered() const; bool IsDisturbed() const; private: + ::Oyster::Math::Float mass, restitutionCoeff, frictionCoeff; + ::Oyster::Math::Float4x4 inertiaTensor; ::Oyster::Math::Float4 reach, centerPos, angularAxis; ::Oyster::Math::Float4 linearMomentum, angularMomentum; + ::Oyster::Math::Float4 linearImpulse, angularImpulse; bool isSpatiallyAltered, isDisturbed; }; diff --git a/Code/OysterMath/LinearMath.h b/Code/OysterMath/LinearMath.h index 8bca1c19..f686ada4 100644 --- a/Code/OysterMath/LinearMath.h +++ b/Code/OysterMath/LinearMath.h @@ -266,6 +266,12 @@ namespace LinearAlgebra3D return ::std::asin( ::LinearAlgebra::Vector4(rotationMatrix.v[1].z, rotationMatrix.v[2].x, rotationMatrix.v[0].y, 1) ); } + template + inline ::LinearAlgebra::Vector4 ExtractAngularAxis( const ::LinearAlgebra::Matrix4x4 &orientationMatrix ) + { + return ::std::asin( ::LinearAlgebra::Vector4(orientationMatrix.v[1].z, orientationMatrix.v[2].x, orientationMatrix.v[0].y, 1) ); + } + template inline ::LinearAlgebra::Matrix4x4 & TranslationMatrix( const ::LinearAlgebra::Vector3 &position, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) { @@ -400,18 +406,35 @@ namespace LinearAlgebra3D } template - ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Vector3 &sumDeltaAngularAxis, const ::LinearAlgebra::Vector3 &sumTranslation, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) - { /** @todo TODO: not tested */ - ScalarType radian = sumDeltaAngularAxis.Dot( sumDeltaAngularAxis ); + ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Vector3 &angularAxis, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) + { + ScalarType radian = angularAxis.Dot( angularAxis ); if( radian > 0 ) { radian = ::std::sqrt( radian ); - return OrientationMatrix( sumDeltaAngularAxis / radian, radian, sumTranslation, targetMem ); + return OrientationMatrix( angularAxis / radian, radian, translation, targetMem ); } else { targetMem = ::LinearAlgebra::Matrix4x4::identity; - targetMem.v[3].xyz = sumTranslation; + targetMem.v[3].xyz = translation; + return targetMem; + } + } + + template + ::LinearAlgebra::Matrix4x4 & ViewMatrix( const ::LinearAlgebra::Vector3 &angularAxis, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) + { + ScalarType radian = angularAxis.Dot( angularAxis ); + if( radian > 0 ) + { + radian = ::std::sqrt( radian ); + return InverseOrientationMatrix( OrientationMatrix(angularAxis / radian, radian, translation, targetMem) ); + } + else + { + targetMem = ::LinearAlgebra::Matrix4x4::identity; + targetMem.v[3].xyz = -translation; return targetMem; } } diff --git a/Code/OysterMath/OysterMath.cpp b/Code/OysterMath/OysterMath.cpp index cf9fa8ae..b72ad551 100644 --- a/Code/OysterMath/OysterMath.cpp +++ b/Code/OysterMath/OysterMath.cpp @@ -91,6 +91,11 @@ namespace Oyster { namespace Math3D return ::LinearAlgebra3D::AngularAxis( rotationMatrix ); } + Float4 ExtractAngularAxis( const Float4x4 &orientationMatrix ) + { + return ::LinearAlgebra3D::ExtractAngularAxis( orientationMatrix ); + } + Float4x4 & TranslationMatrix( const Float3 &position, Float4x4 &targetMem ) { return ::LinearAlgebra3D::TranslationMatrix( position, targetMem ); @@ -147,9 +152,14 @@ namespace Oyster { namespace Math3D return ::LinearAlgebra3D::OrientationMatrix( normalizedAxis, deltaRadian, sumTranslation, targetMem ); } - Float4x4 & OrientationMatrix( const Float3 &sumDeltaAngularAxis, const Float3 &sumTranslation, Float4x4 &targetMem ) + Float4x4 & OrientationMatrix( const Float3 &angularAxis, const Float3 &translation, Float4x4 &targetMem ) { - return ::LinearAlgebra3D::OrientationMatrix( sumDeltaAngularAxis, sumTranslation, targetMem ); + return ::LinearAlgebra3D::OrientationMatrix( angularAxis, translation, targetMem ); + } + + Float4x4 & ViewMatrix( const Float3 &angularAxis, const Float3 &translation, Float4x4 &targetMem ) + { + return ::LinearAlgebra3D::ViewMatrix( angularAxis, translation, targetMem ); } Float4x4 & OrientationMatrix( const Float3 &sumDeltaAngularAxis, const Float3 &sumTranslation, const Float3 ¢erOfMass, Float4x4 &targetMem ) diff --git a/Code/OysterMath/OysterMath.h b/Code/OysterMath/OysterMath.h index 72fe7478..18a57458 100644 --- a/Code/OysterMath/OysterMath.h +++ b/Code/OysterMath/OysterMath.h @@ -153,6 +153,9 @@ namespace Oyster { namespace Math3D /// Oyster's native math library specialized //! Extracts the angularAxis from rotationMatrix Float4 AngularAxis( const Float4x4 &rotationMatrix ); + //! Extracts the angularAxis from orientationMatrix + Float4 ExtractAngularAxis( const Float4x4 &orientationMatrix ); + /// Sets and returns targetMem to a translationMatrix with position as translation. Float4x4 & TranslationMatrix( const Float3 &position, Float4x4 &targetMem = Float4x4() ); @@ -191,19 +194,26 @@ namespace Oyster { namespace Math3D /// Oyster's native math library specialized * @param sumTranslation: sum of all the translation vectors. * @param targetMem: is set to a rigibody matrix that rotate counterclockwise and then translates. * @return targetMem - * @todo TODO: not tested *******************************************************************/ Float4x4 & OrientationMatrix( const Float3 &normalizedAxis, const Float & deltaRadian, const Float3 &sumTranslation, Float4x4 &targetMem = Float4x4() ); /******************************************************************* * Sets and returns targetMem as an orientation Matrix - * @param sumDeltaAngularAxis: sum of all ( (1/I) * ( L x D ) )-vectorproducts. There I is known as "moment of inertia", L as "angular momentum vector" and D the "lever vector". - * @param sumTranslation: sum of all the translation vectors. + * @param angularAxis: sum of all ( (1/I) * ( L x D ) )-vectorproducts. There I is known as "moment of inertia", L as "angular momentum vector" and D the "lever vector". + * @param translation: sum of all the translation vectors. * @param targetMem: is set to a rigibody matrix that rotate counterclockwise and then translates. * @return targetMem - * @todo TODO: not tested *******************************************************************/ - Float4x4 & OrientationMatrix( const Float3 &sumDeltaAngularAxis, const Float3 &sumTranslation, Float4x4 &targetMem = Float4x4() ); + Float4x4 & OrientationMatrix( const Float3 &angularAxis, const Float3 &translation, Float4x4 &targetMem = Float4x4() ); + + /******************************************************************* + * Sets and returns targetMem as a view Matrix + * @param angularAxis: sum of all ( (1/I) * ( L x D ) )-vectorproducts. There I is known as "moment of inertia", L as "angular momentum vector" and D the "lever vector". + * @param translation: sum of all the translation vectors. + * @param targetMem: is set to a rigibody matrix that rotate counterclockwise and then translates. + * @return targetMem + *******************************************************************/ + Float4x4 & ViewMatrix( const Float3 &angularAxis, const Float3 &translation, Float4x4 &targetMem = Float4x4() ); /******************************************************************* * Sets and returns targetMem as an orientation Matrix diff --git a/Code/OysterPhysics3D/OysterPhysics3D.h b/Code/OysterPhysics3D/OysterPhysics3D.h index 614a4a29..33d9a93e 100644 --- a/Code/OysterPhysics3D/OysterPhysics3D.h +++ b/Code/OysterPhysics3D/OysterPhysics3D.h @@ -12,6 +12,60 @@ namespace Oyster { namespace Physics3D namespace Formula { /// Library of 3D physics related formulas + /****************************************************************** + * Returns the linear momentum of a mass in motion. + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 LinearMomentum( const ::Oyster::Math::Float &mass, const ::Oyster::Math::Float4 &linearVelocity ) + { + return linearVelocity * mass; + } + + /****************************************************************** + * Returns the linear momentum of a mass in motion. + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 LinearVelocity( const ::Oyster::Math::Float &mass, const ::Oyster::Math::Float4 &linearMomentum ) + { + return linearMomentum / mass; + } + + /****************************************************************** + * Returns the world angular momentum of a mass in rotation. + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 AngularMomentum( const ::Oyster::Math::Float4 linearMomentum, const ::Oyster::Math::Float4 &worldOffset ) + { + return ::Oyster::Math::Float4( worldOffset.xyz.Cross(linearMomentum.xyz), 0.0f ); + } + + /****************************************************************** + * Returns the world angular momentum of a mass in rotation. + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 AngularMomentum( const ::Oyster::Math::Float4x4 &worldMomentOfInertia, const ::Oyster::Math::Float4 &angularVelocity ) + { + return worldMomentOfInertia * angularVelocity; + } + + /****************************************************************** + * Returns the world angular velocity of a mass in rotation. + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 AngularVelocity( const ::Oyster::Math::Float4x4 &worldMomentOfInertiaInversed, const ::Oyster::Math::Float4 &angularMomentum ) + { + return worldMomentOfInertiaInversed * angularMomentum; + } + + /****************************************************************** + * Returns the world tangential momentum at worldPos, of a mass in rotation. + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 TangentialLinearMomentum( const ::Oyster::Math::Float4 &angularMomentum, const ::Oyster::Math::Float4 &worldOffset ) + { + return ::Oyster::Math::Float4( angularMomentum.xyz.Cross(worldOffset.xyz), 0.0f ); + } + /****************************************************************** * Returns the linear kinetic energy of a mass in motion. * @todo TODO: improve doc @@ -192,12 +246,6 @@ namespace Oyster { namespace Physics3D return ( momentOfInertia * ::Oyster::Math::Float4(angularImpulseAcceleration, 0.0f) ).xyz; } - inline ::Oyster::Math::Float3 Impulse( ) - { - //! @todo TODO: implement calculation for impulse. Hijack Mattias Eriksson - return ::Oyster::Math::Float3::null; - } - namespace MomentOfInertia { /// Library of Formulas to calculate moment of inerta for simple shapes /** @todo TODO: add MomentOfInertia tensor formulas */ diff --git a/Code/OysterPhysics3D/RigidBody.cpp b/Code/OysterPhysics3D/RigidBody.cpp index eed27b52..538fb1e6 100644 --- a/Code/OysterPhysics3D/RigidBody.cpp +++ b/Code/OysterPhysics3D/RigidBody.cpp @@ -16,6 +16,8 @@ RigidBody::RigidBody( const Box &b, Float m, const Float4x4 &inertiaTensor ) this->linearMomentum = Float3::null; this->impulseTorqueSum = Float3::null; this->impulseForceSum = Float3::null; + this->restitutionCoeff = 1.0f; + this->frictionCoeff = 1.0f; if( m != 0.0f ) { @@ -43,6 +45,8 @@ RigidBody & RigidBody::operator = ( const RigidBody &body ) this->linearMomentum = body.linearMomentum; this->impulseTorqueSum = body.impulseTorqueSum; this->impulseForceSum = body.impulseForceSum; + this->restitutionCoeff = body.restitutionCoeff; + this->frictionCoeff = body.frictionCoeff; this->mass = body.mass; this->momentOfInertiaTensor = body.momentOfInertiaTensor; return *this; diff --git a/Code/OysterPhysics3D/RigidBody.h b/Code/OysterPhysics3D/RigidBody.h index 81c92ae0..1ac632d7 100644 --- a/Code/OysterPhysics3D/RigidBody.h +++ b/Code/OysterPhysics3D/RigidBody.h @@ -19,6 +19,7 @@ namespace Oyster { namespace Physics3D linearMomentum, /** The linear momentum G (kg*m/s). (worldValue) */ impulseTorqueSum, /** The impulse torque T (Nm) that will be consumed each update. (worldValue) */ impulseForceSum; /** The impulse force F (N) that will be consumed each update. (worldValue) */ + ::Oyster::Math::Float restitutionCoeff, frictionCoeff; RigidBody( const ::Oyster::Collision3D::Box &box = ::Oyster::Collision3D::Box(), ::Oyster::Math::Float mass = 12.0f, From 09e55ddc3065bfb82c8b30c06a365d8a5fb41fbe Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Wed, 18 Dec 2013 14:49:47 +0100 Subject: [PATCH 18/42] SimpleRigidBody::GetNormalAt Done implemented by using RayVsPlane tests --- .../Implementation/SimpleRigidBody.cpp | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 0399d5de..b0c8acce 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -97,8 +97,52 @@ Sphere & SimpleRigidBody::GetBoundingSphere( Sphere &targetMem ) const Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem ) const { - //! @todo TODO: better implementation needed - return targetMem = (worldPos - this->rigid.box.center).GetNormalized(); + Float4 offset = worldPos - this->rigid.box.center; + Float distance = offset.Dot( offset ); + Float3 normal = Float3::standard_unit_z; + + if( distance != 0.0f ) + { + Ray ray( Float4::standard_unit_w, offset / (Float)::std::sqrt(distance) ); + Float minDistance = numeric_limits::max(); + + if( ray.Intersects(Plane(this->rigid.box.xAxis, this->rigid.box.boundingOffset.x)) ) + { // check along x-axis + if( ray.collisionDistance < 0.0f ) + normal = -this->rigid.box.xAxis.xyz; + else + normal = this->rigid.box.xAxis.xyz; + + minDistance = Abs( ray.collisionDistance ); + } + + if( ray.Intersects(Plane(this->rigid.box.yAxis, this->rigid.box.boundingOffset.y)) ) + { // check along y-axis + distance = Abs( ray.collisionDistance ); // recycling memory + if( minDistance > distance ) + { + if( ray.collisionDistance < 0.0f ) + normal = -this->rigid.box.yAxis.xyz; + else + normal = this->rigid.box.yAxis.xyz; + + minDistance = distance; + } + } + + if( ray.Intersects(Plane(this->rigid.box.zAxis, this->rigid.box.boundingOffset.z)) ) + { // check along z-axis + if( minDistance > Abs( ray.collisionDistance ) ) + { + if( ray.collisionDistance < 0.0f ) + normal = -this->rigid.box.zAxis.xyz; + else + normal = this->rigid.box.zAxis.xyz; + } + } + } + targetMem.xyz = normal; + return targetMem; } Float3 & SimpleRigidBody::GetGravityNormal( Float3 &targetMem ) const From 56dec6cf5df6919a31148789d1bfd71bbaf1a353 Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Thu, 19 Dec 2013 08:34:16 +0100 Subject: [PATCH 19/42] Added "alpha" friction Alpha means that the friction is not tested and most likely needs tweaking. --- .../Implementation/PhysicsAPI_Impl.cpp | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index b439ce03..9ede391d 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -38,12 +38,37 @@ namespace deuterG_Magnitude = deuterG.Dot( normal ); // bounce - Float4 sumJ = normal * Formula::CollisionResponse::Impulse( deuterState.GetRestitutionCoeff(), + Float impulse = Formula::CollisionResponse::Impulse( deuterState.GetRestitutionCoeff(), deuterState.GetMass(), deuterG_Magnitude, - protoState.GetMass(), protoG_Magnitude ); + protoState.GetMass(), protoG_Magnitude );; + Float4 sumJ = normal*impulse; + + // FRICTION + // Relative momentum after normal impulse + Float4 relativeMomentum = deuterState.GetLinearMomentum() - protoState.GetLinearMomentum(); - // @todo TODO: friction - // sumJ -= ; + Float4 tanFriction = relativeMomentum - relativeMomentum.Dot(normal)*normal; + tanFriction.Normalize(); + + Float magnitudeFriction = -relativeMomentum.Dot(tanFriction); + magnitudeFriction = magnitudeFriction/( 1/protoState.GetMass() + 1/deuterState.GetMass() ); + + float mu = 0.5f; + + Float4 frictionImpulse; + if( abs(magnitudeFriction) < impulse*mu ) + { + frictionImpulse = magnitudeFriction*tanFriction; + } + else + { + Float dynamicFriction = 0.5f; + frictionImpulse = -impulse*tanFriction*dynamicFriction; + } + + // Apply + sumJ -= ( 1 / protoState.GetMass() )*frictionImpulse; + // FRICTION END // calc from perspective of proto proto->GetNormalAt( worldPointOfContact, normal ); @@ -54,8 +79,10 @@ namespace sumJ += normal * Formula::CollisionResponse::Impulse( protoState.GetRestitutionCoeff(), protoState.GetMass(), protoG_Magnitude, deuterState.GetMass(), deuterG_Magnitude ); - // @todo TODO: friction - // sumJ += ; + // FRICTION + // Apply + //sumJ += ( 1 / deuterState.GetMass() )*frictionImpulse; + // FRICTION END protoState.ApplyImpulse( sumJ, worldPointOfContact, normal ); proto->SetState( protoState ); From 9cee69edd63146e7f86a6311976b53dd2874874d Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 10:03:56 +0100 Subject: [PATCH 20/42] Extended friction content of the ICustomBody::State struct --- .../Implementation/SimpleRigidBody.cpp | 12 +++++----- .../Implementation/SphericalRigidBody.cpp | 6 +++-- Code/GamePhysics/PhysicsStructs-Impl.h | 22 +++++++++++++------ Code/GamePhysics/PhysicsStructs.h | 10 +++++---- Code/OysterPhysics3D/RigidBody.cpp | 6 +++-- Code/OysterPhysics3D/RigidBody.h | 2 +- 6 files changed, 37 insertions(+), 21 deletions(-) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index b0c8acce..16d7113d 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -44,7 +44,8 @@ UniquePointer SimpleRigidBody::Clone() const SimpleRigidBody::State SimpleRigidBody::GetState() const { - return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, + return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, + this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, this->rigid.box.center, AngularAxis(this->rigid.box.rotation), Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); @@ -52,10 +53,11 @@ SimpleRigidBody::State SimpleRigidBody::GetState() const SimpleRigidBody::State & SimpleRigidBody::GetState( SimpleRigidBody::State &targetMem ) const { - return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, - this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, - this->rigid.box.center, AngularAxis(this->rigid.box.rotation), - Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); + return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, + this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, + this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, + this->rigid.box.center, AngularAxis(this->rigid.box.rotation), + Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); } void SimpleRigidBody::SetState( const SimpleRigidBody::State &state ) diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index d7154f2f..a3ccfa77 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -46,7 +46,8 @@ UniquePointer SphericalRigidBody::Clone() const SphericalRigidBody::State SphericalRigidBody::GetState() const { - return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, + return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, + this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, this->rigid.box.center, AngularAxis(this->rigid.box.rotation), Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); @@ -54,7 +55,8 @@ SphericalRigidBody::State SphericalRigidBody::GetState() const SphericalRigidBody::State & SphericalRigidBody::GetState( SphericalRigidBody::State &targetMem ) const { - return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff, + return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, + this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, this->rigid.box.center, AngularAxis(this->rigid.box.rotation), Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); diff --git a/Code/GamePhysics/PhysicsStructs-Impl.h b/Code/GamePhysics/PhysicsStructs-Impl.h index d13fdd80..8a75b0bf 100644 --- a/Code/GamePhysics/PhysicsStructs-Impl.h +++ b/Code/GamePhysics/PhysicsStructs-Impl.h @@ -28,11 +28,12 @@ namespace Oyster { namespace Physics this->ignoreGravity = false; } - inline CustomBodyState::CustomBodyState( ::Oyster::Math::Float mass, ::Oyster::Math::Float restitutionCoeff, ::Oyster::Math::Float frictionCoeff, const ::Oyster::Math::Float4x4 &inertiaTensor, const ::Oyster::Math::Float4 &reach, const ::Oyster::Math::Float4 ¢erPos, const ::Oyster::Math::Float4 &rotation, const ::Oyster::Math::Float4 &linearMomentum, const ::Oyster::Math::Float4 &angularMomentum ) + inline CustomBodyState::CustomBodyState( ::Oyster::Math::Float mass, ::Oyster::Math::Float restitutionCoeff, ::Oyster::Math::Float staticFrictionCoeff, ::Oyster::Math::Float kineticFrictionCoeff, const ::Oyster::Math::Float4x4 &inertiaTensor, const ::Oyster::Math::Float4 &reach, const ::Oyster::Math::Float4 ¢erPos, const ::Oyster::Math::Float4 &rotation, const ::Oyster::Math::Float4 &linearMomentum, const ::Oyster::Math::Float4 &angularMomentum ) { this->mass = mass; this->restitutionCoeff = restitutionCoeff; - this->frictionCoeff = frictionCoeff; + this->staticFrictionCoeff = staticFrictionCoeff; + this->kineticFrictionCoeff = kineticFrictionCoeff; this->inertiaTensor = inertiaTensor; this->reach = ::Oyster::Math::Float4( reach.xyz, 0.0f ); this->centerPos = ::Oyster::Math::Float4( centerPos.xyz, 1.0f ); @@ -47,7 +48,8 @@ namespace Oyster { namespace Physics { this->mass = state.mass; this->restitutionCoeff = state.restitutionCoeff; - this->frictionCoeff = state.frictionCoeff; + this->staticFrictionCoeff = state.staticFrictionCoeff; + this->kineticFrictionCoeff = state.kineticFrictionCoeff; this->inertiaTensor = state.inertiaTensor; this->reach = state.reach; this->centerPos = state.centerPos; @@ -71,9 +73,14 @@ namespace Oyster { namespace Physics return this->restitutionCoeff; } - inline const ::Oyster::Math::Float CustomBodyState::GetFrictionCoeff() const + inline const ::Oyster::Math::Float CustomBodyState::GetFrictionCoeff_Static() const { - return this->frictionCoeff; + return this->staticFrictionCoeff; + } + + inline const ::Oyster::Math::Float CustomBodyState::GetFrictionCoeff_Kinetic() const + { + return this->kineticFrictionCoeff; } inline const ::Oyster::Math::Float4x4 & CustomBodyState::GetMomentOfInertia() const @@ -163,9 +170,10 @@ namespace Oyster { namespace Physics this->restitutionCoeff = e; } - inline void CustomBodyState::SetFrictionCoeff( ::Oyster::Math::Float u ) + inline void CustomBodyState::SetFrictionCoeff( ::Oyster::Math::Float staticU, ::Oyster::Math::Float kineticU ) { - this->frictionCoeff = u; + this->staticFrictionCoeff = staticU; + this->kineticFrictionCoeff = kineticU; } inline void CustomBodyState::SetMomentOfInertia_KeepMomentum( const ::Oyster::Math::Float4x4 &tensor ) diff --git a/Code/GamePhysics/PhysicsStructs.h b/Code/GamePhysics/PhysicsStructs.h index ce2b40cb..96ec1f14 100644 --- a/Code/GamePhysics/PhysicsStructs.h +++ b/Code/GamePhysics/PhysicsStructs.h @@ -38,7 +38,8 @@ namespace Oyster { namespace Physics public: CustomBodyState( ::Oyster::Math::Float mass = 1.0f, ::Oyster::Math::Float restitutionCoeff = 1.0f, - ::Oyster::Math::Float frictionCoeff = 1.0f, + ::Oyster::Math::Float staticFrictionCoeff = 1.0f, + ::Oyster::Math::Float kineticFrictionCoeff = 1.0f, const ::Oyster::Math::Float4x4 &inertiaTensor = ::Oyster::Math::Float4x4::identity, const ::Oyster::Math::Float4 &reach = ::Oyster::Math::Float4::null, const ::Oyster::Math::Float4 ¢erPos = ::Oyster::Math::Float4::standard_unit_w, @@ -50,7 +51,8 @@ namespace Oyster { namespace Physics const ::Oyster::Math::Float GetMass() const; const ::Oyster::Math::Float GetRestitutionCoeff() const; - const ::Oyster::Math::Float GetFrictionCoeff() const; + const ::Oyster::Math::Float GetFrictionCoeff_Static() const; + const ::Oyster::Math::Float GetFrictionCoeff_Kinetic() const; const ::Oyster::Math::Float4x4 & GetMomentOfInertia() const; const ::Oyster::Math::Float4 & GetReach() const; ::Oyster::Math::Float4 GetSize() const; @@ -68,7 +70,7 @@ namespace Oyster { namespace Physics void SetMass_KeepMomentum( ::Oyster::Math::Float m ); void SetMass_KeepVelocity( ::Oyster::Math::Float m ); void SetRestitutionCoeff( ::Oyster::Math::Float e ); - void SetFrictionCoeff( ::Oyster::Math::Float u ); + void SetFrictionCoeff( ::Oyster::Math::Float staticU, ::Oyster::Math::Float kineticU ); void SetMomentOfInertia_KeepMomentum( const ::Oyster::Math::Float4x4 &tensor ); void SetMomentOfInertia_KeepVelocity( const ::Oyster::Math::Float4x4 &tensor ); void SetSize( const ::Oyster::Math::Float4 &size ); @@ -93,7 +95,7 @@ namespace Oyster { namespace Physics bool IsDisturbed() const; private: - ::Oyster::Math::Float mass, restitutionCoeff, frictionCoeff; + ::Oyster::Math::Float mass, restitutionCoeff, staticFrictionCoeff, kineticFrictionCoeff; ::Oyster::Math::Float4x4 inertiaTensor; ::Oyster::Math::Float4 reach, centerPos, angularAxis; ::Oyster::Math::Float4 linearMomentum, angularMomentum; diff --git a/Code/OysterPhysics3D/RigidBody.cpp b/Code/OysterPhysics3D/RigidBody.cpp index 538fb1e6..cebf3747 100644 --- a/Code/OysterPhysics3D/RigidBody.cpp +++ b/Code/OysterPhysics3D/RigidBody.cpp @@ -17,7 +17,8 @@ RigidBody::RigidBody( const Box &b, Float m, const Float4x4 &inertiaTensor ) this->impulseTorqueSum = Float3::null; this->impulseForceSum = Float3::null; this->restitutionCoeff = 1.0f; - this->frictionCoeff = 1.0f; + this->frictionCoeff_Static = 1.0f; + this->frictionCoeff_Kinetic = 1.0f; if( m != 0.0f ) { @@ -46,7 +47,8 @@ RigidBody & RigidBody::operator = ( const RigidBody &body ) this->impulseTorqueSum = body.impulseTorqueSum; this->impulseForceSum = body.impulseForceSum; this->restitutionCoeff = body.restitutionCoeff; - this->frictionCoeff = body.frictionCoeff; + this->frictionCoeff_Static = body.frictionCoeff_Static; + this->frictionCoeff_Kinetic = body.frictionCoeff_Kinetic; this->mass = body.mass; this->momentOfInertiaTensor = body.momentOfInertiaTensor; return *this; diff --git a/Code/OysterPhysics3D/RigidBody.h b/Code/OysterPhysics3D/RigidBody.h index 1ac632d7..fae7b842 100644 --- a/Code/OysterPhysics3D/RigidBody.h +++ b/Code/OysterPhysics3D/RigidBody.h @@ -19,7 +19,7 @@ namespace Oyster { namespace Physics3D linearMomentum, /** The linear momentum G (kg*m/s). (worldValue) */ impulseTorqueSum, /** The impulse torque T (Nm) that will be consumed each update. (worldValue) */ impulseForceSum; /** The impulse force F (N) that will be consumed each update. (worldValue) */ - ::Oyster::Math::Float restitutionCoeff, frictionCoeff; + ::Oyster::Math::Float restitutionCoeff, frictionCoeff_Static, frictionCoeff_Kinetic; RigidBody( const ::Oyster::Collision3D::Box &box = ::Oyster::Collision3D::Box(), ::Oyster::Math::Float mass = 12.0f, From 59d5a3dc1ebea1aa8bc6b78eef06d1d17d9fd30e Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Thu, 19 Dec 2013 10:15:32 +0100 Subject: [PATCH 21/42] Created function for friction --- .../Implementation/PhysicsAPI_Impl.cpp | 31 +++---------------- Code/GamePhysics/PhysicsFormula-Impl.h | 28 +++++++++++++++++ Code/GamePhysics/PhysicsFormula.h | 7 +++++ 3 files changed, 40 insertions(+), 26 deletions(-) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index 9ede391d..9d30a7e4 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -7,6 +7,7 @@ using namespace ::Oyster::Physics; using namespace ::Oyster::Math; using namespace ::Oyster::Collision3D; using namespace ::Utility::DynamicMemory; +using namespace ::Utility::Value; API_Impl API_instance; @@ -43,32 +44,10 @@ namespace protoState.GetMass(), protoG_Magnitude );; Float4 sumJ = normal*impulse; - // FRICTION - // Relative momentum after normal impulse - Float4 relativeMomentum = deuterState.GetLinearMomentum() - protoState.GetLinearMomentum(); - - Float4 tanFriction = relativeMomentum - relativeMomentum.Dot(normal)*normal; - tanFriction.Normalize(); - - Float magnitudeFriction = -relativeMomentum.Dot(tanFriction); - magnitudeFriction = magnitudeFriction/( 1/protoState.GetMass() + 1/deuterState.GetMass() ); - - float mu = 0.5f; - - Float4 frictionImpulse; - if( abs(magnitudeFriction) < impulse*mu ) - { - frictionImpulse = magnitudeFriction*tanFriction; - } - else - { - Float dynamicFriction = 0.5f; - frictionImpulse = -impulse*tanFriction*dynamicFriction; - } - - // Apply - sumJ -= ( 1 / protoState.GetMass() )*frictionImpulse; - // FRICTION END + sumJ -= Formula::CollisionResponse::Friction( impulse, normal, protoState.GetLinearMomentum(), + protoState.GetFrictionCoeff(), 0.2f, protoState.GetMass(), + deuterState.GetLinearMomentum(), deuterState.GetFrictionCoeff(), + 0.2f, deuterState.GetMass()); // calc from perspective of proto proto->GetNormalAt( worldPointOfContact, normal ); diff --git a/Code/GamePhysics/PhysicsFormula-Impl.h b/Code/GamePhysics/PhysicsFormula-Impl.h index c0d4ed64..4cb7b5ef 100644 --- a/Code/GamePhysics/PhysicsFormula-Impl.h +++ b/Code/GamePhysics/PhysicsFormula-Impl.h @@ -40,6 +40,34 @@ namespace Oyster { namespace Physics { namespace Formula { return (e + 1) * (mB*gA - mA*gB) / (mA + mB); } + + inline ::Oyster::Math::Float4 Friction( ::Oyster::Math::Float i, ::Oyster::Math::Float4 iN, ::Oyster::Math::Float4 momA, ::Oyster::Math::Float sFA, ::Oyster::Math::Float dFA, ::Oyster::Math::Float mA, ::Oyster::Math::Float4 momB, ::Oyster::Math::Float sFB, ::Oyster::Math::Float dFB, ::Oyster::Math::Float mB ) + { + // FRICTION + // Relative momentum after normal impulse + ::Oyster::Math::Float4 relativeMomentum = momB - momA; + + ::Oyster::Math::Float4 tanFriction = relativeMomentum - relativeMomentum.Dot( iN )*iN; + tanFriction.Normalize(); + + ::Oyster::Math::Float magnitudeFriction = -relativeMomentum.Dot( tanFriction ); + magnitudeFriction = magnitudeFriction*mA*mB/( mA + mB ); + + ::Oyster::Math::Float mu = 0.5f*( sFA + sFB ); + + ::Oyster::Math::Float4 frictionImpulse; + if( abs(magnitudeFriction) < i*mu ) + { + frictionImpulse = magnitudeFriction*tanFriction; + } + else + { + ::Oyster::Math::Float dynamicFriction = 0.5f*( dFA + dFB ); + frictionImpulse = -i*tanFriction*dynamicFriction; + } + + return ( 1 / mA )*frictionImpulse; + } } } } } diff --git a/Code/GamePhysics/PhysicsFormula.h b/Code/GamePhysics/PhysicsFormula.h index c15d8078..a8fea658 100644 --- a/Code/GamePhysics/PhysicsFormula.h +++ b/Code/GamePhysics/PhysicsFormula.h @@ -20,6 +20,13 @@ namespace Oyster { namespace Physics { namespace Formula ::Oyster::Math::Float Impulse( ::Oyster::Math::Float coeffOfRestitution, ::Oyster::Math::Float massA, ::Oyster::Math::Float momentumA, ::Oyster::Math::Float massB, ::Oyster::Math::Float momentumB ); + + ::Oyster::Math::Float4 Friction( ::Oyster::Math::Float impulse, ::Oyster::Math::Float4 impulseNormal, + ::Oyster::Math::Float4 momentumA, ::Oyster::Math::Float staticFrictionA, + ::Oyster::Math::Float dynamicFrictionA, ::Oyster::Math::Float massA, + ::Oyster::Math::Float4 momentumB, ::Oyster::Math::Float staticFrictionB, + ::Oyster::Math::Float dynamicFrictionB, ::Oyster::Math::Float massB ); + } } } } From 42418257cb0c122af17c4d4c91c34a4da19adb6d Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 10:53:55 +0100 Subject: [PATCH 22/42] CustomBodies now aware of it's scene + other minor changes --- Code/GamePhysics/Implementation/Octree.cpp | 1 + .../Implementation/PhysicsAPI_Impl.cpp | 7 ++-- .../Implementation/SimpleRigidBody.cpp | 30 ++++++++++++++++- .../Implementation/SimpleRigidBody.h | 3 ++ .../Implementation/SphericalRigidBody.cpp | 32 +++++++++++++++++-- .../Implementation/SphericalRigidBody.h | 3 ++ Code/GamePhysics/PhysicsAPI.h | 7 ++++ 7 files changed, 76 insertions(+), 7 deletions(-) diff --git a/Code/GamePhysics/Implementation/Octree.cpp b/Code/GamePhysics/Implementation/Octree.cpp index b841b49d..a1ccdbd8 100644 --- a/Code/GamePhysics/Implementation/Octree.cpp +++ b/Code/GamePhysics/Implementation/Octree.cpp @@ -31,6 +31,7 @@ Octree& Octree::operator=(const Octree& orig) void Octree::AddObject(UniquePointer< ICustomBody > customBodyRef) { + customBodyRef->SetScene( this ); Data data; //Data* tempPtr = this->worldNode.dataPtr; diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index 9d30a7e4..24d46d0b 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -44,10 +44,9 @@ namespace protoState.GetMass(), protoG_Magnitude );; Float4 sumJ = normal*impulse; - sumJ -= Formula::CollisionResponse::Friction( impulse, normal, protoState.GetLinearMomentum(), - protoState.GetFrictionCoeff(), 0.2f, protoState.GetMass(), - deuterState.GetLinearMomentum(), deuterState.GetFrictionCoeff(), - 0.2f, deuterState.GetMass()); + sumJ -= Formula::CollisionResponse::Friction( impulse, normal, + protoState.GetLinearMomentum(), protoState.GetFrictionCoeff_Static(), protoState.GetFrictionCoeff_Kinetic(), protoState.GetMass(), + deuterState.GetLinearMomentum(), deuterState.GetFrictionCoeff_Static(), deuterState.GetFrictionCoeff_Kinetic(), deuterState.GetMass()); // calc from perspective of proto proto->GetNormalAt( worldPointOfContact, normal ); diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 16d7113d..dff17bac 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -14,6 +14,7 @@ SimpleRigidBody::SimpleRigidBody() this->gravityNormal = Float3::null; this->collisionAction = Default::EventAction_Collision; this->ignoreGravity = false; + this->scene = nullptr; } SimpleRigidBody::SimpleRigidBody( const API::SimpleBodyDescription &desc ) @@ -33,6 +34,7 @@ SimpleRigidBody::SimpleRigidBody( const API::SimpleBodyDescription &desc ) } this->ignoreGravity = desc.ignoreGravity; + this->scene = nullptr; } SimpleRigidBody::~SimpleRigidBody() {} @@ -61,10 +63,31 @@ SimpleRigidBody::State & SimpleRigidBody::GetState( SimpleRigidBody::State &targ } void SimpleRigidBody::SetState( const SimpleRigidBody::State &state ) -{ /** @todo TODO: temporary solution! Need to know it's occtree */ +{ this->rigid.box.boundingOffset = state.GetReach(); this->rigid.box.center = state.GetCenterPosition(); this->rigid.box.rotation = state.GetRotation(); + this->rigid.angularMomentum = state.GetAngularMomentum().xyz; + this->rigid.linearMomentum = state.GetLinearMomentum().xyz; + this->rigid.impulseTorqueSum += state.GetAngularImpulse().xyz; + this->rigid.impulseForceSum += state.GetLinearImpulse().xyz; + this->rigid.restitutionCoeff = state.GetRestitutionCoeff(); + this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); + this->rigid.frictionCoeff_Kinetic = state.GetFrictionCoeff_Kinetic(); + + if( this->scene ) + { + if( state.IsSpatiallyAltered() ) + { + unsigned int tempRef = this->scene->GetTemporaryReferenceOf( this ); + this->scene->SetAsAltered( tempRef ); + this->scene->EvaluatePosition( tempRef ); + } + else if( state.IsDisturbed() ) + { + this->scene->SetAsAltered( this->scene->GetTemporaryReferenceOf(this) ); + } + } } ICustomBody::SubscriptMessage SimpleRigidBody::CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) @@ -187,6 +210,11 @@ UpdateState SimpleRigidBody::Update( Float timeStepLength ) return UpdateState_altered; } +void SimpleRigidBody::SetScene( void *scene ) +{ + this->scene = (Octree*)scene; +} + void SimpleRigidBody::SetSubscription( ICustomBody::EventAction_Collision functionPointer ) { if( functionPointer ) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.h b/Code/GamePhysics/Implementation/SimpleRigidBody.h index c314d09d..3929669b 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.h +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.h @@ -3,6 +3,7 @@ #include "..\PhysicsAPI.h" #include "RigidBody.h" +#include "Octree.h" namespace Oyster { namespace Physics { @@ -36,6 +37,7 @@ namespace Oyster { namespace Physics UpdateState Update( ::Oyster::Math::Float timeStepLength ); + void SetScene( void *scene ); void SetSubscription( EventAction_Collision functionPointer ); void SetGravity( bool ignore); void SetGravityNormal( const ::Oyster::Math::Float3 &normalizedVector ); @@ -53,6 +55,7 @@ namespace Oyster { namespace Physics ::Oyster::Physics3D::RigidBody rigid; ::Oyster::Math::Float3 gravityNormal; EventAction_Collision collisionAction; + Octree *scene; bool ignoreGravity; }; } } diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index a3ccfa77..9dcfaa32 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -14,6 +14,7 @@ SphericalRigidBody::SphericalRigidBody() this->gravityNormal = Float3::null; this->collisionAction = Default::EventAction_Collision; this->ignoreGravity = false; + this->scene = nullptr; this->body = Sphere( Float3::null, 0.5f ); } @@ -34,6 +35,7 @@ SphericalRigidBody::SphericalRigidBody( const API::SphericalBodyDescription &des } this->ignoreGravity = desc.ignoreGravity; + this->scene = nullptr; this->body = Sphere( desc.centerPosition, desc.radius ); } @@ -63,10 +65,31 @@ SphericalRigidBody::State & SphericalRigidBody::GetState( SphericalRigidBody::St } void SphericalRigidBody::SetState( const SphericalRigidBody::State &state ) -{ /** @todo TODO: temporary solution! Need to know it's occtree */ +{ this->rigid.box.boundingOffset = state.GetReach(); this->rigid.box.center = state.GetCenterPosition(); this->rigid.box.rotation = state.GetRotation(); + this->rigid.angularMomentum = state.GetAngularMomentum().xyz; + this->rigid.linearMomentum = state.GetLinearMomentum().xyz; + this->rigid.impulseTorqueSum += state.GetAngularImpulse().xyz; + this->rigid.impulseForceSum += state.GetLinearImpulse().xyz; + this->rigid.restitutionCoeff = state.GetRestitutionCoeff(); + this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); + this->rigid.frictionCoeff_Kinetic = state.GetFrictionCoeff_Kinetic(); + + if( this->scene ) + { + if( state.IsSpatiallyAltered() ) + { + unsigned int tempRef = this->scene->GetTemporaryReferenceOf( this ); + this->scene->SetAsAltered( tempRef ); + this->scene->EvaluatePosition( tempRef ); + } + else if( state.IsDisturbed() ) + { + this->scene->SetAsAltered( this->scene->GetTemporaryReferenceOf(this) ); + } + } } ICustomBody::SubscriptMessage SphericalRigidBody::CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ) @@ -156,7 +179,12 @@ void SphericalRigidBody::SetSubscription( ICustomBody::EventAction_Collision fun } } -void SphericalRigidBody::SetGravity( bool ignore) +void SphericalRigidBody::SetScene( void *scene ) +{ + this->scene = (Octree*)scene; +} + +void SphericalRigidBody::SetGravity( bool ignore ) { this->ignoreGravity = ignore; this->gravityNormal = Float3::null; diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.h b/Code/GamePhysics/Implementation/SphericalRigidBody.h index 3136f4e7..4c2d74e5 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.h +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.h @@ -4,6 +4,7 @@ #include "..\PhysicsAPI.h" #include "RigidBody.h" #include "Sphere.h" +#include "Octree.h" namespace Oyster { namespace Physics { @@ -37,6 +38,7 @@ namespace Oyster { namespace Physics UpdateState Update( ::Oyster::Math::Float timeStepLength ); + void SetScene( void *scene ); void SetSubscription( EventAction_Collision functionPointer ); void SetGravity( bool ignore); void SetGravityNormal( const ::Oyster::Math::Float3 &normalizedVector ); @@ -55,6 +57,7 @@ namespace Oyster { namespace Physics ::Oyster::Math::Float3 gravityNormal; EventAction_Collision collisionAction; bool ignoreGravity; + Octree *scene; ::Oyster::Collision3D::Sphere body; }; } } diff --git a/Code/GamePhysics/PhysicsAPI.h b/Code/GamePhysics/PhysicsAPI.h index 945247b0..3e91a103 100644 --- a/Code/GamePhysics/PhysicsAPI.h +++ b/Code/GamePhysics/PhysicsAPI.h @@ -338,6 +338,13 @@ namespace Oyster ********************************************************/ virtual UpdateState Update( ::Oyster::Math::Float timeStepLength ) = 0; + /******************************************************** + * Sets which scene this ICustomBody is within. + * Reserved to only be used by the scene. + * @todo TODO: create an IScene interface + ********************************************************/ + virtual void SetScene( void *scene ) = 0; + /******************************************************** * Sets the function that will be called by the engine * whenever a collision occurs. From 76c83add3d29dfe7d4ce8397854b09c6f6419106 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 11:15:49 +0100 Subject: [PATCH 23/42] Added sanity check to SphericalRigidBody::GetNormalAt --- Code/GamePhysics/Implementation/SphericalRigidBody.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index 9dcfaa32..13a46145 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -124,7 +124,13 @@ Sphere & SphericalRigidBody::GetBoundingSphere( Sphere &targetMem ) const Float4 & SphericalRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem ) const { - return targetMem = (worldPos - this->rigid.box.center).GetNormalized(); + targetMem = worldPos - this->rigid.box.center; + Float magnitude = targetMem.GetMagnitude(); + if( magnitude != 0.0f ) + { // sanity check + targetMem.Normalize(); + } + return targetMem; } Float3 & SphericalRigidBody::GetGravityNormal( Float3 &targetMem ) const From 24418603ad9abd12791e7d23d7067ad71188e4dd Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 11:21:14 +0100 Subject: [PATCH 24/42] ICustomBody::GetNormal returns Float4::null if.. .. no normal can be decided. --- Code/GamePhysics/Implementation/SimpleRigidBody.cpp | 5 +++-- Code/GamePhysics/Implementation/SphericalRigidBody.cpp | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index dff17bac..70636708 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -124,10 +124,10 @@ Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem { Float4 offset = worldPos - this->rigid.box.center; Float distance = offset.Dot( offset ); - Float3 normal = Float3::standard_unit_z; + Float3 normal = Float3::null; if( distance != 0.0f ) - { + { // sanity check Ray ray( Float4::standard_unit_w, offset / (Float)::std::sqrt(distance) ); Float minDistance = numeric_limits::max(); @@ -167,6 +167,7 @@ Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem } } targetMem.xyz = normal; + targetMem.w = 0.0f; return targetMem; } diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index 13a46145..e31fd0df 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -130,6 +130,7 @@ Float4 & SphericalRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &target { // sanity check targetMem.Normalize(); } + return targetMem; } From 4e21e2b0c0f1d731dd1388a39b1bffd2392f5641 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 11:21:49 +0100 Subject: [PATCH 25/42] Renamed Formula::CollisionResponse::Impulse to.. .. Formula::CollisionResponse::Bounce --- Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp | 12 ++++++------ Code/GamePhysics/PhysicsFormula-Impl.h | 2 +- Code/GamePhysics/PhysicsFormula.h | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index 24d46d0b..f06d3698 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -39,9 +39,9 @@ namespace deuterG_Magnitude = deuterG.Dot( normal ); // bounce - Float impulse = Formula::CollisionResponse::Impulse( deuterState.GetRestitutionCoeff(), - deuterState.GetMass(), deuterG_Magnitude, - protoState.GetMass(), protoG_Magnitude );; + Float impulse = Formula::CollisionResponse::Bounce( deuterState.GetRestitutionCoeff(), + deuterState.GetMass(), deuterG_Magnitude, + protoState.GetMass(), protoG_Magnitude );; Float4 sumJ = normal*impulse; sumJ -= Formula::CollisionResponse::Friction( impulse, normal, @@ -54,9 +54,9 @@ namespace deuterG_Magnitude = deuterG.Dot( normal ); // bounce - sumJ += normal * Formula::CollisionResponse::Impulse( protoState.GetRestitutionCoeff(), - protoState.GetMass(), protoG_Magnitude, - deuterState.GetMass(), deuterG_Magnitude ); + sumJ += normal * Formula::CollisionResponse::Bounce( protoState.GetRestitutionCoeff(), + protoState.GetMass(), protoG_Magnitude, + deuterState.GetMass(), deuterG_Magnitude ); // FRICTION // Apply //sumJ += ( 1 / deuterState.GetMass() )*frictionImpulse; diff --git a/Code/GamePhysics/PhysicsFormula-Impl.h b/Code/GamePhysics/PhysicsFormula-Impl.h index 4cb7b5ef..6546a856 100644 --- a/Code/GamePhysics/PhysicsFormula-Impl.h +++ b/Code/GamePhysics/PhysicsFormula-Impl.h @@ -36,7 +36,7 @@ namespace Oyster { namespace Physics { namespace Formula namespace CollisionResponse { - inline ::Oyster::Math::Float Impulse( ::Oyster::Math::Float e, ::Oyster::Math::Float mA, ::Oyster::Math::Float gA, ::Oyster::Math::Float mB, ::Oyster::Math::Float gB ) + inline ::Oyster::Math::Float Bounce( ::Oyster::Math::Float e, ::Oyster::Math::Float mA, ::Oyster::Math::Float gA, ::Oyster::Math::Float mB, ::Oyster::Math::Float gB ) { return (e + 1) * (mB*gA - mA*gB) / (mA + mB); } diff --git a/Code/GamePhysics/PhysicsFormula.h b/Code/GamePhysics/PhysicsFormula.h index a8fea658..fe91ae3a 100644 --- a/Code/GamePhysics/PhysicsFormula.h +++ b/Code/GamePhysics/PhysicsFormula.h @@ -17,9 +17,9 @@ namespace Oyster { namespace Physics { namespace Formula namespace CollisionResponse { - ::Oyster::Math::Float Impulse( ::Oyster::Math::Float coeffOfRestitution, - ::Oyster::Math::Float massA, ::Oyster::Math::Float momentumA, - ::Oyster::Math::Float massB, ::Oyster::Math::Float momentumB ); + ::Oyster::Math::Float Bounce( ::Oyster::Math::Float coeffOfRestitution, + ::Oyster::Math::Float massA, ::Oyster::Math::Float momentumA, + ::Oyster::Math::Float massB, ::Oyster::Math::Float momentumB ); ::Oyster::Math::Float4 Friction( ::Oyster::Math::Float impulse, ::Oyster::Math::Float4 impulseNormal, ::Oyster::Math::Float4 momentumA, ::Oyster::Math::Float staticFrictionA, From 4ebb8cd9b83517d33b1d28bafa1fe9fd1ab0ec74 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 11:22:20 +0100 Subject: [PATCH 26/42] Minor edit in CustomBodyState --- Code/GamePhysics/PhysicsStructs-Impl.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Code/GamePhysics/PhysicsStructs-Impl.h b/Code/GamePhysics/PhysicsStructs-Impl.h index 8a75b0bf..e48ede8d 100644 --- a/Code/GamePhysics/PhysicsStructs-Impl.h +++ b/Code/GamePhysics/PhysicsStructs-Impl.h @@ -35,11 +35,11 @@ namespace Oyster { namespace Physics this->staticFrictionCoeff = staticFrictionCoeff; this->kineticFrictionCoeff = kineticFrictionCoeff; this->inertiaTensor = inertiaTensor; - this->reach = ::Oyster::Math::Float4( reach.xyz, 0.0f ); - this->centerPos = ::Oyster::Math::Float4( centerPos.xyz, 1.0f ); - this->angularAxis = ::Oyster::Math::Float4( rotation.xyz, 0.0f ); - this->linearMomentum = ::Oyster::Math::Float4( linearMomentum.xyz, 0.0f ); - this->angularMomentum = ::Oyster::Math::Float4( angularMomentum.xyz, 0.0f ); + this->reach = reach; + this->centerPos = centerPos; + this->angularAxis = rotation; + this->linearMomentum = linearMomentum; + this->angularMomentum = angularMomentum; this->linearImpulse = this->angularImpulse = ::Oyster::Math::Float4::null; this->isSpatiallyAltered = this->isDisturbed = false; } From 840f000ec92571b5583aaa7b605ba0e6bfcd90f9 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 11:28:30 +0100 Subject: [PATCH 27/42] Bug fix in API_Impl OnPossibleCollision(...) --- Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index f06d3698..e9bfefb0 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -28,7 +28,7 @@ namespace default: { // Apply CollisionResponse in pure gather pattern ICustomBody::State protoState; proto->GetState( protoState ); - ICustomBody::State deuterState; proto->GetState( deuterState ); + ICustomBody::State deuterState; deuter->GetState( deuterState ); Float4 protoG = protoState.GetLinearMomentum( worldPointOfContact ), deuterG = deuterState.GetLinearMomentum( worldPointOfContact ); From 9b9e549a5e6dfb7072ca7c2c79f4351734c2e694 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 11:57:03 +0100 Subject: [PATCH 28/42] bug fix in bool Intersect( const Box &box, const Sphere &sphere, Float4 &worldPointOfContact ) --- Code/OysterPhysics3D/OysterCollision3D.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Code/OysterPhysics3D/OysterCollision3D.cpp b/Code/OysterPhysics3D/OysterCollision3D.cpp index 00684898..3ef44974 100644 --- a/Code/OysterPhysics3D/OysterCollision3D.cpp +++ b/Code/OysterPhysics3D/OysterCollision3D.cpp @@ -784,9 +784,9 @@ namespace Oyster { namespace Collision3D { namespace Utility if( Intersect(box, sphere) ) { Float distance; - Ray ray( sphere.center, box.center - sphere.center ); + Ray ray( box.center, sphere.center - box.center ); - Intersect( box, ray, distance ); + Intersect( sphere, ray, distance ); worldPointOfContact = ray.origin + ray.direction*distance; return true; } From 461fecd1d2a1b0eeee2c5d3a1a436a3b5d94e28a Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 14:01:02 +0100 Subject: [PATCH 29/42] Bug fixing SimpleRigidBody::GetNormal returned wrong results. Second bounce impulse in OnPossibleCollision, should be subtracted instead of added. --- .../Implementation/PhysicsAPI_Impl.cpp | 2 +- .../Implementation/SimpleRigidBody.cpp | 53 +++++++++++++++---- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index e9bfefb0..cc3caf10 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -54,7 +54,7 @@ namespace deuterG_Magnitude = deuterG.Dot( normal ); // bounce - sumJ += normal * Formula::CollisionResponse::Bounce( protoState.GetRestitutionCoeff(), + sumJ -= normal * Formula::CollisionResponse::Bounce( protoState.GetRestitutionCoeff(), protoState.GetMass(), protoG_Magnitude, deuterState.GetMass(), deuterG_Magnitude ); // FRICTION diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 70636708..5160b4eb 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -8,6 +8,39 @@ using namespace ::Oyster::Collision3D; using namespace ::Utility::DynamicMemory; using namespace ::Utility::Value; +namespace Private +{ + const Float epsilon = (const Float)1e-20; + + // Float calculations can suffer roundingerrors. Which is where epsilon = 1e-20 comes into the picture + inline bool EqualsZero( const Float &value ) + { // by Dan Andersson + return Abs( value ) < epsilon; + } + + inline bool Contains( const Plane &container, const Float4 &pos ) + { // by Dan Andersson + return EqualsZero( container.normal.Dot( pos ) + container.phasing ); + } + + // revision of Ray Vs Plane intersect test, there ray is more of an axis + bool Intersects( const Ray &axis, const Plane &plane, Float &connectDistance ) + { // by Dan Andersson + Float c = plane.normal.Dot(axis.direction); + if( EqualsZero(c) ) + { // axis is parallell with the plane. (axis direction orthogonal with the planar normal) + connectDistance = 0.0f; + return Contains( plane, axis.origin ); + } + + connectDistance = -plane.phasing; + connectDistance -= plane.normal.Dot( axis.origin ); + connectDistance /= c; + + return true; + } +} + SimpleRigidBody::SimpleRigidBody() { this->rigid = RigidBody( Box(Float4x4::identity, Float3::null, Float3(1.0f)), 16.0f, Float4x4::identity ); @@ -128,25 +161,25 @@ Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem if( distance != 0.0f ) { // sanity check - Ray ray( Float4::standard_unit_w, offset / (Float)::std::sqrt(distance) ); + Ray axis( Float4::standard_unit_w, offset / (Float)::std::sqrt(distance) ); Float minDistance = numeric_limits::max(); - if( ray.Intersects(Plane(this->rigid.box.xAxis, this->rigid.box.boundingOffset.x)) ) + if( Private::Intersects(axis, Plane(this->rigid.box.xAxis, -this->rigid.box.boundingOffset.x), axis.collisionDistance) ) { // check along x-axis - if( ray.collisionDistance < 0.0f ) + if( axis.collisionDistance < 0.0f ) normal = -this->rigid.box.xAxis.xyz; else normal = this->rigid.box.xAxis.xyz; - minDistance = Abs( ray.collisionDistance ); + minDistance = Abs( axis.collisionDistance ); } - if( ray.Intersects(Plane(this->rigid.box.yAxis, this->rigid.box.boundingOffset.y)) ) + if( Private::Intersects(axis, Plane(this->rigid.box.yAxis, -this->rigid.box.boundingOffset.y), axis.collisionDistance) ) { // check along y-axis - distance = Abs( ray.collisionDistance ); // recycling memory + distance = Abs( axis.collisionDistance ); // recycling memory if( minDistance > distance ) { - if( ray.collisionDistance < 0.0f ) + if( axis.collisionDistance < 0.0f ) normal = -this->rigid.box.yAxis.xyz; else normal = this->rigid.box.yAxis.xyz; @@ -155,11 +188,11 @@ Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem } } - if( ray.Intersects(Plane(this->rigid.box.zAxis, this->rigid.box.boundingOffset.z)) ) + if( Private::Intersects(axis, Plane(this->rigid.box.zAxis, -this->rigid.box.boundingOffset.z), axis.collisionDistance) ) { // check along z-axis - if( minDistance > Abs( ray.collisionDistance ) ) + if( minDistance > Abs( axis.collisionDistance ) ) { - if( ray.collisionDistance < 0.0f ) + if( axis.collisionDistance < 0.0f ) normal = -this->rigid.box.zAxis.xyz; else normal = this->rigid.box.zAxis.xyz; From ff52977dcfe60cd4e5dadfbb46eaacafac581f56 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 17:27:09 +0100 Subject: [PATCH 30/42] Bug fixes including a hack --- .../Implementation/PhysicsAPI_Impl.cpp | 27 ++++++++++--------- Code/GamePhysics/PhysicsFormula-Impl.h | 3 ++- Code/OysterPhysics3D/RigidBody.cpp | 4 +-- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index cc3caf10..86e5038f 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -39,14 +39,13 @@ namespace deuterG_Magnitude = deuterG.Dot( normal ); // bounce - Float impulse = Formula::CollisionResponse::Bounce( deuterState.GetRestitutionCoeff(), - deuterState.GetMass(), deuterG_Magnitude, - protoState.GetMass(), protoG_Magnitude );; - Float4 sumJ = normal*impulse; + Float4 bounceD = normal * -Formula::CollisionResponse::Bounce( deuterState.GetRestitutionCoeff(), + deuterState.GetMass(), deuterG_Magnitude, + protoState.GetMass(), protoG_Magnitude ); - sumJ -= Formula::CollisionResponse::Friction( impulse, normal, - protoState.GetLinearMomentum(), protoState.GetFrictionCoeff_Static(), protoState.GetFrictionCoeff_Kinetic(), protoState.GetMass(), - deuterState.GetLinearMomentum(), deuterState.GetFrictionCoeff_Static(), deuterState.GetFrictionCoeff_Kinetic(), deuterState.GetMass()); + //sumJ -= Formula::CollisionResponse::Friction( impulse, normal, + // protoState.GetLinearMomentum(), protoState.GetFrictionCoeff_Static(), protoState.GetFrictionCoeff_Kinetic(), protoState.GetMass(), + // deuterState.GetLinearMomentum(), deuterState.GetFrictionCoeff_Static(), deuterState.GetFrictionCoeff_Kinetic(), deuterState.GetMass()); // calc from perspective of proto proto->GetNormalAt( worldPointOfContact, normal ); @@ -54,18 +53,22 @@ namespace deuterG_Magnitude = deuterG.Dot( normal ); // bounce - sumJ -= normal * Formula::CollisionResponse::Bounce( protoState.GetRestitutionCoeff(), - protoState.GetMass(), protoG_Magnitude, - deuterState.GetMass(), deuterG_Magnitude ); + Float4 bounceP = normal * Formula::CollisionResponse::Bounce( protoState.GetRestitutionCoeff(), + protoState.GetMass(), protoG_Magnitude, + deuterState.GetMass(), deuterG_Magnitude ); + + Float4 bounce = Average( bounceD, bounceP ); + //Float4 bounce = bounceD + bounceP; + // FRICTION // Apply //sumJ += ( 1 / deuterState.GetMass() )*frictionImpulse; // FRICTION END - protoState.ApplyImpulse( sumJ, worldPointOfContact, normal ); + protoState.ApplyImpulse( bounce, worldPointOfContact, normal ); proto->SetState( protoState ); } - break; + break; } } } diff --git a/Code/GamePhysics/PhysicsFormula-Impl.h b/Code/GamePhysics/PhysicsFormula-Impl.h index 6546a856..323fd732 100644 --- a/Code/GamePhysics/PhysicsFormula-Impl.h +++ b/Code/GamePhysics/PhysicsFormula-Impl.h @@ -38,7 +38,8 @@ namespace Oyster { namespace Physics { namespace Formula { inline ::Oyster::Math::Float Bounce( ::Oyster::Math::Float e, ::Oyster::Math::Float mA, ::Oyster::Math::Float gA, ::Oyster::Math::Float mB, ::Oyster::Math::Float gB ) { - return (e + 1) * (mB*gA - mA*gB) / (mA + mB); + //return (e + 1) * (mB*gA - mA*gB) / (mA + mB); + return (e + 1) * (mA*gB - mB*gA) / (mA + mB); } inline ::Oyster::Math::Float4 Friction( ::Oyster::Math::Float i, ::Oyster::Math::Float4 iN, ::Oyster::Math::Float4 momA, ::Oyster::Math::Float sFA, ::Oyster::Math::Float dFA, ::Oyster::Math::Float mA, ::Oyster::Math::Float4 momB, ::Oyster::Math::Float sFB, ::Oyster::Math::Float dFB, ::Oyster::Math::Float mB ) diff --git a/Code/OysterPhysics3D/RigidBody.cpp b/Code/OysterPhysics3D/RigidBody.cpp index cebf3747..a71884f9 100644 --- a/Code/OysterPhysics3D/RigidBody.cpp +++ b/Code/OysterPhysics3D/RigidBody.cpp @@ -108,13 +108,13 @@ void RigidBody::Update_LeapFrog( Float deltaTime ) // updating the linear // dG = F * dt // ds = dt * Formula::LinearVelocity( m, avg_G ) = dt * avg_G / m = (dt / m) * avg_G - Float3 linearImpulse = this->impulseForceSum * deltaTime; // aka deltaLinearMomentum + Float3 linearImpulse = this->impulseForceSum; // HACK: * deltaTime; // aka deltaLinearMomentum Float3 deltaPos = ( deltaTime / this->mass ) * ::Utility::Value::AverageWithDelta( this->linearMomentum, linearImpulse ); // updating the angular // dH = T * dt // dO = dt * Formula::AngularVelocity( (RI)^-1, avg_H ) = dt * (RI)^-1 * avg_H - Float3 angularImpulse = this->impulseTorqueSum * deltaTime; // aka deltaAngularMomentum + Float3 angularImpulse = this->impulseTorqueSum; // HACK: * deltaTime; // aka deltaAngularMomentum Float3 rotationAxis = Formula::AngularVelocity( wMomentOfInertiaTensor.GetInverse(), ::Utility::Value::AverageWithDelta(this->angularMomentum, angularImpulse) ); From bbc489eac927e97ea1f4b3f6116219769cad9044 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 21:39:20 +0100 Subject: [PATCH 31/42] RigidBody improved and Gimbal lock proofed --- .../Implementation/SimpleRigidBody.cpp | 76 ++-- .../Implementation/SphericalRigidBody.cpp | 55 +-- Code/OysterMath/LinearMath.h | 108 +++++ Code/OysterMath/OysterMath.cpp | 55 +++ Code/OysterMath/OysterMath.h | 137 +++--- Code/OysterMath/Quaternion.h | 66 ++- Code/OysterPhysics3D/Box.cpp | 7 + Code/OysterPhysics3D/Box.h | 1 + Code/OysterPhysics3D/OysterPhysics3D.h | 27 ++ Code/OysterPhysics3D/OysterPhysics3D.vcxproj | 1 + .../OysterPhysics3D.vcxproj.filters | 3 + Code/OysterPhysics3D/RigidBody.cpp | 411 +++++------------- Code/OysterPhysics3D/RigidBody.h | 130 ++---- Code/OysterPhysics3D/RigidBody_Inline.h | 65 +++ 14 files changed, 615 insertions(+), 527 deletions(-) create mode 100644 Code/OysterPhysics3D/RigidBody_Inline.h diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 5160b4eb..90df71a1 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -43,7 +43,8 @@ namespace Private SimpleRigidBody::SimpleRigidBody() { - this->rigid = RigidBody( Box(Float4x4::identity, Float3::null, Float3(1.0f)), 16.0f, Float4x4::identity ); + this->rigid = RigidBody(); + this->rigid.SetMass_KeepMomentum( 16.0f ); this->gravityNormal = Float3::null; this->collisionAction = Default::EventAction_Collision; this->ignoreGravity = false; @@ -52,9 +53,13 @@ SimpleRigidBody::SimpleRigidBody() SimpleRigidBody::SimpleRigidBody( const API::SimpleBodyDescription &desc ) { - this->rigid = RigidBody( Box( desc.rotation, desc.centerPosition.xyz, desc.size.xyz ), - desc.mass, - desc.inertiaTensor ); + this->rigid = RigidBody(); + this->rigid.SetRotation( desc.rotation ); + this->rigid.centerPos = desc.centerPosition; + this->rigid.SetSize( desc.size ); + this->rigid.SetMass_KeepMomentum( desc.mass ); + this->rigid.SetMomentOfInertia_KeepMomentum( desc.inertiaTensor ); + this->gravityNormal = Float3::null; if( desc.subscription ) @@ -81,31 +86,31 @@ SimpleRigidBody::State SimpleRigidBody::GetState() const { return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, - this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, - this->rigid.box.center, AngularAxis(this->rigid.box.rotation), - Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); + this->rigid.GetMomentOfInertia(), this->rigid.boundingReach, + this->rigid.centerPos, this->rigid.axis, + this->rigid.momentum_Linear, this->rigid.momentum_Angular ); } SimpleRigidBody::State & SimpleRigidBody::GetState( SimpleRigidBody::State &targetMem ) const { return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, - this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, - this->rigid.box.center, AngularAxis(this->rigid.box.rotation), - Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); + this->rigid.GetMomentOfInertia(), this->rigid.boundingReach, + this->rigid.centerPos, this->rigid.axis, + this->rigid.momentum_Linear, this->rigid.momentum_Angular ); } void SimpleRigidBody::SetState( const SimpleRigidBody::State &state ) { - this->rigid.box.boundingOffset = state.GetReach(); - this->rigid.box.center = state.GetCenterPosition(); - this->rigid.box.rotation = state.GetRotation(); - this->rigid.angularMomentum = state.GetAngularMomentum().xyz; - this->rigid.linearMomentum = state.GetLinearMomentum().xyz; - this->rigid.impulseTorqueSum += state.GetAngularImpulse().xyz; - this->rigid.impulseForceSum += state.GetLinearImpulse().xyz; - this->rigid.restitutionCoeff = state.GetRestitutionCoeff(); - this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); + this->rigid.centerPos = state.GetCenterPosition(); + this->rigid.SetRotation( state.GetRotation() ); + this->rigid.boundingReach = state.GetReach(); + this->rigid.momentum_Linear = state.GetLinearMomentum(); + this->rigid.momentum_Angular = state.GetAngularMomentum(); + this->rigid.impulse_Linear += state.GetLinearImpulse(); + this->rigid.impulse_Angular += state.GetAngularImpulse(); + this->rigid.restitutionCoeff = state.GetRestitutionCoeff(); + this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); this->rigid.frictionCoeff_Kinetic = state.GetFrictionCoeff_Kinetic(); if( this->scene ) @@ -135,27 +140,27 @@ bool SimpleRigidBody::IsAffectedByGravity() const bool SimpleRigidBody::Intersects( const ICollideable &shape ) const { - return this->rigid.box.Intersects( shape ); + return Box( this->rigid.GetRotationMatrix(), this->rigid.centerPos, this->rigid.GetSize() ).Intersects( shape ); } bool SimpleRigidBody::Intersects( const ICollideable &shape, Float4 &worldPointOfContact ) const { - return this->rigid.box.Intersects( shape, worldPointOfContact ); + return Box( this->rigid.GetRotationMatrix(), this->rigid.centerPos, this->rigid.GetSize() ).Intersects( shape, worldPointOfContact ); } bool SimpleRigidBody::Intersects( const ICustomBody &object, Float4 &worldPointOfContact ) const { - return object.Intersects( this->rigid.box, worldPointOfContact ); + return object.Intersects( Box(this->rigid.GetRotationMatrix(), this->rigid.centerPos, this->rigid.GetSize()), worldPointOfContact ); } Sphere & SimpleRigidBody::GetBoundingSphere( Sphere &targetMem ) const { - return targetMem = Sphere( this->rigid.box.center, this->rigid.box.boundingOffset.GetMagnitude() ); + return targetMem = Sphere( this->rigid.centerPos, this->rigid.boundingReach.GetMagnitude() ); } Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem ) const { - Float4 offset = worldPos - this->rigid.box.center; + Float4 offset = worldPos - this->rigid.centerPos; Float distance = offset.Dot( offset ); Float3 normal = Float3::null; @@ -163,39 +168,40 @@ Float4 & SimpleRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem { // sanity check Ray axis( Float4::standard_unit_w, offset / (Float)::std::sqrt(distance) ); Float minDistance = numeric_limits::max(); - - if( Private::Intersects(axis, Plane(this->rigid.box.xAxis, -this->rigid.box.boundingOffset.x), axis.collisionDistance) ) + Float4x4 rotationMatrix = this->rigid.GetRotationMatrix(); + + if( Private::Intersects(axis, Plane(rotationMatrix.v[0], -this->rigid.boundingReach.x), axis.collisionDistance) ) { // check along x-axis if( axis.collisionDistance < 0.0f ) - normal = -this->rigid.box.xAxis.xyz; + normal = -rotationMatrix.v[0].xyz; else - normal = this->rigid.box.xAxis.xyz; + normal = rotationMatrix.v[0].xyz; minDistance = Abs( axis.collisionDistance ); } - if( Private::Intersects(axis, Plane(this->rigid.box.yAxis, -this->rigid.box.boundingOffset.y), axis.collisionDistance) ) + if( Private::Intersects(axis, Plane(rotationMatrix.v[1], -this->rigid.boundingReach.y), axis.collisionDistance) ) { // check along y-axis distance = Abs( axis.collisionDistance ); // recycling memory if( minDistance > distance ) { if( axis.collisionDistance < 0.0f ) - normal = -this->rigid.box.yAxis.xyz; + normal = -rotationMatrix.v[1].xyz; else - normal = this->rigid.box.yAxis.xyz; + normal = rotationMatrix.v[1].xyz; minDistance = distance; } } - if( Private::Intersects(axis, Plane(this->rigid.box.zAxis, -this->rigid.box.boundingOffset.z), axis.collisionDistance) ) + if( Private::Intersects(axis, Plane(rotationMatrix.v[2], -this->rigid.boundingReach.z), axis.collisionDistance) ) { // check along z-axis if( minDistance > Abs( axis.collisionDistance ) ) { if( axis.collisionDistance < 0.0f ) - normal = -this->rigid.box.zAxis.xyz; + normal = -rotationMatrix.v[2].xyz; else - normal = this->rigid.box.zAxis.xyz; + normal = rotationMatrix.v[2].xyz; } } } @@ -211,7 +217,7 @@ Float3 & SimpleRigidBody::GetGravityNormal( Float3 &targetMem ) const //Float3 & SimpleRigidBody::GetCenter( Float3 &targetMem ) const //{ -// return targetMem = this->rigid.box.center; +// return targetMem = this->rigid.centerPos; //} // //Float4x4 & SimpleRigidBody::GetRotation( Float4x4 &targetMem ) const diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index e31fd0df..d0bebedf 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -10,7 +10,8 @@ using namespace ::Utility::Value; SphericalRigidBody::SphericalRigidBody() { - this->rigid = RigidBody( Box(Float4x4::identity, Float3::null, Float3(1.0f)), 10.0f, Float4x4::identity ); + this->rigid = RigidBody(); + this->rigid.SetMass_KeepMomentum( 10.0f ); this->gravityNormal = Float3::null; this->collisionAction = Default::EventAction_Collision; this->ignoreGravity = false; @@ -20,9 +21,13 @@ SphericalRigidBody::SphericalRigidBody() SphericalRigidBody::SphericalRigidBody( const API::SphericalBodyDescription &desc ) { - this->rigid = RigidBody( Box( desc.rotation, desc.centerPosition.xyz, Float3(2.0f * desc.radius) ), - desc.mass, - Formula::MomentOfInertia::CreateSphereMatrix( desc.mass, desc.radius ) ); + this->rigid = RigidBody(); + this->rigid.SetRotation( desc.rotation ); + this->rigid.centerPos = desc.centerPosition; + this->rigid.boundingReach = Float4( desc.radius, desc.radius, desc.radius, 0.0f ); + this->rigid.SetMass_KeepMomentum( desc.mass ); + this->rigid.SetMomentOfInertia_KeepMomentum( Formula::MomentOfInertia::CreateSphereMatrix( desc.mass, desc.radius ) ); + this->gravityNormal = Float3::null; if( desc.subscription ) @@ -50,31 +55,31 @@ SphericalRigidBody::State SphericalRigidBody::GetState() const { return State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, - this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, - this->rigid.box.center, AngularAxis(this->rigid.box.rotation), - Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); + this->rigid.GetMomentOfInertia(), this->rigid.boundingReach, + this->rigid.centerPos, this->rigid.axis, + this->rigid.momentum_Linear, this->rigid.momentum_Angular ); } SphericalRigidBody::State & SphericalRigidBody::GetState( SphericalRigidBody::State &targetMem ) const { return targetMem = State( this->rigid.GetMass(), this->rigid.restitutionCoeff, this->rigid.frictionCoeff_Static, this->rigid.frictionCoeff_Kinetic, - this->rigid.GetMomentOfInertia(), this->rigid.box.boundingOffset, - this->rigid.box.center, AngularAxis(this->rigid.box.rotation), - Float4(this->rigid.linearMomentum, 0.0f), Float4(this->rigid.angularMomentum, 0.0f) ); + this->rigid.GetMomentOfInertia(), this->rigid.boundingReach, + this->rigid.centerPos, this->rigid.axis, + this->rigid.momentum_Linear, this->rigid.momentum_Angular ); } void SphericalRigidBody::SetState( const SphericalRigidBody::State &state ) { - this->rigid.box.boundingOffset = state.GetReach(); - this->rigid.box.center = state.GetCenterPosition(); - this->rigid.box.rotation = state.GetRotation(); - this->rigid.angularMomentum = state.GetAngularMomentum().xyz; - this->rigid.linearMomentum = state.GetLinearMomentum().xyz; - this->rigid.impulseTorqueSum += state.GetAngularImpulse().xyz; - this->rigid.impulseForceSum += state.GetLinearImpulse().xyz; - this->rigid.restitutionCoeff = state.GetRestitutionCoeff(); - this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); + this->rigid.centerPos = state.GetCenterPosition(); + this->rigid.SetRotation( state.GetRotation() ); + this->rigid.boundingReach = state.GetReach(); + this->rigid.momentum_Linear = state.GetLinearMomentum(); + this->rigid.momentum_Angular = state.GetAngularMomentum(); + this->rigid.impulse_Linear += state.GetLinearImpulse(); + this->rigid.impulse_Angular += state.GetAngularImpulse(); + this->rigid.restitutionCoeff = state.GetRestitutionCoeff(); + this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); this->rigid.frictionCoeff_Kinetic = state.GetFrictionCoeff_Kinetic(); if( this->scene ) @@ -104,17 +109,17 @@ bool SphericalRigidBody::IsAffectedByGravity() const bool SphericalRigidBody::Intersects( const ICollideable &shape ) const { - return Sphere( this->rigid.box.center, this->rigid.box.boundingOffset.x ).Intersects( shape ); + return Sphere( this->rigid.centerPos, this->rigid.boundingReach.x ).Intersects( shape ); } bool SphericalRigidBody::Intersects( const ICollideable &shape, Float4 &worldPointOfContact ) const { - return Sphere( this->rigid.box.center, this->rigid.box.boundingOffset.x ).Intersects( shape, worldPointOfContact ); + return Sphere( this->rigid.centerPos, this->rigid.boundingReach.x ).Intersects( shape, worldPointOfContact ); } bool SphericalRigidBody::Intersects( const ICustomBody &object, Float4 &worldPointOfContact ) const { - return object.Intersects( Sphere(this->rigid.box.center, this->rigid.box.boundingOffset.x), worldPointOfContact ); + return object.Intersects( Sphere(this->rigid.centerPos, this->rigid.boundingReach.x), worldPointOfContact ); } Sphere & SphericalRigidBody::GetBoundingSphere( Sphere &targetMem ) const @@ -124,7 +129,7 @@ Sphere & SphericalRigidBody::GetBoundingSphere( Sphere &targetMem ) const Float4 & SphericalRigidBody::GetNormalAt( const Float4 &worldPos, Float4 &targetMem ) const { - targetMem = worldPos - this->rigid.box.center; + targetMem = worldPos - this->rigid.centerPos; Float magnitude = targetMem.GetMagnitude(); if( magnitude != 0.0f ) { // sanity check @@ -141,7 +146,7 @@ Float3 & SphericalRigidBody::GetGravityNormal( Float3 &targetMem ) const //Float3 & SphericalRigidBody::GetCenter( Float3 &targetMem ) const //{ -// return targetMem = this->rigid.box.center; +// return targetMem = this->rigid.centerPos; //} // //Float4x4 & SphericalRigidBody::GetRotation( Float4x4 &targetMem ) const @@ -167,7 +172,7 @@ Float3 SphericalRigidBody::GetRigidLinearVelocity() const UpdateState SphericalRigidBody::Update( Float timeStepLength ) { this->rigid.Update_LeapFrog( timeStepLength ); - this->body.center = this->rigid.GetCenter(); + this->body.center = this->rigid.centerPos; // compare previous and new state and return result //return this->current == this->previous ? UpdateState_resting : UpdateState_altered; diff --git a/Code/OysterMath/LinearMath.h b/Code/OysterMath/LinearMath.h index f686ada4..0ebf94e7 100644 --- a/Code/OysterMath/LinearMath.h +++ b/Code/OysterMath/LinearMath.h @@ -281,6 +281,106 @@ namespace LinearAlgebra3D 0, 0, 0, 1 ); } + template + inline ::LinearAlgebra::Quaternion Rotation( const ScalarType &radian, const ::LinearAlgebra::Vector3 &normalizedAxis ) + { + ScalarType r = radian * 0.5f, + s = std::sin( r ), + c = std::cos( r ); + + return ::LinearAlgebra::Quaternion( normalizedAxis * s, c ); + } + + template + inline ::LinearAlgebra::Quaternion Rotation( const ScalarType &radian, const ::LinearAlgebra::Vector4 &normalizedAxis ) + { + ScalarType r = radian * 0.5f, + s = std::sin( r ), + c = std::cos( r ); + + return ::LinearAlgebra::Quaternion( (normalizedAxis * s).xyz, c ); + } + + template + inline ::LinearAlgebra::Quaternion Rotation( const ::LinearAlgebra::Vector3 &angularAxis ) + { + ScalarType radius = angularAxis.Dot( angularAxis ); + if( radius != 0 ) + { + radius = (ScalarType)::std::sqrt( radius ); + return Rotation( radius, angularAxis / radius ); + } + else + { + return ::LinearAlgebra::Quaternion::identity; + } + } + + template + inline ::LinearAlgebra::Quaternion Rotation( const ::LinearAlgebra::Vector4 &angularAxis ) + { + ScalarType radius = angularAxis.Dot( angularAxis ); + if( radius != 0 ) + { + radius = (ScalarType)::std::sqrt( radius ); + return Rotation( radius, angularAxis / radius ); + } + else + { + return ::LinearAlgebra::Quaternion::identity; + } + } + + template + inline ::LinearAlgebra::Matrix4x4 & RotationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + { + ::LinearAlgebra::Quaternion conjugate = rotationQuaternion.GetConjugate(); + + targetMem.v[0] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(1,0,0)*conjugate).imaginary, 0 ); + targetMem.v[1] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(0,1,0)*conjugate).imaginary, 0 ); + targetMem.v[2] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(0,0,1)*conjugate).imaginary, 0 ); + targetMem.v[3] = ::LinearAlgebra::Vector4::standard_unit_w; + return targetMem; + } + + template + inline ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + { + ::LinearAlgebra::Quaternion conjugate = rotationQuaternion.GetConjugate(); + + targetMem.v[0] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(1,0,0)*conjugate).imaginary, 0 ); + targetMem.v[1] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(0,1,0)*conjugate).imaginary, 0 ); + targetMem.v[2] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(0,0,1)*conjugate).imaginary, 0 ); + targetMem.v[3] = ::LinearAlgebra::Vector4( translation, 1 ); + return targetMem; + } + + template + inline ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector4 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + { + ::LinearAlgebra::Quaternion conjugate = rotationQuaternion.GetConjugate(); + + targetMem.v[0] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(1,0,0)*conjugate).imaginary, 0 ); + targetMem.v[1] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(0,1,0)*conjugate).imaginary, 0 ); + targetMem.v[2] = ::LinearAlgebra::Vector4( (rotationQuaternion*::LinearAlgebra::Vector3(0,0,1)*conjugate).imaginary, 0 ); + targetMem.v[3] = translation; + return targetMem; + } + + template + inline ::LinearAlgebra::Matrix4x4 & ViewMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + { + OrientationMatrix( rotationQuaternion, translation, targetMem ); + return InverseOrientationMatrix( targetMem, targetMem ); + } + + template + inline ::LinearAlgebra::Matrix4x4 & ViewMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector4 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + { + OrientationMatrix( rotationQuaternion, translation, targetMem ); + return InverseOrientationMatrix( targetMem, targetMem ); + } + template inline ::LinearAlgebra::Matrix3x3 & RotationMatrix_AxisX( const ScalarType &radian, ::LinearAlgebra::Matrix3x3 &targetMem = ::LinearAlgebra::Matrix3x3() ) { @@ -557,9 +657,17 @@ namespace LinearAlgebra3D inline ::LinearAlgebra::Vector3 VectorProjection( const ::LinearAlgebra::Vector3 &vector, const ::LinearAlgebra::Vector3 &axis ) { return axis * ( vector.Dot(axis) / axis.Dot(axis) ); } + template + inline ::LinearAlgebra::Vector4 VectorProjection( const ::LinearAlgebra::Vector4 &vector, const ::LinearAlgebra::Vector4 &axis ) + { return axis * ( vector.Dot(axis) / axis.Dot(axis) ); } + template inline ::LinearAlgebra::Vector3 NormalProjection( const ::LinearAlgebra::Vector3 &vector, const ::LinearAlgebra::Vector3 &normalizedAxis ) { return normalizedAxis * ( vector.Dot(normalizedAxis) ); } + + template + inline ::LinearAlgebra::Vector4 NormalProjection( const ::LinearAlgebra::Vector4 &vector, const ::LinearAlgebra::Vector4 &normalizedAxis ) + { return normalizedAxis * ( vector.Dot(normalizedAxis) ); } } #include "Utilities.h" diff --git a/Code/OysterMath/OysterMath.cpp b/Code/OysterMath/OysterMath.cpp index b72ad551..f44de9fd 100644 --- a/Code/OysterMath/OysterMath.cpp +++ b/Code/OysterMath/OysterMath.cpp @@ -101,6 +101,51 @@ namespace Oyster { namespace Math3D return ::LinearAlgebra3D::TranslationMatrix( position, targetMem ); } + Quaternion Rotation( Float radian, const Float3 &normalizedAxis ) + { + return ::LinearAlgebra3D::Rotation( radian, normalizedAxis ); + } + + Quaternion Rotation( Float radian, const Float4 &normalizedAxis ) + { + return ::LinearAlgebra3D::Rotation( radian, normalizedAxis ); + } + + Quaternion Rotation( const Float3 &angularAxis ) + { + return ::LinearAlgebra3D::Rotation( angularAxis ); + } + + Quaternion Rotation( const Float4 &angularAxis ) + { + return ::LinearAlgebra3D::Rotation( angularAxis ); + } + + Float4x4 & RotationMatrix( const Quaternion &rotationQuaternion, Float4x4 &targetMem ) + { + return ::LinearAlgebra3D::RotationMatrix( rotationQuaternion, targetMem ); + } + + Float4x4 & OrientationMatrix( const Quaternion &rotationQuaternion, const Float3 &translation, Float4x4 &targetMem ) + { + return ::LinearAlgebra3D::OrientationMatrix( rotationQuaternion, translation, targetMem ); + } + + Float4x4 & OrientationMatrix( const Quaternion &rotationQuaternion, const Float4 &translation, Float4x4 &targetMem ) + { + return ::LinearAlgebra3D::OrientationMatrix( rotationQuaternion, translation, targetMem ); + } + + Float4x4 & ViewMatrix( const Quaternion &rotationQuaternion, const Float3 &translation, Float4x4 &targetMem ) + { + return ::LinearAlgebra3D::ViewMatrix( rotationQuaternion, translation, targetMem ); + } + + Float4x4 & ViewMatrix( const Quaternion &rotationQuaternion, const Float4 &translation, Float4x4 &targetMem ) + { + return ::LinearAlgebra3D::ViewMatrix( rotationQuaternion, translation, targetMem ); + } + Float4x4 & RotationMatrix_AxisX( const Float &radian, Float4x4 &targetMem ) { return ::LinearAlgebra3D::RotationMatrix_AxisX( radian, targetMem ); @@ -217,8 +262,18 @@ namespace Oyster { namespace Math3D return ::LinearAlgebra3D::VectorProjection( vector, axis ); } + Float4 VectorProjection( const Float4 &vector, const Float4 &axis ) + { + return ::LinearAlgebra3D::VectorProjection( vector, axis ); + } + Float3 NormalProjection( const Float3 &vector, const Float3 &normalizedAxis ) { return ::LinearAlgebra3D::NormalProjection( vector, normalizedAxis ); } + + Float4 NormalProjection( const Float4 &vector, const Float4 &normalizedAxis ) + { + return ::LinearAlgebra3D::NormalProjection( vector, normalizedAxis ); + } } } \ No newline at end of file diff --git a/Code/OysterMath/OysterMath.h b/Code/OysterMath/OysterMath.h index 18a57458..2fe57718 100644 --- a/Code/OysterMath/OysterMath.h +++ b/Code/OysterMath/OysterMath.h @@ -9,17 +9,19 @@ #include "LinearMath.h" #include -namespace Oyster { namespace Math /// Oyster's native math library +namespace Oyster { namespace Math //! Oyster's native math library { - typedef float Float; /// Oyster's native scalar is float + typedef float Float; //!< Oyster's native scalar is float - typedef ::LinearAlgebra::Vector2 Float2; /// 2D Linear Vector for Oyster - typedef ::LinearAlgebra::Vector3 Float3; /// 3D Linear Vector for Oyster - typedef ::LinearAlgebra::Vector4 Float4; /// 4D Linear Vector for Oyster + typedef ::LinearAlgebra::Vector2 Float2; //!< 2D Linear Vector for Oyster + typedef ::LinearAlgebra::Vector3 Float3; //!< 3D Linear Vector for Oyster + typedef ::LinearAlgebra::Vector4 Float4; //!< 4D Linear Vector for Oyster - typedef ::LinearAlgebra::Matrix2x2 Float2x2; /// 2x2 Linear Matrix for Oyster - typedef ::LinearAlgebra::Matrix3x3 Float3x3; /// 3x3 Linear Matrix for Oyster - typedef ::LinearAlgebra::Matrix4x4 Float4x4; /// 4x4 Linear Matrix for Oyster + typedef ::LinearAlgebra::Matrix2x2 Float2x2; //!< 2x2 Linear Matrix for Oyster + typedef ::LinearAlgebra::Matrix3x3 Float3x3; //!< 3x3 Linear Matrix for Oyster + typedef ::LinearAlgebra::Matrix4x4 Float4x4; //!< 4x4 Linear Matrix for Oyster + + typedef ::LinearAlgebra::Quaternion Quaternion; //!< Quaternion for Oyster typedef Float4x4 Matrix; // by popular demand typedef Float2 Vector2; // by popular demand @@ -28,20 +30,20 @@ namespace Oyster { namespace Math /// Oyster's native math library const Float pi = 3.1415926535897932384626433832795f; - /// Function Highly recommended to check at start, just in case current version is using a feature that might be available. - /// @todo TODO: create a template UniquePointer to use here + //! Function Highly recommended to check at start, just in case current version is using a feature that might be available. + //! @todo TODO: create a template UniquePointer to use here bool IsSupported(); - /// Creates a solution matrix for 'out´= 'targetMem' * 'in'. - /// Returns false if there is no explicit solution. + //! Creates a solution matrix for 'out´= 'targetMem' * 'in'. + //! Returns false if there is no explicit solution. bool SuperpositionMatrix( const Float2x2 &in, const Float2x2 &out, Float2x2 &targetMem ); - /// Creates a solution matrix for 'out´= 'targetMem' * 'in'. - /// Returns false if there is no explicit solution. + //! Creates a solution matrix for 'out´= 'targetMem' * 'in'. + //! Returns false if there is no explicit solution. bool SuperpositionMatrix( const Float3x3 &in, const Float3x3 &out, Float3x3 &targetMem ); - /// Creates a solution matrix for 'out´= 'targetMem' * 'in'. - /// Returns false if there is no explicit solution. + //! Creates a solution matrix for 'out´= 'targetMem' * 'in'. + //! Returns false if there is no explicit solution. bool SuperpositionMatrix( const Float4x4 &in, const Float4x4 &out, Float4x4 &targetMem ); } } @@ -96,54 +98,54 @@ inline ::Oyster::Math::Float3x3 operator * ( const ::Oyster::Math::Float &left, inline ::Oyster::Math::Float4x4 operator * ( const ::Oyster::Math::Float &left, const ::Oyster::Math::Float4x4 &right ) { return ::Oyster::Math::Float4x4(right) *= left; } -namespace Oyster { namespace Math2D /// Oyster's native math library specialized for 2D +namespace Oyster { namespace Math2D //! Oyster's native math library specialized for 2D { using namespace ::Oyster::Math; // deliberate inheritance from ::Oyster::Math namespace - /// If there is an Y-axis on a 2D plane, then there is an explicit X-axis on and that is what is returned. - /// Recommended too make sure that yAxis is normalized. + //! If there is an Y-axis on a 2D plane, then there is an explicit X-axis on and that is what is returned. + //! Recommended too make sure that yAxis is normalized. Float2 X_AxisTo( const Float2 &yAxis ); - /// If there is an X-axis on a 2D plane, then there is an explicit Y-axis and that is what is returned. - /// Recommended too make sure that yAxis is normalized. + //! If there is an X-axis on a 2D plane, then there is an explicit Y-axis and that is what is returned. + //! Recommended too make sure that yAxis is normalized. Float2 Y_AxisTo( const Float2 &xAxis ); - /// Sets and returns targetMem to a translationMatrix with position as translation. + //! Sets and returns targetMem to a translationMatrix with position as translation. Float3x3 & TranslationMatrix( const Float2 &position, Float3x3 &targetMem = Float3x3() ); - /// Sets and returns targetMem as a counterclockwise rotationMatrix + //! Sets and returns targetMem as a counterclockwise rotationMatrix Float3x3 & RotationMatrix( const Float &radian, Float3x3 &targetMem = Float3x3() ); - /// If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. + //! If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. Float2x2 & InverseRotationMatrix( const Float2x2 &rotation, Float2x2 &targetMem = Float2x2() ); - /// If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. + //! If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. Float3x3 & InverseRotationMatrix( const Float3x3 &rotation, Float3x3 &targetMem = Float3x3() ); - /// Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector + //! Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector Float3x3 & OrientationMatrix( const Float2x2 &rotation, const Float2 &translation, Float3x3 &targetMem = Float3x3() ); - /// Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector + //! Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector Float3x3 & OrientationMatrix( const Float3x3 &rotation, const Float2 &translation, Float3x3 &targetMem = Float3x3() ); - /// Sets and returns targetMem as an orientation Matrix with position as translation and radian rotation + //! Sets and returns targetMem as an orientation Matrix with position as translation and radian rotation Float3x3 & OrientationMatrix( const Float2 &position, const Float &radian, Float3x3 &targetMem = Float3x3() ); - /// Sets and returns targetMem as an orientation Matrix with position as translation and local y-axis directed at lookAt + //! Sets and returns targetMem as an orientation Matrix with position as translation and local y-axis directed at lookAt Float3x3 & OrientationMatrix( const Float2 &position, const Float2 &lookAt, Float3x3 &targetMem = Float3x3() ); - /// Sets and returns targetMem as an orientation Matrix that is rotated around localCenterOfRotation and then translated with position. - /// TODO: not tested + //! Sets and returns targetMem as an orientation Matrix that is rotated around localCenterOfRotation and then translated with position. + //! TODO: not tested Float3x3 & OrientationMatrix( const Float2 &position, Float radian, const Float2 &localCenterOfRotation, Float3x3 &targetMem = Float3x3() ); - /// If orientationMatrix is assumed to be by all definitions a rigid orientation matrix aka rigid body matrix. Then this is a much faster inverse method. + //! If orientationMatrix is assumed to be by all definitions a rigid orientation matrix aka rigid body matrix. Then this is a much faster inverse method. Float3x3 & InverseOrientationMatrix( const Float3x3 &orientationMatrix, Float3x3 &targetMem = Float3x3() ); - /// Returns targetmem after writing the rotation data from orientation, into it. + //! Returns targetmem after writing the rotation data from orientation, into it. Float3x3 & ExtractRotationMatrix( const Float3x3 &orientation, Float3x3 &targetMem = Float3x3() ); } } -namespace Oyster { namespace Math3D /// Oyster's native math library specialized for 3D +namespace Oyster { namespace Math3D //! Oyster's native math library specialized for 3D { using namespace ::Oyster::Math; // deliberate inheritance from ::Oyster::Math namespace @@ -156,35 +158,62 @@ namespace Oyster { namespace Math3D /// Oyster's native math library specialized //! Extracts the angularAxis from orientationMatrix Float4 ExtractAngularAxis( const Float4x4 &orientationMatrix ); - /// Sets and returns targetMem to a translationMatrix with position as translation. + //! Sets and returns targetMem to a translationMatrix with position as translation. Float4x4 & TranslationMatrix( const Float3 &position, Float4x4 &targetMem = Float4x4() ); - /// Sets and returns targetMem as an counterclockwise rotation matrix around the global X-axis + /** @todo TODO: add doc */ + Quaternion Rotation( Float radian, const Float3 &normalizedAxis ); + + /** @todo TODO: add doc */ + Quaternion Rotation( Float radian, const Float3 &normalizedAxis ); + + /** @todo TODO: add doc */ + Quaternion Rotation( const Float3 &angularAxis ); + + /** @todo TODO: add doc */ + Quaternion Rotation( const Float4 &angularAxis ); + + /** @todo TODO: add doc */ + Float4x4 & RotationMatrix( const Quaternion &rotationQuaternion, Float4x4 &targetMem = Float4x4() ); + + /** @todo TODO: add doc */ + Float4x4 & OrientationMatrix( const Quaternion &rotationQuaternion, const Float3 &translation, Float4x4 &targetMem = Float4x4() ); + + /** @todo TODO: add doc */ + Float4x4 & OrientationMatrix( const Quaternion &rotationQuaternion, const Float4 &translation, Float4x4 &targetMem = Float4x4() ); + + /** @todo TODO: add doc */ + Float4x4 & ViewMatrix( const Quaternion &rotationQuaternion, const Float3 &translation, Float4x4 &targetMem = Float4x4() ); + + /** @todo TODO: add doc */ + Float4x4 & ViewMatrix( const Quaternion &rotationQuaternion, const Float4 &translation, Float4x4 &targetMem = Float4x4() ); + + //! Sets and returns targetMem as an counterclockwise rotation matrix around the global X-axis Float4x4 & RotationMatrix_AxisX( const Float &radian, Float4x4 &targetMem = Float4x4() ); - /// Sets and returns targetMem as an counterclockwise rotation matrix around the global Y-axis + //! Sets and returns targetMem as an counterclockwise rotation matrix around the global Y-axis Float4x4 & RotationMatrix_AxisY( const Float &radian, Float4x4 &targetMem = Float4x4() ); - /// Sets and returns targetMem as an counterclockwise rotation matrix around the global Z-axis + //! Sets and returns targetMem as an counterclockwise rotation matrix around the global Z-axis Float4x4 & RotationMatrix_AxisZ( const Float &radian, Float4x4 &targetMem = Float4x4() ); - /// Sets and returns targetMem as an counterclockwise rotation matrix around the angularAxis. + //! Sets and returns targetMem as an counterclockwise rotation matrix around the angularAxis. Float4x4 & RotationMatrix( const Float3 &angularAxis, Float4x4 &targetMem = Float4x4() ); - /// Sets and returns targetMem as an counterclockwise rotation matrix around the normalizedAxis. - /// Please make sure normalizedAxis is normalized. + //! Sets and returns targetMem as an counterclockwise rotation matrix around the normalizedAxis. + //! Please make sure normalizedAxis is normalized. Float4x4 & RotationMatrix( const Float &radian, const Float3 &normalizedAxis, Float4x4 &targetMem = Float4x4() ); - /// If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. + //! If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. Float3x3 & InverseRotationMatrix( const Float3x3 &rotation, Float3x3 &targetMem = Float3x3() ); - /// If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. + //! If rotation is assumed to be by all definitions a rotation matrix. Then this is a much faster inverse method. Float4x4 & InverseRotationMatrix( const Float4x4 &rotation, Float4x4 &targetMem = Float4x4() ); - /// Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector + //! Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector Float4x4 & OrientationMatrix( const Float3x3 &rotation, const Float3 &translation, Float4x4 &targetMem = Float4x4() ); - /// Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector + //! Sets and returns targetMem as an orientation Matrix composed by the rotation matrix and translation vector Float4x4 & OrientationMatrix( const Float4x4 &rotation, const Float3 &translation, Float4x4 &targetMem = Float4x4() ); /******************************************************************* @@ -238,14 +267,14 @@ namespace Oyster { namespace Math3D /// Oyster's native math library specialized //! @todo TODO: Add documentation and not tested Float4x4 & ViewMatrix_LookAtPos( const Float3 &worldLookAt, const Float3 &normalizedUpVector, const Float3 &worldPos, Float4x4 &targetMem = Float4x4() ); - /// If orientationMatrix is assumed to be by all definitions a rigid orientation matrix aka rigid body matrix. Then this is a much faster inverse method. + //! If orientationMatrix is assumed to be by all definitions a rigid orientation matrix aka rigid body matrix. Then this is a much faster inverse method. Float4x4 & InverseOrientationMatrix( const Float4x4 &orientationMatrix, Float4x4 &targetMem = Float4x4() ); // O0 = T0 * R0 // O1 = T1 * T0 * R1 * R0 Float4x4 & UpdateOrientationMatrix( const Float3 &deltaPosition, const Float4x4 &deltaRotationMatrix, Float4x4 &orientationMatrix ); - /// Returns targetmem after writing the rotation data from orientation, into it. + //! Returns targetmem after writing the rotation data from orientation, into it. Float4x4 & ExtractRotationMatrix( const Float4x4 &orientation, Float4x4 &targetMem = Float4x4() ); /******************************************************************* @@ -272,13 +301,19 @@ namespace Oyster { namespace Math3D /// Oyster's native math library specialized *******************************************************************/ Float4x4 & ProjectionMatrix_Perspective( const Float &verticalFoV, const Float &aspectRatio, const Float &nearClip = ::std::numeric_limits::epsilon(), const Float &farClip = ::std::numeric_limits::max(), Float4x4 &targetMem = Float4x4() ); - /// returns the component vector of vector that is parallell with axis + //! returns the component vector of vector that is parallell with axis Float3 VectorProjection( const Float3 &vector, const Float3 &axis ); - /// returns the component vector of vector that is parallell with axis. Faster than VectorProjection. + //! returns the component vector of vector that is parallell with axis + Float4 VectorProjection( const Float4 &vector, const Float4 &axis ); + + //! returns the component vector of vector that is parallell with axis. Faster than VectorProjection. Float3 NormalProjection( const Float3 &vector, const Float3 &normalizedAxis ); - /// Helper inline function that sets and then returns targetMem = projection * view + //! returns the component vector of vector that is parallell with axis. Faster than VectorProjection. + Float4 NormalProjection( const Float4 &vector, const Float4 &normalizedAxis ); + + //! Helper inline function that sets and then returns targetMem = projection * view inline Float4x4 & ViewProjectionMatrix( const Float4x4 &view, const Float4x4 &projection, Float4x4 &targetMem = Float4x4() ) { return targetMem = projection * view; } @@ -290,7 +325,7 @@ namespace Oyster { namespace Math3D /// Oyster's native math library specialized inline Float4x4 TransformMatrix( const Float4x4 &transformer, const Float4x4 &transformee ) { return transformer * transformee; } - /// Helper inline function that sets and then returns targetMem = transformer * transformee + //! Helper inline function that sets and then returns targetMem = transformer * transformee inline Float4 & TransformVector( const Float4x4 &transformer, const Float4 &transformee, Float4 &targetMem = Float4() ) { return targetMem = transformer * transformee; } } } diff --git a/Code/OysterMath/Quaternion.h b/Code/OysterMath/Quaternion.h index fd19100f..da790f75 100644 --- a/Code/OysterMath/Quaternion.h +++ b/Code/OysterMath/Quaternion.h @@ -22,8 +22,10 @@ namespace LinearAlgebra char byte[sizeof(ScalarType[2])]; }; + static const Quaternion null; + static const Quaternion identity; + Quaternion( ); - Quaternion( const Quaternion &quaternion ); Quaternion( const Vector3 &imaginary, const ScalarType &real ); operator ScalarType* ( ); @@ -53,40 +55,54 @@ namespace LinearAlgebra // Body /////////////////////////////////////////////////////////////////////////////////// + template const Quaternion Quaternion::null = Quaternion( Vector3((ScalarType)0), (ScalarType)0 ); + template const Quaternion Quaternion::identity = Quaternion( Vector3((ScalarType)0), (ScalarType)1 ); + template Quaternion::Quaternion( ) : imaginary(), real() {} template - Quaternion::Quaternion( const Quaternion &quaternion ) - { this->imaginary = quaternion.imaginary; this->real = quaternion.real; } - - template - Quaternion::Quaternion( const Vector3 &_imaginary, const ScalarType &_real ) - { this->imaginary = _imaginary; this->real = _real; } + Quaternion::Quaternion( const Vector3 &imaginary, const ScalarType &real ) + { + this->imaginary = imaginary; + this->real = real; + } template inline Quaternion::operator ScalarType* ( ) - { return this->element; } + { + return this->element; + } template inline Quaternion::operator const ScalarType* ( ) const - { return this->element; } + { + return this->element; + } template inline Quaternion::operator char* ( ) - { return this->byte; } + { + return this->byte; + } template inline Quaternion::operator const char* ( ) const - { return this->byte; } + { + return this->byte; + } template inline ScalarType & Quaternion::operator [] ( int i ) - { return this->element[i]; } + { + return this->element[i]; + } template inline const ScalarType & Quaternion::operator [] ( int i ) const - { return this->element[i]; } + { + return this->element[i]; + } template Quaternion & Quaternion::operator = ( const Quaternion &quaternion ) @@ -154,27 +170,39 @@ namespace LinearAlgebra template inline Quaternion Quaternion::operator * ( const ScalarType &scalar ) const - { return Quaternion(*this) *= scalar; } + { + return Quaternion(*this) *= scalar; + } template inline Quaternion Quaternion::operator / ( const ScalarType &scalar ) const - { return Quaternion(*this) /= scalar; } + { + return Quaternion(*this) /= scalar; + } template inline Quaternion Quaternion::operator + ( const Quaternion &quaternion ) const - { return Quaternion(*this) += quaternion; } + { + return Quaternion(*this) += quaternion; + } template inline Quaternion Quaternion::operator - ( const Quaternion &quaternion ) const - { return Quaternion(*this) -= quaternion; } + { + return Quaternion(*this) -= quaternion; + } template inline Quaternion Quaternion::operator - ( ) const - { return Quaternion(-this->imaginary, -this->real); } + { + return Quaternion(-this->imaginary, -this->real); + } template inline Quaternion Quaternion::GetConjugate( ) const - { return Quaternion(-this->imaginary, this->real ); } + { + return Quaternion(-this->imaginary, this->real ); + } } #endif \ No newline at end of file diff --git a/Code/OysterPhysics3D/Box.cpp b/Code/OysterPhysics3D/Box.cpp index 94f948a6..f55415b7 100644 --- a/Code/OysterPhysics3D/Box.cpp +++ b/Code/OysterPhysics3D/Box.cpp @@ -22,6 +22,13 @@ Box::Box( const Float4x4 &r, const Float3 &p, const Float3 &s ) : ICollideable(T this->boundingOffset = Float4( s * 0.5f , 0.0f); } +Box::Box( const Float4x4 &r, const Float4 &p, const Float4 &s ) : ICollideable(Type_box) +{ + this->rotation = r; + this->center = p; + this->boundingOffset = s * 0.5f; +} + Box::~Box( ) {} Box & Box::operator = ( const Box &box ) diff --git a/Code/OysterPhysics3D/Box.h b/Code/OysterPhysics3D/Box.h index 3259908f..f98ae362 100644 --- a/Code/OysterPhysics3D/Box.h +++ b/Code/OysterPhysics3D/Box.h @@ -28,6 +28,7 @@ namespace Oyster { namespace Collision3D Box( ); Box( const ::Oyster::Math::Float4x4 &rotation, const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &size ); + Box( const ::Oyster::Math::Float4x4 &rotation, const ::Oyster::Math::Float4 &worldPos, const ::Oyster::Math::Float4 &size ); virtual ~Box( ); Box & operator = ( const Box &box ); diff --git a/Code/OysterPhysics3D/OysterPhysics3D.h b/Code/OysterPhysics3D/OysterPhysics3D.h index 33d9a93e..f70d228f 100644 --- a/Code/OysterPhysics3D/OysterPhysics3D.h +++ b/Code/OysterPhysics3D/OysterPhysics3D.h @@ -192,6 +192,15 @@ namespace Oyster { namespace Physics3D return worldOffset.Cross( linearVelocity ); } + /****************************************************************** + * Returns the world angular velocity of a mass in rotation. + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 AngularVelocity( const ::Oyster::Math::Float4 &linearVelocity, const ::Oyster::Math::Float4 &worldOffset ) + { + return ::Oyster::Math::Float4( worldOffset.xyz.Cross( linearVelocity.xyz ), 0.0f ); + } + /****************************************************************** * Returns the world tangential velocity at worldPos, of a mass in rotation. * @todo TODO: improve doc @@ -237,6 +246,15 @@ namespace Oyster { namespace Physics3D return worldOffset.Cross( impulseForce ); } + /****************************************************************** + * + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 ImpulseTorque( const ::Oyster::Math::Float4 & impulseForce, const ::Oyster::Math::Float4 &worldOffset ) + { + return ::Oyster::Math::Float4( worldOffset.xyz.Cross(impulseForce.xyz), 0.0f ); + } + /****************************************************************** * T = I*a * @todo TODO: improve doc @@ -246,6 +264,15 @@ namespace Oyster { namespace Physics3D return ( momentOfInertia * ::Oyster::Math::Float4(angularImpulseAcceleration, 0.0f) ).xyz; } + /****************************************************************** + * T = I*a + * @todo TODO: improve doc + ******************************************************************/ + inline ::Oyster::Math::Float4 ImpulseTorque( const ::Oyster::Math::Float4x4 & momentOfInertia, const ::Oyster::Math::Float4 &angularImpulseAcceleration ) + { + return momentOfInertia * angularImpulseAcceleration; + } + namespace MomentOfInertia { /// Library of Formulas to calculate moment of inerta for simple shapes /** @todo TODO: add MomentOfInertia tensor formulas */ diff --git a/Code/OysterPhysics3D/OysterPhysics3D.vcxproj b/Code/OysterPhysics3D/OysterPhysics3D.vcxproj index c36fded5..14eb0aaa 100644 --- a/Code/OysterPhysics3D/OysterPhysics3D.vcxproj +++ b/Code/OysterPhysics3D/OysterPhysics3D.vcxproj @@ -159,6 +159,7 @@ + diff --git a/Code/OysterPhysics3D/OysterPhysics3D.vcxproj.filters b/Code/OysterPhysics3D/OysterPhysics3D.vcxproj.filters index e3a8a70d..02919d28 100644 --- a/Code/OysterPhysics3D/OysterPhysics3D.vcxproj.filters +++ b/Code/OysterPhysics3D/OysterPhysics3D.vcxproj.filters @@ -75,6 +75,9 @@ Header Files\Physics + + Header Files\Physics + diff --git a/Code/OysterPhysics3D/RigidBody.cpp b/Code/OysterPhysics3D/RigidBody.cpp index a71884f9..e774752b 100644 --- a/Code/OysterPhysics3D/RigidBody.cpp +++ b/Code/OysterPhysics3D/RigidBody.cpp @@ -9,418 +9,201 @@ using namespace ::Oyster::Collision3D; using namespace ::Oyster::Physics3D; using namespace ::Oyster::Math3D; -RigidBody::RigidBody( const Box &b, Float m, const Float4x4 &inertiaTensor ) +RigidBody::RigidBody( ) { // by Dan Andersson - this->box = b; - this->angularMomentum = Float3::null; - this->linearMomentum = Float3::null; - this->impulseTorqueSum = Float3::null; - this->impulseForceSum = Float3::null; + this->centerPos = Float4::standard_unit_w; + this->axis = Float4::null; + this->boundingReach = Float4( 0.5f, 0.5f, 0.5f, 0.0f ); + this->momentum_Linear = Float4::null; + this->momentum_Angular = Float4::null; + this->impulse_Linear = Float4::null; + this->impulse_Angular = Float4::null; this->restitutionCoeff = 1.0f; - this->frictionCoeff_Static = 1.0f; + this->frictionCoeff_Static = 0.5f; this->frictionCoeff_Kinetic = 1.0f; - - if( m != 0.0f ) - { - this->mass = m; - } - else - { - this->mass = ::Utility::Value::numeric_limits::epsilon(); - } - - if( inertiaTensor.GetDeterminant() != 0.0f ) - { - this->momentOfInertiaTensor = inertiaTensor; - } - else - { - this->momentOfInertiaTensor = Float4x4::identity; - } + this->mass = 10; + this->momentOfInertiaTensor = Float4x4::identity; + this->rotation = Quaternion::identity; } RigidBody & RigidBody::operator = ( const RigidBody &body ) { // by Dan Andersson - this->box = body.box; - this->angularMomentum = body.angularMomentum; - this->linearMomentum = body.linearMomentum; - this->impulseTorqueSum = body.impulseTorqueSum; - this->impulseForceSum = body.impulseForceSum; + this->centerPos = body.centerPos; + this->axis = body.axis; + this->boundingReach = body.boundingReach; + this->momentum_Linear = body.momentum_Linear; + this->momentum_Angular = body.momentum_Angular; + this->impulse_Linear = body.impulse_Linear; + this->impulse_Angular = body.impulse_Angular; this->restitutionCoeff = body.restitutionCoeff; this->frictionCoeff_Static = body.frictionCoeff_Static; this->frictionCoeff_Kinetic = body.frictionCoeff_Kinetic; this->mass = body.mass; this->momentOfInertiaTensor = body.momentOfInertiaTensor; + this->rotation = body.rotation; return *this; } -bool RigidBody::operator == ( const RigidBody &body ) -{ - if( this->box.center != body.box.center ) - { - return false; - } - - if( this->box.rotation != body.box.rotation ) - { - return false; - } - - if( this->box.boundingOffset != body.box.boundingOffset ) - { - return false; - } - - if( this->angularMomentum != body.angularMomentum ) - { - return false; - } - - if( this->linearMomentum != body.linearMomentum ) - { - return false; - } - - if( this->impulseTorqueSum != body.impulseTorqueSum ) - { - return false; - } - - if( this->impulseForceSum != body.impulseForceSum ) - { - return false; - } - - return true; -} - -bool RigidBody::operator != ( const RigidBody &body ) -{ - return !this->operator==( body ); -} - -void RigidBody::Update_LeapFrog( Float deltaTime ) +void RigidBody::Update_LeapFrog( Float updateFrameLength ) { // by Dan Andersson: Euler leap frog update when Runga Kutta is not needed - // Important! The member data is all world data except the Inertia tensor. Thus a new InertiaTensor needs to be created to be compatible with the rest of the world data. - Float4x4 wMomentOfInertiaTensor = TransformMatrix( this->box.rotation, this->momentOfInertiaTensor ); // RI - // updating the linear - // dG = F * dt // ds = dt * Formula::LinearVelocity( m, avg_G ) = dt * avg_G / m = (dt / m) * avg_G - Float3 linearImpulse = this->impulseForceSum; // HACK: * deltaTime; // aka deltaLinearMomentum - Float3 deltaPos = ( deltaTime / this->mass ) * ::Utility::Value::AverageWithDelta( this->linearMomentum, linearImpulse ); + this->centerPos += ( updateFrameLength / this->mass ) * ::Utility::Value::AverageWithDelta( this->momentum_Linear, this->impulse_Linear ); // updating the angular - // dH = T * dt + Float4x4 rotationMatrix; ::Oyster::Math3D::RotationMatrix( this->rotation, rotationMatrix ); + // Important! The member data is all world data except the Inertia tensor. Thus a new InertiaTensor needs to be created to be compatible with the rest of the world data. + Float4x4 wMomentOfInertiaTensor = TransformMatrix( rotationMatrix, this->momentOfInertiaTensor ); // RI + // dO = dt * Formula::AngularVelocity( (RI)^-1, avg_H ) = dt * (RI)^-1 * avg_H - Float3 angularImpulse = this->impulseTorqueSum; // HACK: * deltaTime; // aka deltaAngularMomentum - Float3 rotationAxis = Formula::AngularVelocity( wMomentOfInertiaTensor.GetInverse(), - ::Utility::Value::AverageWithDelta(this->angularMomentum, angularImpulse) ); - - Float deltaRadian = rotationAxis.Dot( rotationAxis ); - if( deltaRadian != 0.0f ) - { // branch depending if there is rotation - deltaRadian = ::std::sqrt( deltaRadian ); - rotationAxis /= deltaRadian; + this->axis += Formula::AngularVelocity( wMomentOfInertiaTensor.GetInverse(), ::Utility::Value::AverageWithDelta(this->momentum_Angular, this->impulse_Angular) ); + this->rotation = Rotation( this->axis ); - // using rotationAxis, deltaRadian and deltaPos to create a matrix to update the box - this->box.center.xyz += deltaPos; - TransformMatrix( RotationMatrix(deltaRadian, rotationAxis), this->box.rotation, this->box.rotation ); - } - else - { // no rotation, only use deltaPos to translate the RigidBody - this->box.center.xyz += deltaPos; - } - - // update momentums and clear impulseForceSum and impulseTorqueSum - this->linearMomentum += linearImpulse; - this->impulseForceSum = Float3::null; - this->angularMomentum += angularImpulse; - this->impulseTorqueSum = Float3::null; + // update momentums and clear impulse_Linear and impulse_Angular + this->momentum_Linear += this->impulse_Linear; + this->impulse_Linear = Float4::null; + this->momentum_Angular += this->impulse_Angular; + this->impulse_Angular = Float4::null; } -void RigidBody::ApplyImpulseForce( const Float3 &worldF ) +void RigidBody::ApplyImpulse( const Float4 &worldJ, const Float4 &atWorldPos ) { // by Dan Andersson - this->impulseForceSum += worldF; -} - -void RigidBody::ApplyImpulseForceAt( const Float3 &worldF, const Float3 &worldPos ) -{ // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center.xyz; - if( worldOffset != Float3::null ) + Float4 worldOffset = atWorldPos - this->centerPos; + if( worldOffset != Float4::null ) { - this->impulseForceSum += VectorProjection( worldF, worldOffset ); - this->impulseTorqueSum += Formula::ImpulseTorque( worldF, worldOffset ); + this->impulse_Linear += VectorProjection( worldJ, atWorldPos ); + this->impulse_Angular += Formula::ImpulseTorque( worldJ, atWorldPos ); } else { - this->impulseForceSum += worldF; + this->impulse_Linear += worldJ; } } -void RigidBody::ApplyLinearImpulseAcceleration( const Float3 &worldA ) -{ // by Dan Andersson - this->impulseForceSum += Formula::ImpulseForce( this->mass, worldA ); -} - -void RigidBody::ApplyLinearImpulseAccelerationAt( const Float3 &worldA, const Float3 &worldPos ) -{ // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center.xyz; - if( worldOffset != Float3::null ) - { - this->impulseForceSum += Formula::ImpulseForce( this->mass, VectorProjection(worldA, worldOffset) ); - - // tanAcc = angularAcc x localPosition - // angularAcc = localPosition x tanAcc = localPosition x linearAcc - // T = I * angularAcc - this->impulseTorqueSum += Formula::ImpulseTorque( this->momentOfInertiaTensor, Formula::AngularImpulseAcceleration(worldA, worldOffset) ); - } - else - { - this->impulseForceSum += Formula::ImpulseForce( this->mass, worldA ); - } -} - -void RigidBody::ApplyImpulseTorque( const Float3 &worldT ) -{ // by Dan Andersson - this->impulseTorqueSum += worldT; -} - -void RigidBody::ApplyAngularImpulseAcceleration( const Float3 &worldA ) -{ // by Dan Andersson - this->impulseTorqueSum += Formula::ImpulseTorque( this->momentOfInertiaTensor, worldA ); -} - -Float3 & RigidBody::AccessBoundingReach() -{ // by Dan Andersson - return this->box.boundingOffset.xyz; -} - -const Float3 & RigidBody::AccessBoundingReach() const -{ // by Dan Andersson - return this->box.boundingOffset.xyz; -} - -Float3 & RigidBody::AccessCenter() -{ // by Dan Andersson - return this->box.center.xyz; -} - -const Float3 & RigidBody::AccessCenter() const -{ // by Dan Andersson - return this->box.center.xyz; -} - const Float4x4 & RigidBody::GetMomentOfInertia() const { // by Dan Andersson return this->momentOfInertiaTensor; } -const Float & RigidBody::GetMass() const +Float RigidBody::GetMass() const { // by Dan Andersson return this->mass; } -const Float4x4 RigidBody::GetOrientation() const +const Quaternion & RigidBody::GetRotation() const { // by Dan Andersson - return OrientationMatrix( this->box.rotation, this->box.center.xyz ); + return this->rotation; +} + +Float4x4 RigidBody::GetRotationMatrix() const +{ // by Dan Andersson + return RotationMatrix( this->rotation ); +} + +Float4x4 RigidBody::GetOrientation() const +{ // by Dan Andersson + return ::Oyster::Math3D::OrientationMatrix( this->rotation, this->centerPos ); } Float4x4 RigidBody::GetView() const { // by Dan Andersson - return InverseOrientationMatrix( this->GetOrientation() ); + return ViewMatrix( this->rotation, this->centerPos ); } -const Float3 & RigidBody::GetBoundingReach() const +Float4 RigidBody::GetVelocity_Linear() const { // by Dan Andersson - return this->box.boundingOffset.xyz; + return Formula::LinearVelocity( this->mass, this->momentum_Linear ); } -Float3 RigidBody::GetSize() const +Float4 RigidBody::GetVelocity_Angular() const { // by Dan Andersson - return 2.0f * this->box.boundingOffset.xyz; + return Formula::AngularVelocity( this->momentOfInertiaTensor.GetInverse(), this->momentum_Angular ); } -const Float3 & RigidBody::GetCenter() const +Float4 RigidBody::GetLinearMomentum( const Float4 &atWorldPos ) const { // by Dan Andersson - return this->box.center.xyz; + return this->momentum_Linear + Formula::TangentialLinearMomentum( this->momentum_Angular, atWorldPos - this->centerPos ); } -const Float3 & RigidBody::GetImpulsTorque() const +void RigidBody::SetMomentOfInertia_KeepVelocity( const Float4x4 &localTensorI ) { // by Dan Andersson - return this->impulseTorqueSum; -} + if( localTensorI.GetDeterminant() != 0.0f ) + { // insanity check! MomentOfInertiaTensor must be invertable + Float4x4 rotationMatrix; RotationMatrix( this->rotation, rotationMatrix ); -const Float3 & RigidBody::GetAngularMomentum() const -{ // by Dan Andersson - return this->angularMomentum; -} - -Float3 RigidBody::GetAngularImpulseAcceleration() const -{ // by Dan Andersson - return Formula::AngularImpulseAcceleration( this->momentOfInertiaTensor.GetInverse(), this->impulseTorqueSum ); -} - -Float3 RigidBody::GetAngularVelocity() const -{ // by Dan Andersson - return Formula::AngularVelocity( this->momentOfInertiaTensor.GetInverse(), this->angularMomentum ); -} - -const Float3 & RigidBody::GetImpulseForce() const -{ // by Dan Andersson - return this->impulseForceSum; -} - -const Float3 & RigidBody::GetLinearMomentum() const -{ // by Dan Andersson - return this->linearMomentum; -} - -Float3 RigidBody::GetLinearImpulseAcceleration() const -{ // by Dan Andersson - return Formula::LinearImpulseAcceleration( this->mass, this->impulseForceSum ); -} - -Float3 RigidBody::GetLinearVelocity() const -{ // by Dan Andersson - return Formula::LinearVelocity( this->mass, this->linearMomentum ); -} - -void RigidBody::GetMomentumAt( const Float3 &worldPos, const Float3 &surfaceNormal, Float3 &normalMomentum, Float3 &tangentialMomentum ) const -{ // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center.xyz; - Float3 momentum = Formula::TangentialLinearMomentum( this->angularMomentum, worldOffset ); - momentum += this->linearMomentum; - - normalMomentum = NormalProjection( momentum, surfaceNormal ); - tangentialMomentum = momentum - normalMomentum; -} - -void RigidBody::SetMomentOfInertia_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ) -{ // by Dan Andersson - if( localI.GetDeterminant() != 0.0f ) // insanitycheck! momentOfInertiaTensor must be invertable - { - Float3 w = Formula::AngularVelocity( (this->box.rotation * this->momentOfInertiaTensor).GetInverse(), - this->angularMomentum ); - this->momentOfInertiaTensor = localI; - this->angularMomentum = Formula::AngularMomentum( this->box.rotation*localI, w ); + Float4 w = Formula::AngularVelocity( (rotationMatrix * this->momentOfInertiaTensor).GetInverse(), this->momentum_Angular ); + this->momentOfInertiaTensor = localTensorI; + this->momentum_Angular = Formula::AngularMomentum( rotationMatrix * localTensorI, w ); } } -void RigidBody::SetMomentOfInertia_KeepMomentum( const Float4x4 &localI ) +void RigidBody::SetMomentOfInertia_KeepMomentum( const Float4x4 &localTensorI ) { // by Dan Andersson - if( localI.GetDeterminant() != 0.0f ) // insanitycheck! momentOfInertiaTensor must be invertable - { - this->momentOfInertiaTensor = localI; + if( localTensorI.GetDeterminant() != 0.0f ) + { // insanity check! MomentOfInertiaTensor must be invertable + this->momentOfInertiaTensor = localTensorI; } } void RigidBody::SetMass_KeepVelocity( const Float &m ) { // by Dan Andersson - if( m != 0.0f ) // insanitycheck! mass must be invertable - { - Float3 v = Formula::LinearVelocity( this->mass, this->linearMomentum ); + if( m != 0.0f ) + { // insanity check! Mass must be invertable + Float4 v = Formula::LinearVelocity( this->mass, this->momentum_Linear ); this->mass = m; - this->linearMomentum = Formula::LinearMomentum( this->mass, v ); + this->momentum_Linear = Formula::LinearMomentum( this->mass, v ); } } void RigidBody::SetMass_KeepMomentum( const Float &m ) { // by Dan Anderson - if( m != 0.0f ) // insanitycheck! mass must be invertable - { + if( m != 0.0f ) + { // insanity check! Mass must be invertable this->mass = m; } } void RigidBody::SetOrientation( const Float4x4 &o ) { // by Dan Andersson - ExtractRotationMatrix( o, this->box.rotation ); - this->box.center = o.v[3].xyz; -} - -void RigidBody::SetSize( const Float3 &widthHeight ) -{ // by Dan Andersson - this->box.boundingOffset = 0.5f * widthHeight; -} - -void RigidBody::SetCenter( const Float3 &worldPos ) -{ // by Dan Andersson - this->box.center = worldPos; + this->axis = ExtractAngularAxis( o ); + this->rotation = Rotation( this->axis ); + this->centerPos = o.v[3].xyz; } void RigidBody::SetRotation( const Float4x4 &r ) { // by Dan Andersson - this->box.rotation = r; + this->axis = ExtractAngularAxis( r ); + this->rotation = Rotation( this->axis ); } -void RigidBody::SetImpulseTorque( const Float3 &worldT ) +void RigidBody::SetMomentum_Linear( const Float4 &worldG, const Float4 &atWorldPos ) { // by Dan Andersson - this->impulseTorqueSum = worldT; + Float4 worldOffset = atWorldPos - this->centerPos; + this->momentum_Linear = VectorProjection( worldG, worldOffset ); + this->momentum_Angular = Formula::AngularMomentum( worldG, worldOffset ); } -void RigidBody::SetAngularMomentum( const Float3 &worldH ) +void RigidBody::SetVelocity_Linear( const Float4 &worldV ) { // by Dan Andersson - this->angularMomentum = worldH; + this->momentum_Linear = Formula::LinearMomentum( this->mass, worldV ); } -void RigidBody::SetAngularImpulseAcceleration( const Float3 &worldA ) +void RigidBody::SetVelocity_Linear( const Float4 &worldV, const Float4 &atWorldPos ) { // by Dan Andersson - this->impulseTorqueSum = Formula::ImpulseTorque( this->momentOfInertiaTensor, worldA ); + Float4 worldOffset = atWorldPos - this->centerPos; + this->momentum_Linear = Formula::LinearMomentum( this->mass, VectorProjection(worldV, worldOffset) ); + this->momentum_Angular = Formula::AngularMomentum( RotationMatrix(this->rotation) * this->momentOfInertiaTensor, Formula::AngularVelocity(worldV, worldOffset) ); } -void RigidBody::SetAngularVelocity( const Float3 &worldW ) +void RigidBody::SetVelocity_Angular( const Float4 &worldW ) { // by Dan Andersson - this->angularMomentum = Formula::AngularMomentum( this->momentOfInertiaTensor, worldW ); + this->momentum_Angular = Formula::AngularMomentum( this->momentOfInertiaTensor, worldW ); } -void RigidBody::SetImpulseForce( const Float3 &worldF ) +void RigidBody::SetImpulse_Linear( const Float4 &worldJ, const Float4 &atWorldPos ) { // by Dan Andersson - this->impulseForceSum = worldF; -} - -void RigidBody::SetLinearMomentum( const Float3 &worldG ) -{ // by Dan Andersson - this->linearMomentum = worldG; -} - -void RigidBody::SetLinearImpulseAcceleration( const Float3 &worldA ) -{ // by Dan Andersson - this->impulseForceSum = Formula::ImpulseForce( this->mass, worldA ); -} - -void RigidBody::SetLinearVelocity( const Float3 &worldV ) -{ // by Dan Andersson - this->linearMomentum = Formula::LinearMomentum( this->mass, worldV ); -} - -void RigidBody::SetImpulseForceAt( const Float3 &worldForce, const Float3 &worldPos ) -{ // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center.xyz; - this->impulseForceSum = VectorProjection( worldForce, worldOffset ); - this->impulseTorqueSum = Formula::ImpulseTorque( worldForce, worldOffset ); -} - -void RigidBody::SetLinearMomentumAt( const Float3 &worldG, const Float3 &worldPos ) -{ // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center.xyz; - this->linearMomentum = VectorProjection( worldG, worldOffset ); - this->angularMomentum = Formula::AngularMomentum( worldG, worldOffset ); -} - -void RigidBody::SetImpulseAccelerationAt( const Float3 &worldA, const Float3 &worldPos ) -{ // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center.xyz; - this->impulseForceSum = Formula::ImpulseForce( this->mass, VectorProjection(worldA, worldOffset) ); - this->impulseTorqueSum = Formula::ImpulseTorque( this->box.rotation * this->momentOfInertiaTensor, - Formula::AngularImpulseAcceleration(worldA, worldOffset) ); -} - -void RigidBody::SetLinearVelocityAt( const Float3 &worldV, const Float3 &worldPos ) -{ // by Dan Andersson - Float3 worldOffset = worldPos - this->box.center.xyz; - this->linearMomentum = Formula::LinearMomentum( this->mass, VectorProjection(worldV, worldOffset) ); - this->angularMomentum = Formula::AngularMomentum( this->box.rotation * this->momentOfInertiaTensor, - Formula::AngularVelocity(worldV, worldOffset) ); + Float4 worldOffset = atWorldPos - this->centerPos; + this->impulse_Linear = VectorProjection( worldJ, worldOffset ); + this->impulse_Angular = Formula::ImpulseTorque( worldJ, worldOffset ); } \ No newline at end of file diff --git a/Code/OysterPhysics3D/RigidBody.h b/Code/OysterPhysics3D/RigidBody.h index fae7b842..c140982c 100644 --- a/Code/OysterPhysics3D/RigidBody.h +++ b/Code/OysterPhysics3D/RigidBody.h @@ -12,110 +12,74 @@ namespace Oyster { namespace Physics3D { struct RigidBody - { /// A struct of a simple rigid body. + { //! A struct of a simple rigid body. public: - ::Oyster::Collision3D::Box box; /** Contains data representing physical presence. (worldValue) */ - ::Oyster::Math::Float3 angularMomentum, /** The angular momentum H (Nm*s) around an parallell axis. (worldValue) */ - linearMomentum, /** The linear momentum G (kg*m/s). (worldValue) */ - impulseTorqueSum, /** The impulse torque T (Nm) that will be consumed each update. (worldValue) */ - impulseForceSum; /** The impulse force F (N) that will be consumed each update. (worldValue) */ - ::Oyster::Math::Float restitutionCoeff, frictionCoeff_Static, frictionCoeff_Kinetic; + ::Oyster::Math::Float4 centerPos, //!< Location of the body's center in the world. + axis, //!< Euler rotationAxis of the body. + boundingReach, //!< + momentum_Linear, //!< The linear momentum G (kg*m/s). + momentum_Angular, //!< The angular momentum H (Nm*s) around an parallell axis. + impulse_Linear, //!< The linear impulse sum Jl (kg*m/s) that will be consumed each update. + impulse_Angular; //!< The angular impulse sum Ja (kg*m^2/s) that will be consumed each update. + ::Oyster::Math::Float restitutionCoeff, //!< + frictionCoeff_Static, //!< + frictionCoeff_Kinetic; //!< - RigidBody( const ::Oyster::Collision3D::Box &box = ::Oyster::Collision3D::Box(), - ::Oyster::Math::Float mass = 12.0f, - const ::Oyster::Math::Float4x4 &inertiaTensor = ::Oyster::Math::Float4x4::identity ); + RigidBody(); RigidBody & operator = ( const RigidBody &body ); - bool operator == ( const RigidBody &body ); - bool operator != ( const RigidBody &body ); + void Update_LeapFrog( ::Oyster::Math::Float updateFrameLength ); - void Update_LeapFrog( ::Oyster::Math::Float deltaTime ); - void ApplyImpulseForce( const ::Oyster::Math::Float3 &worldF ); - void ApplyImpulseForceAt( const ::Oyster::Math::Float3 &worldF, const ::Oyster::Math::Float3 &worldPos ); - void ApplyLinearImpulseAcceleration( const ::Oyster::Math::Float3 &worldA ); - void ApplyLinearImpulseAccelerationAt( const ::Oyster::Math::Float3 &worldA, const ::Oyster::Math::Float3 &worldPos ); - void ApplyImpulseTorque( const ::Oyster::Math::Float3 &worldT ); - void ApplyAngularImpulseAcceleration( const ::Oyster::Math::Float3 &worldA ); - - // ACCESS METHODS ///////////////////////////// - - ::Oyster::Math::Float3 & AccessBoundingReach(); - const ::Oyster::Math::Float3 & AccessBoundingReach() const; - ::Oyster::Math::Float3 & AccessCenter(); - const ::Oyster::Math::Float3 & AccessCenter() const; + void ApplyImpulse( const ::Oyster::Math::Float4 &worldJ, const ::Oyster::Math::Float4 &atWorldPos ); + void ApplyImpulse_Linear( const ::Oyster::Math::Float4 &worldJ ); + void ApplyImpulse_Angular( const ::Oyster::Math::Float4 &worldJ ); + void ApplyForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength ); + void ApplyForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength, const ::Oyster::Math::Float4 &atWorldPos ); // GET METHODS //////////////////////////////// - const ::Oyster::Math::Float4x4 & GetMomentOfInertia() const; - const ::Oyster::Math::Float & GetMass() const; - - const ::Oyster::Math::Float4x4 GetOrientation() const; - ::Oyster::Math::Float4x4 GetView() const; - const ::Oyster::Math::Float4x4 & GetToWorldMatrix() const; - ::Oyster::Math::Float4x4 GetToLocalMatrix() const; - - const ::Oyster::Math::Float3 & GetBoundingReach() const; - ::Oyster::Math::Float3 GetSize() const; - - const ::Oyster::Math::Float3 & GetCenter() const; - - const ::Oyster::Math::Float3 & GetImpulsTorque() const; - const ::Oyster::Math::Float3 & GetAngularMomentum() const; - ::Oyster::Math::Float3 GetAngularImpulseAcceleration() const; - ::Oyster::Math::Float3 GetAngularVelocity() const; - - const ::Oyster::Math::Float3 & GetImpulseForce() const; - const ::Oyster::Math::Float3 & GetLinearMomentum() const; - ::Oyster::Math::Float3 GetLinearImpulseAcceleration() const; - ::Oyster::Math::Float3 GetLinearVelocity() const; - - void GetMomentumAt( const ::Oyster::Math::Float3 &worldPos, const ::Oyster::Math::Float3 &surfaceNormal, ::Oyster::Math::Float3 &normalMomentum, ::Oyster::Math::Float3 &tangentialMomentum ) const; + const ::Oyster::Math::Float4x4 & GetMomentOfInertia() const; + ::Oyster::Math::Float GetMass() const; + const ::Oyster::Math::Quaternion & GetRotation() const; + ::Oyster::Math::Float4x4 GetRotationMatrix() const; + ::Oyster::Math::Float4x4 GetOrientation() const; + ::Oyster::Math::Float4x4 GetView() const; + ::Oyster::Math::Float4x4 GetToWorldMatrix() const; + ::Oyster::Math::Float4x4 GetToLocalMatrix() const; + ::Oyster::Math::Float4 GetSize() const; + ::Oyster::Math::Float4 GetVelocity_Linear() const; + ::Oyster::Math::Float4 GetVelocity_Angular() const; + ::Oyster::Math::Float4 GetLinearMomentum( const ::Oyster::Math::Float4 &atWorldPos ) const; // SET METHODS //////////////////////////////// - void SetMomentOfInertia_KeepVelocity( const ::Oyster::Math::Float4x4 &localI ); - void SetMomentOfInertia_KeepMomentum( const ::Oyster::Math::Float4x4 &localI ); + void SetMomentOfInertia_KeepVelocity( const ::Oyster::Math::Float4x4 &localTensorI ); + void SetMomentOfInertia_KeepMomentum( const ::Oyster::Math::Float4x4 &localTensorI ); void SetMass_KeepVelocity( const ::Oyster::Math::Float &m ); void SetMass_KeepMomentum( const ::Oyster::Math::Float &m ); void SetOrientation( const ::Oyster::Math::Float4x4 &o ); - void SetSize( const ::Oyster::Math::Float3 &widthHeight ); - void SetCenter( const ::Oyster::Math::Float3 &worldPos ); void SetRotation( const ::Oyster::Math::Float4x4 &r ); - - void SetImpulseTorque( const ::Oyster::Math::Float3 &worldT ); - void SetAngularMomentum( const ::Oyster::Math::Float3 &worldH ); - void SetAngularImpulseAcceleration( const ::Oyster::Math::Float3 &worldA ); - void SetAngularVelocity( const ::Oyster::Math::Float3 &worldW ); - - void SetImpulseForce( const ::Oyster::Math::Float3 &worldF ); - void SetLinearMomentum( const ::Oyster::Math::Float3 &worldG ); - void SetLinearImpulseAcceleration( const ::Oyster::Math::Float3 &worldA ); - void SetLinearVelocity( const ::Oyster::Math::Float3 &worldV ); + void SetSize( const ::Oyster::Math::Float4 &widthHeight ); - void SetImpulseForceAt( const ::Oyster::Math::Float3 &worldF, const ::Oyster::Math::Float3 &worldPos ); - void SetLinearMomentumAt( const ::Oyster::Math::Float3 &worldG, const ::Oyster::Math::Float3 &worldPos ); - void SetImpulseAccelerationAt( const ::Oyster::Math::Float3 &worldA, const ::Oyster::Math::Float3 &worldPos ); - void SetLinearVelocityAt( const ::Oyster::Math::Float3 &worldV, const ::Oyster::Math::Float3 &worldPos ); + void SetMomentum_Linear( const ::Oyster::Math::Float4 &worldG, const ::Oyster::Math::Float4 &atWorldPos ); + + void SetVelocity_Linear( const ::Oyster::Math::Float4 &worldV ); + void SetVelocity_Linear( const ::Oyster::Math::Float4 &worldV, const ::Oyster::Math::Float4 &atWorldPos ); + void SetVelocity_Angular( const ::Oyster::Math::Float4 &worldW ); + + void SetImpulse_Linear( const ::Oyster::Math::Float4 &worldJ, const ::Oyster::Math::Float4 &atWorldPos ); + void SetForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength ); + void SetForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength, const ::Oyster::Math::Float4 &atWorldPos ); private: - ::Oyster::Math::Float mass; /** m (kg) */ - ::Oyster::Math::Float4x4 momentOfInertiaTensor; /** I (Nm*s) Tensor matrix ( only need to be 3x3 matrix, but is 4x4 for future hardware acceleration ) (localValue) */ + ::Oyster::Math::Float mass; //!< m (kg) + ::Oyster::Math::Float4x4 momentOfInertiaTensor; //!< I (Nm*s) Tensor matrix ( only need to be 3x3 matrix, but is 4x4 for future hardware acceleration ) (localValue) + ::Oyster::Math::Quaternion rotation; //!< RotationAxis of the body. }; - - // INLINE IMPLEMENTATIONS /////////////////////////////////////// - - inline const ::Oyster::Math::Float4x4 & RigidBody::GetToWorldMatrix() const - { - return this->GetOrientation(); - } - - inline ::Oyster::Math::Float4x4 RigidBody::GetToLocalMatrix() const - { - return this->GetView(); - } - } } +#include "RigidBody_Inline.h" + #endif diff --git a/Code/OysterPhysics3D/RigidBody_Inline.h b/Code/OysterPhysics3D/RigidBody_Inline.h new file mode 100644 index 00000000..980442dd --- /dev/null +++ b/Code/OysterPhysics3D/RigidBody_Inline.h @@ -0,0 +1,65 @@ +///////////////////////////////////////////////////////////////////// +// INLINE IMPLEMENTATIONS +// Created by Dan Andersson 2013 +///////////////////////////////////////////////////////////////////// + +#ifndef OYSTER_PHYSICS_3D_RIGIDBODY_INLINE_H +#define OYSTER_PHYSICS_3D_RIGIDBODY_INLINE_H + +#include "RigidBody.h" + +namespace Oyster { namespace Physics3D +{ + inline void RigidBody::ApplyImpulse_Linear( const ::Oyster::Math::Float4 &worldJ ) + { + this->impulse_Linear += worldJ; + } + + inline void RigidBody::ApplyImpulse_Angular( const ::Oyster::Math::Float4 &worldJ ) + { + this->impulse_Angular += worldJ; + } + + inline void RigidBody::ApplyForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength ) + { + this->impulse_Linear += worldF * updateFrameLength; + } + + inline void RigidBody::ApplyForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength, const ::Oyster::Math::Float4 &atWorldPos ) + { + this->ApplyImpulse( worldF * updateFrameLength, atWorldPos ); + } + + inline ::Oyster::Math::Float4x4 RigidBody::GetToWorldMatrix() const + { + return this->GetOrientation(); + } + + inline ::Oyster::Math::Float4x4 RigidBody::GetToLocalMatrix() const + { + return this->GetView(); + } + + inline ::Oyster::Math::Float4 RigidBody::GetSize() const + { + return 2.0f * this->boundingReach; + } + + inline void RigidBody::SetSize( const ::Oyster::Math::Float4 &widthHeight ) + { + this->boundingReach = ::Utility::Value::Abs( 0.5f * widthHeight ); + } + + inline void RigidBody::SetForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength ) + { + this->impulse_Linear = worldF * updateFrameLength; + } + + inline void RigidBody::SetForce( const ::Oyster::Math::Float4 &worldF, ::Oyster::Math::Float updateFrameLength, const ::Oyster::Math::Float4 &atWorldPos ) + { + this->SetImpulse_Linear( worldF * updateFrameLength, atWorldPos ); + } + +} } + +#endif \ No newline at end of file From ec9f2379c7de16aa0523bfd2f9776adc505d2973 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Thu, 19 Dec 2013 22:06:48 +0100 Subject: [PATCH 32/42] Minor bug fixes in math librrary --- Code/OysterMath/LinearMath.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Code/OysterMath/LinearMath.h b/Code/OysterMath/LinearMath.h index 0ebf94e7..b5eab471 100644 --- a/Code/OysterMath/LinearMath.h +++ b/Code/OysterMath/LinearMath.h @@ -269,7 +269,7 @@ namespace LinearAlgebra3D template inline ::LinearAlgebra::Vector4 ExtractAngularAxis( const ::LinearAlgebra::Matrix4x4 &orientationMatrix ) { - return ::std::asin( ::LinearAlgebra::Vector4(orientationMatrix.v[1].z, orientationMatrix.v[2].x, orientationMatrix.v[0].y, 1) ); + return ::std::asin( ::LinearAlgebra::Vector4(orientationMatrix.v[1].z, orientationMatrix.v[2].x, orientationMatrix.v[0].y, 0) ); } template @@ -332,7 +332,7 @@ namespace LinearAlgebra3D } template - inline ::LinearAlgebra::Matrix4x4 & RotationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + inline ::LinearAlgebra::Matrix4x4 & RotationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) { ::LinearAlgebra::Quaternion conjugate = rotationQuaternion.GetConjugate(); @@ -344,7 +344,7 @@ namespace LinearAlgebra3D } template - inline ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + inline ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) { ::LinearAlgebra::Quaternion conjugate = rotationQuaternion.GetConjugate(); @@ -356,7 +356,7 @@ namespace LinearAlgebra3D } template - inline ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector4 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + inline ::LinearAlgebra::Matrix4x4 & OrientationMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector4 &translation, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) { ::LinearAlgebra::Quaternion conjugate = rotationQuaternion.GetConjugate(); @@ -368,14 +368,14 @@ namespace LinearAlgebra3D } template - inline ::LinearAlgebra::Matrix4x4 & ViewMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + inline ::LinearAlgebra::Matrix4x4 & ViewMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector3 &translation, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) { OrientationMatrix( rotationQuaternion, translation, targetMem ); return InverseOrientationMatrix( targetMem, targetMem ); } template - inline ::LinearAlgebra::Matrix4x4 & ViewMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector4 &translation, ::LinearAlgebra::Matrix4x4 targetMem = ::LinearAlgebra::Matrix4x4() ) + inline ::LinearAlgebra::Matrix4x4 & ViewMatrix( const ::LinearAlgebra::Quaternion &rotationQuaternion, const ::LinearAlgebra::Vector4 &translation, ::LinearAlgebra::Matrix4x4 &targetMem = ::LinearAlgebra::Matrix4x4() ) { OrientationMatrix( rotationQuaternion, translation, targetMem ); return InverseOrientationMatrix( targetMem, targetMem ); From 9aa584acc7b31211d1e6f43e0f5c004c3183251a Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 10:55:04 +0100 Subject: [PATCH 33/42] RigidBody::Predict_Leapfrog(..) added needed for collision response rewinding/forwarding --- Code/OysterPhysics3D/RigidBody.cpp | 19 +++++++++++++++++-- Code/OysterPhysics3D/RigidBody.h | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Code/OysterPhysics3D/RigidBody.cpp b/Code/OysterPhysics3D/RigidBody.cpp index e774752b..e33308e2 100644 --- a/Code/OysterPhysics3D/RigidBody.cpp +++ b/Code/OysterPhysics3D/RigidBody.cpp @@ -8,6 +8,7 @@ using namespace ::Oyster::Collision3D; using namespace ::Oyster::Physics3D; using namespace ::Oyster::Math3D; +using namespace ::Utility::Value; RigidBody::RigidBody( ) { // by Dan Andersson @@ -49,7 +50,7 @@ void RigidBody::Update_LeapFrog( Float updateFrameLength ) // updating the linear // ds = dt * Formula::LinearVelocity( m, avg_G ) = dt * avg_G / m = (dt / m) * avg_G - this->centerPos += ( updateFrameLength / this->mass ) * ::Utility::Value::AverageWithDelta( this->momentum_Linear, this->impulse_Linear ); + this->centerPos += ( updateFrameLength / this->mass ) * AverageWithDelta( this->momentum_Linear, this->impulse_Linear ); // updating the angular Float4x4 rotationMatrix; ::Oyster::Math3D::RotationMatrix( this->rotation, rotationMatrix ); @@ -57,7 +58,7 @@ void RigidBody::Update_LeapFrog( Float updateFrameLength ) Float4x4 wMomentOfInertiaTensor = TransformMatrix( rotationMatrix, this->momentOfInertiaTensor ); // RI // dO = dt * Formula::AngularVelocity( (RI)^-1, avg_H ) = dt * (RI)^-1 * avg_H - this->axis += Formula::AngularVelocity( wMomentOfInertiaTensor.GetInverse(), ::Utility::Value::AverageWithDelta(this->momentum_Angular, this->impulse_Angular) ); + this->axis += Formula::AngularVelocity( wMomentOfInertiaTensor.GetInverse(), AverageWithDelta(this->momentum_Angular, this->impulse_Angular) ); this->rotation = Rotation( this->axis ); // update momentums and clear impulse_Linear and impulse_Angular @@ -67,6 +68,20 @@ void RigidBody::Update_LeapFrog( Float updateFrameLength ) this->impulse_Angular = Float4::null; } +void RigidBody::Predict_LeapFrog( Float4 &outDeltaPos, Float4 &outDeltaAxis, const Float4 &actingLinearImpulse, const Float4 &actingAngularImpulse, Float deltaTime ) +{ + // updating the linear + // ds = dt * Formula::LinearVelocity( m, avg_G ) = dt * avg_G / m = (dt / m) * avg_G + outDeltaPos = ( deltaTime / this->mass ) * AverageWithDelta( this->momentum_Linear, actingLinearImpulse ); + + // updating the angular + Float4x4 rotationMatrix; ::Oyster::Math3D::RotationMatrix( this->rotation, rotationMatrix ); + Float4x4 wMomentOfInertiaTensor = TransformMatrix( rotationMatrix, this->momentOfInertiaTensor ); // RI + + // dO = dt * Formula::AngularVelocity( (RI)^-1, avg_H ) = dt * (RI)^-1 * avg_H + outDeltaAxis = Formula::AngularVelocity( wMomentOfInertiaTensor.GetInverse(), AverageWithDelta(this->momentum_Angular, actingAngularImpulse) ); +} + void RigidBody::ApplyImpulse( const Float4 &worldJ, const Float4 &atWorldPos ) { // by Dan Andersson Float4 worldOffset = atWorldPos - this->centerPos; diff --git a/Code/OysterPhysics3D/RigidBody.h b/Code/OysterPhysics3D/RigidBody.h index c140982c..1b32c57b 100644 --- a/Code/OysterPhysics3D/RigidBody.h +++ b/Code/OysterPhysics3D/RigidBody.h @@ -30,6 +30,7 @@ namespace Oyster { namespace Physics3D RigidBody & operator = ( const RigidBody &body ); void Update_LeapFrog( ::Oyster::Math::Float updateFrameLength ); + void Predict_LeapFrog( ::Oyster::Math::Float4 &outDeltaPos, ::Oyster::Math::Float4 &outDeltaAxis, const ::Oyster::Math::Float4 &actingLinearImpulse, const ::Oyster::Math::Float4 &actingAngularImpulse, ::Oyster::Math::Float deltaTime ); void ApplyImpulse( const ::Oyster::Math::Float4 &worldJ, const ::Oyster::Math::Float4 &atWorldPos ); void ApplyImpulse_Linear( const ::Oyster::Math::Float4 &worldJ ); From c4bbc09a97cf8453b00d49e6861db0599ad57171 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 11:13:44 +0100 Subject: [PATCH 34/42] CustomBodyState::ApplyForwarding(..) added --- Code/GamePhysics/PhysicsStructs-Impl.h | 28 +++++++++++++++++++++++++- Code/GamePhysics/PhysicsStructs.h | 7 ++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/Code/GamePhysics/PhysicsStructs-Impl.h b/Code/GamePhysics/PhysicsStructs-Impl.h index e48ede8d..e7704460 100644 --- a/Code/GamePhysics/PhysicsStructs-Impl.h +++ b/Code/GamePhysics/PhysicsStructs-Impl.h @@ -41,7 +41,8 @@ namespace Oyster { namespace Physics this->linearMomentum = linearMomentum; this->angularMomentum = angularMomentum; this->linearImpulse = this->angularImpulse = ::Oyster::Math::Float4::null; - this->isSpatiallyAltered = this->isDisturbed = false; + this->deltaPos = this->deltaAxis = ::Oyster::Math::Float4::null; + this->isSpatiallyAltered = this->isDisturbed = this->isForwarded = false; } inline CustomBodyState & CustomBodyState::operator = ( const CustomBodyState &state ) @@ -58,8 +59,11 @@ namespace Oyster { namespace Physics this->angularMomentum = state.angularMomentum; this->linearImpulse = state.linearImpulse; this->angularImpulse = state.angularImpulse; + this->deltaPos = state.deltaPos; + this->deltaAxis = state.deltaAxis; this->isSpatiallyAltered = state.isSpatiallyAltered; this->isDisturbed = state.isDisturbed; + this->isForwarded = state.isForwarded; return *this; } @@ -149,6 +153,16 @@ namespace Oyster { namespace Physics return this->angularImpulse; } + inline const ::Oyster::Math::Float4 & CustomBodyState::GetForward_DeltaPos() const + { + return this->deltaPos; + } + + inline const ::Oyster::Math::Float4 & CustomBodyState::GetForward_DeltaAxis() const + { + return this->deltaAxis; + } + inline void CustomBodyState::SetMass_KeepMomentum( ::Oyster::Math::Float m ) { this->mass = m; @@ -287,6 +301,13 @@ namespace Oyster { namespace Physics this->isDisturbed = true; } + inline void CustomBodyState::ApplyForwarding( const ::Oyster::Math::Float4 &deltaPos, const ::Oyster::Math::Float4 &deltaAxis ) + { + this->deltaPos += deltaPos; + this->deltaAxis += deltaAxis; + this->isDisturbed = this->isForwarded = true; + } + inline bool CustomBodyState::IsSpatiallyAltered() const { return this->isSpatiallyAltered; @@ -296,6 +317,11 @@ namespace Oyster { namespace Physics { return this->isDisturbed; } + + inline bool CustomBodyState::IsForwarded() const + { + return this->isForwarded; + } } } } diff --git a/Code/GamePhysics/PhysicsStructs.h b/Code/GamePhysics/PhysicsStructs.h index 96ec1f14..3c17ae6d 100644 --- a/Code/GamePhysics/PhysicsStructs.h +++ b/Code/GamePhysics/PhysicsStructs.h @@ -66,6 +66,8 @@ namespace Oyster { namespace Physics const ::Oyster::Math::Float4 & GetAngularMomentum() const; const ::Oyster::Math::Float4 & GetLinearImpulse() const; const ::Oyster::Math::Float4 & GetAngularImpulse() const; + const ::Oyster::Math::Float4 & GetForward_DeltaPos() const; + const ::Oyster::Math::Float4 & GetForward_DeltaAxis() const; void SetMass_KeepMomentum( ::Oyster::Math::Float m ); void SetMass_KeepVelocity( ::Oyster::Math::Float m ); @@ -90,9 +92,11 @@ namespace Oyster { namespace Physics void ApplyLinearImpulse( const ::Oyster::Math::Float4 &j ); void ApplyAngularImpulse( const ::Oyster::Math::Float4 &j ); void ApplyImpulse( const ::Oyster::Math::Float4 &j, const ::Oyster::Math::Float4 &at, const ::Oyster::Math::Float4 &normal ); + void ApplyForwarding( const ::Oyster::Math::Float4 &deltaPos, const ::Oyster::Math::Float4 &deltaAxis ); bool IsSpatiallyAltered() const; bool IsDisturbed() const; + bool IsForwarded() const; private: ::Oyster::Math::Float mass, restitutionCoeff, staticFrictionCoeff, kineticFrictionCoeff; @@ -100,8 +104,9 @@ namespace Oyster { namespace Physics ::Oyster::Math::Float4 reach, centerPos, angularAxis; ::Oyster::Math::Float4 linearMomentum, angularMomentum; ::Oyster::Math::Float4 linearImpulse, angularImpulse; + ::Oyster::Math::Float4 deltaPos, deltaAxis; // Forwarding data sum - bool isSpatiallyAltered, isDisturbed; + bool isSpatiallyAltered, isDisturbed, isForwarded; }; } } } From 604a17056c1da6d5c84fe1829fb7cb62f9c93a35 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 11:15:43 +0100 Subject: [PATCH 35/42] Partial SimpleRigid update --- .../Implementation/SimpleRigidBody.cpp | 17 +++++++++++++++-- .../Implementation/SimpleRigidBody.h | 3 ++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 90df71a1..2d81d233 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -47,18 +47,19 @@ SimpleRigidBody::SimpleRigidBody() this->rigid.SetMass_KeepMomentum( 16.0f ); this->gravityNormal = Float3::null; this->collisionAction = Default::EventAction_Collision; - this->ignoreGravity = false; + this->ignoreGravity = this->isForwarded = false; this->scene = nullptr; } SimpleRigidBody::SimpleRigidBody( const API::SimpleBodyDescription &desc ) { - this->rigid = RigidBody(); this->rigid.SetRotation( desc.rotation ); this->rigid.centerPos = desc.centerPosition; this->rigid.SetSize( desc.size ); this->rigid.SetMass_KeepMomentum( desc.mass ); this->rigid.SetMomentOfInertia_KeepMomentum( desc.inertiaTensor ); + this->deltaPos = Float4::null; + this->deltaAxis = Float4::null; this->gravityNormal = Float3::null; @@ -113,6 +114,13 @@ void SimpleRigidBody::SetState( const SimpleRigidBody::State &state ) this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); this->rigid.frictionCoeff_Kinetic = state.GetFrictionCoeff_Kinetic(); + if( state.IsForwarded() ) + { + this->deltaPos += state.GetForward_DeltaPos(); + this->deltaAxis += state.GetForward_DeltaAxis(); + this->isForwarded; + } + if( this->scene ) { if( state.IsSpatiallyAltered() ) @@ -243,6 +251,11 @@ Float3 SimpleRigidBody::GetRigidLinearVelocity() const UpdateState SimpleRigidBody::Update( Float timeStepLength ) { + if( this->isForwarded ) + { + // this->rigid. + } + this->rigid.Update_LeapFrog( timeStepLength ); // compare previous and new state and return result diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.h b/Code/GamePhysics/Implementation/SimpleRigidBody.h index 3929669b..f407ad1d 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.h +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.h @@ -53,10 +53,11 @@ namespace Oyster { namespace Physics private: ::Oyster::Physics3D::RigidBody rigid; + ::Oyster::Math::Float4 deltaPos, deltaAxis; ::Oyster::Math::Float3 gravityNormal; EventAction_Collision collisionAction; Octree *scene; - bool ignoreGravity; + bool ignoreGravity, isForwarded; }; } } From 9a67e7ef3d27675fc12d5dd0a784bf8fec2a174f Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 11:19:07 +0100 Subject: [PATCH 36/42] RigidBody::Move(..) added --- Code/OysterPhysics3D/RigidBody.cpp | 7 +++++++ Code/OysterPhysics3D/RigidBody.h | 1 + 2 files changed, 8 insertions(+) diff --git a/Code/OysterPhysics3D/RigidBody.cpp b/Code/OysterPhysics3D/RigidBody.cpp index e33308e2..3ae48511 100644 --- a/Code/OysterPhysics3D/RigidBody.cpp +++ b/Code/OysterPhysics3D/RigidBody.cpp @@ -82,6 +82,13 @@ void RigidBody::Predict_LeapFrog( Float4 &outDeltaPos, Float4 &outDeltaAxis, con outDeltaAxis = Formula::AngularVelocity( wMomentOfInertiaTensor.GetInverse(), AverageWithDelta(this->momentum_Angular, actingAngularImpulse) ); } +void RigidBody::Move( const Float4 &deltaPos, const Float4 &deltaAxis ) +{ + this->centerPos += deltaPos; + this->axis += deltaAxis; + this->rotation = Rotation( this->axis ); +} + void RigidBody::ApplyImpulse( const Float4 &worldJ, const Float4 &atWorldPos ) { // by Dan Andersson Float4 worldOffset = atWorldPos - this->centerPos; diff --git a/Code/OysterPhysics3D/RigidBody.h b/Code/OysterPhysics3D/RigidBody.h index 1b32c57b..a2f44480 100644 --- a/Code/OysterPhysics3D/RigidBody.h +++ b/Code/OysterPhysics3D/RigidBody.h @@ -32,6 +32,7 @@ namespace Oyster { namespace Physics3D void Update_LeapFrog( ::Oyster::Math::Float updateFrameLength ); void Predict_LeapFrog( ::Oyster::Math::Float4 &outDeltaPos, ::Oyster::Math::Float4 &outDeltaAxis, const ::Oyster::Math::Float4 &actingLinearImpulse, const ::Oyster::Math::Float4 &actingAngularImpulse, ::Oyster::Math::Float deltaTime ); + void Move( const ::Oyster::Math::Float4 &deltaPos, const ::Oyster::Math::Float4 &deltaAxis ); void ApplyImpulse( const ::Oyster::Math::Float4 &worldJ, const ::Oyster::Math::Float4 &atWorldPos ); void ApplyImpulse_Linear( const ::Oyster::Math::Float4 &worldJ ); void ApplyImpulse_Angular( const ::Oyster::Math::Float4 &worldJ ); From d163b7d8cf72b25eb4e1065b15485634a5ae281a Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 11:21:18 +0100 Subject: [PATCH 37/42] Partial SimpleRigidBody update end --- Code/GamePhysics/Implementation/SimpleRigidBody.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 2d81d233..88899259 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -253,12 +253,15 @@ UpdateState SimpleRigidBody::Update( Float timeStepLength ) { if( this->isForwarded ) { - // this->rigid. + this->rigid.Move( this->deltaPos, this->deltaAxis ); + this->deltaPos = Float4::null; + this->deltaAxis = Float4::null; + this->isForwarded = false; } this->rigid.Update_LeapFrog( timeStepLength ); - // compare previous and new state and return result + //! @todo TODO: compare previous and new state and return result //return this->current == this->previous ? UpdateState_resting : UpdateState_altered; return UpdateState_altered; } From ec0f0e0d147904ff025120ddc54f8ab78375d480 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 11:30:11 +0100 Subject: [PATCH 38/42] SimpleRigidBody::Predict(..) added --- Code/GamePhysics/Implementation/SimpleRigidBody.cpp | 5 +++++ Code/GamePhysics/Implementation/SimpleRigidBody.h | 1 + Code/GamePhysics/PhysicsAPI.h | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 88899259..29f64144 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -266,6 +266,11 @@ UpdateState SimpleRigidBody::Update( Float timeStepLength ) return UpdateState_altered; } +void SimpleRigidBody::Predict( Float4 &outDeltaPos, Float4 &outDeltaAxis, const Float4 &actingLinearImpulse, const Float4 &actingAngularImpulse, Float deltaTime ) +{ + this->rigid.Predict_LeapFrog( outDeltaPos, outDeltaAxis, actingLinearImpulse, actingAngularImpulse, deltaTime ); +} + void SimpleRigidBody::SetScene( void *scene ) { this->scene = (Octree*)scene; diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.h b/Code/GamePhysics/Implementation/SimpleRigidBody.h index f407ad1d..c7d915ef 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.h +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.h @@ -36,6 +36,7 @@ namespace Oyster { namespace Physics //::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; UpdateState Update( ::Oyster::Math::Float timeStepLength ); + void Predict( ::Oyster::Math::Float4 &outDeltaPos, ::Oyster::Math::Float4 &outDeltaAxis, const ::Oyster::Math::Float4 &actingLinearImpulse, const ::Oyster::Math::Float4 &actingAngularImpulse, ::Oyster::Math::Float deltaTime ); void SetScene( void *scene ); void SetSubscription( EventAction_Collision functionPointer ); diff --git a/Code/GamePhysics/PhysicsAPI.h b/Code/GamePhysics/PhysicsAPI.h index 3e91a103..d1727a85 100644 --- a/Code/GamePhysics/PhysicsAPI.h +++ b/Code/GamePhysics/PhysicsAPI.h @@ -337,6 +337,11 @@ namespace Oyster * Is called during API::Update ********************************************************/ virtual UpdateState Update( ::Oyster::Math::Float timeStepLength ) = 0; + + /******************************************************** + * @todo TODO: add doc + ********************************************************/ + virtual void Predict( ::Oyster::Math::Float4 &outDeltaPos, ::Oyster::Math::Float4 &outDeltaAxis, const ::Oyster::Math::Float4 &actingLinearImpulse, const ::Oyster::Math::Float4 &actingAngularImpulse, ::Oyster::Math::Float deltaTime ) = 0; /******************************************************** * Sets which scene this ICustomBody is within. From 66e93fbdae53c53f1a778a734e7099e12134510d Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Fri, 20 Dec 2013 11:36:39 +0100 Subject: [PATCH 39/42] SimpleRigid functions mirrored in SphericalRigid The functions added to SimpleRigidBody has been added to SphericalRigidBody too. --- .../Implementation/SphericalRigidBody.cpp | 24 ++++++++++++++++++- .../Implementation/SphericalRigidBody.h | 4 +++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index d0bebedf..4b37b2b9 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -14,7 +14,7 @@ SphericalRigidBody::SphericalRigidBody() this->rigid.SetMass_KeepMomentum( 10.0f ); this->gravityNormal = Float3::null; this->collisionAction = Default::EventAction_Collision; - this->ignoreGravity = false; + this->ignoreGravity = this->isForwarded = false; this->scene = nullptr; this->body = Sphere( Float3::null, 0.5f ); } @@ -27,6 +27,8 @@ SphericalRigidBody::SphericalRigidBody( const API::SphericalBodyDescription &des this->rigid.boundingReach = Float4( desc.radius, desc.radius, desc.radius, 0.0f ); this->rigid.SetMass_KeepMomentum( desc.mass ); this->rigid.SetMomentOfInertia_KeepMomentum( Formula::MomentOfInertia::CreateSphereMatrix( desc.mass, desc.radius ) ); + this->deltaPos = Float4::null; + this->deltaAxis = Float4::null; this->gravityNormal = Float3::null; @@ -82,6 +84,13 @@ void SphericalRigidBody::SetState( const SphericalRigidBody::State &state ) this->rigid.frictionCoeff_Static = state.GetFrictionCoeff_Static(); this->rigid.frictionCoeff_Kinetic = state.GetFrictionCoeff_Kinetic(); + if( state.IsForwarded() ) + { + this->deltaPos += state.GetForward_DeltaPos(); + this->deltaAxis += state.GetForward_DeltaAxis(); + this->isForwarded = false; + } + if( this->scene ) { if( state.IsSpatiallyAltered() ) @@ -171,6 +180,14 @@ Float3 SphericalRigidBody::GetRigidLinearVelocity() const UpdateState SphericalRigidBody::Update( Float timeStepLength ) { + if( this->isForwarded ) + { + this->rigid.Move( this->deltaPos, this->deltaAxis ); + this->deltaPos = Float4::null; + this->deltaAxis = Float4::null; + this->isForwarded = false; + } + this->rigid.Update_LeapFrog( timeStepLength ); this->body.center = this->rigid.centerPos; @@ -179,6 +196,11 @@ UpdateState SphericalRigidBody::Update( Float timeStepLength ) return UpdateState_altered; } +void SphericalRigidBody::Predict( ::Oyster::Math::Float4 &outDeltaPos, ::Oyster::Math::Float4 &outDeltaAxis, const ::Oyster::Math::Float4 &actingLinearImpulse, const ::Oyster::Math::Float4 &actingAngularImpulse, ::Oyster::Math::Float deltaTime ) +{ + this->rigid.Predict_LeapFrog( outDeltaPos, outDeltaAxis, actingLinearImpulse, actingAngularImpulse, deltaTime ); +} + void SphericalRigidBody::SetSubscription( ICustomBody::EventAction_Collision functionPointer ) { if( functionPointer ) diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.h b/Code/GamePhysics/Implementation/SphericalRigidBody.h index 4c2d74e5..3a76715f 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.h +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.h @@ -37,6 +37,7 @@ namespace Oyster { namespace Physics //::Oyster::Math::Float4x4 & GetView( ::Oyster::Math::Float4x4 &targetMem = ::Oyster::Math::Float4x4() ) const; UpdateState Update( ::Oyster::Math::Float timeStepLength ); + void Predict( ::Oyster::Math::Float4 &outDeltaPos, ::Oyster::Math::Float4 &outDeltaAxis, const ::Oyster::Math::Float4 &actingLinearImpulse, const ::Oyster::Math::Float4 &actingAngularImpulse, ::Oyster::Math::Float deltaTime ); void SetScene( void *scene ); void SetSubscription( EventAction_Collision functionPointer ); @@ -54,9 +55,10 @@ namespace Oyster { namespace Physics private: ::Oyster::Physics3D::RigidBody rigid; + ::Oyster::Math::Float4 deltaPos, deltaAxis; ::Oyster::Math::Float3 gravityNormal; EventAction_Collision collisionAction; - bool ignoreGravity; + bool ignoreGravity, isForwarded; Octree *scene; ::Oyster::Collision3D::Sphere body; }; From a440cffb0e07a7253223ad45b5f6710894010c1a Mon Sep 17 00:00:00 2001 From: Robin Engman Date: Fri, 20 Dec 2013 11:43:12 +0100 Subject: [PATCH 40/42] Added function to get delta time Now in local physics API --- Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp | 5 +++++ Code/GamePhysics/Implementation/PhysicsAPI_Impl.h | 2 ++ 2 files changed, 7 insertions(+) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index 86e5038f..85f484a8 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -117,6 +117,11 @@ void API_Impl::SetSubscription( API::EventAction_Destruction functionPointer ) } } +float API_Impl::GetFrameTimeLength() const +{ + return this->updateFrameLength; +} + void API_Impl::Update() { /** @todo TODO: Update is a temporary solution .*/ diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h index d10d067a..0c08bf11 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.h @@ -20,6 +20,8 @@ namespace Oyster void SetGravityConstant( float g ); void SetSubscription( EventAction_Destruction functionPointer ); + float GetFrameTimeLength() const; + void Update(); bool IsInLimbo( const ICustomBody* objRef ); From ca90b3ae3b7d0be77f2f60ef62dbe38e8c80e837 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 11:44:27 +0100 Subject: [PATCH 41/42] OnPossibleCollision updated --- Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp index 85f484a8..f917407b 100644 --- a/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp +++ b/Code/GamePhysics/Implementation/PhysicsAPI_Impl.cpp @@ -65,6 +65,14 @@ namespace //sumJ += ( 1 / deuterState.GetMass() )*frictionImpulse; // FRICTION END + Float4 forwardedDeltaPos, forwardedDeltaAxis; + { // @todo TODO: is this right? + Float4 bounceAngularImpulse = ::Oyster::Math::Float4( (worldPointOfContact - protoState.GetCenterPosition()).xyz.Cross(bounce.xyz), 0.0f ), + bounceLinearImpulse = bounce - bounceAngularImpulse; + proto->Predict( forwardedDeltaPos, forwardedDeltaAxis, bounceLinearImpulse, bounceAngularImpulse, API_instance.GetFrameTimeLength() ); + } + + protoState.ApplyForwarding( forwardedDeltaPos, forwardedDeltaAxis ); protoState.ApplyImpulse( bounce, worldPointOfContact, normal ); proto->SetState( protoState ); } From 4d3032dc81f6ad4b5525c4b175254fa5ca1f0bf2 Mon Sep 17 00:00:00 2001 From: Dander7BD Date: Fri, 20 Dec 2013 12:13:12 +0100 Subject: [PATCH 42/42] postmerge compile error fix --- Bin/DLL/GamePhysics_x86D.pdb | Bin 1838080 -> 0 bytes .../Implementation/SimpleRigidBody.cpp | 8 ++++---- .../Implementation/SimpleRigidBody.h | 2 +- .../Implementation/SphericalRigidBody.cpp | 8 ++++---- .../Implementation/SphericalRigidBody.h | 2 +- Code/GamePhysics/PhysicsAPI.h | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 Bin/DLL/GamePhysics_x86D.pdb diff --git a/Bin/DLL/GamePhysics_x86D.pdb b/Bin/DLL/GamePhysics_x86D.pdb deleted file mode 100644 index 039b5f36a10f138fdd5f96a59af2b9ecc6bce1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1838080 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 d?j?RZ# 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�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
    hJFC?e`;5Aq_=a;5haJ$j$Waaukez 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 z%0D3Qdic#;g{S1^%`+bHA)b|gWtwpg@AJuhS`5Em!p7m^!;hA19So~@H(+OV-{gp^ zSo9=&PBX_n@I7jb`QUK*b&5GupEuxg3Axqb-$A=4?Z0<0?vZ{v>sk zV0Z%CstuGE$hf+)u`VW;t;6r>WZP~#m#$69Y&U1qd2-kJ`1g?dCt$pj++C&RH&|_E z`wi^;EsX!%9Z&Occ7=5TtaHS&13uNaf9VAA>TTT9Igc$PD)50_2ls*{`)k4ef>y@- zL~>yC@j-?#5a-{qci~)P82&djTJjTX7d-C zYuNh{?9S9T?sva|-nYBZxd6^p;5Z>^*KMsuJT_M|KBV|kC?6_y!q^UU3_=-d*9e7t{!yw1nD{q4iG<}`6@XnrhZ zeKgLx4X+m}-&7aAd_8@x_gT*%IP-7fFp0m9L*N3s?N%3AfRcy##CZ=(m^p=>!Jkc3mpYs1U^>IJh zaddqJlfRLFBRNYelWE+2#{U=ieM~?UmrWf$@baqrG?}UMJ&LLu=?aeT( zw#r<}{!{o@ZMt^w`ktM4lr*o5avVTM4xP90`~1b$11<2TDw{W(ADYT*Bjs4Kdo_j` zET&BsD|+HN)>vnMBvuEL`Nm2yA!jzcmo*cETse~NwLAETQy;T&j(oC}{r$8(hY#_L z)%82!$=7OZiZxb@kJH%S31(B_HL4dp=<8Pr#&|u1jfb=4hnn(f@654bya)3ee)kpE zlklV^+iLZ(RuhxQjN^sN;1BmxX5oz3oXW3>Y&oyI@$I|z;rPz(>wRzMdwKX*g-w?U za=2K3BaV~Uv6t1FW%Yk0Nd_Uwxp5y*!X#1JkHHGcd_T6JIyJ4+Bw&pGF-kDyEx{porC}V z<@nn07qhq)`<^(Q+QT})_CM%t1II4fjcgKA<3L%8vi=3O35xb}ef|UAv+vc0|C2 zh`kpSJFY8DR7A!1douSVC&R!BtNY*gedY5x+{y1g<+P{WbLLJu^=4w9IC!ate0MBl zei*}i)DeHAvzhR@JCbK;=NA#@Rf0L{G9`lIPN0s4KDg`qkhY zo3&)FlJ`2TtHoI8fbG%40p$9IekDhycnZ3r{L|QBKJAR_!Y;n&JA-;V z;BzuIcp3TRyD2k}sdg2xWaeA`_R!B|@aFLO(on`JR0n;_bA&G__h3Bj&15fuZ2PIR zlYS>>GY8`9FCyD7MetRE&al_5DU2KB`luUcjC96z8gpBJY)+Z$8nS1>cOGS4IG^^K zGA}G2kDcgR-p_OZKF&pk1koLMZS=SVKmU-r_afus-pohv69iw+p*M+jcB;)h#Qj@( zG8Z<&M`^n;IvdXCgWyvs`$#x?#)i{|u-BpeCTC-JWD@^;58rxkAmbRFcEvv~#TG5$ zEpZO~we^kf-S8>T?!I4&-01nHvCJ!-@P}x4gy;H`@k#WuxGVcH>~M{r#%9mYWlx6xUdQ-ZhECU0=3;oi1062HA0DF2 z-*VwCjDGV`7;UAuU|dgN&7;hh_)iIPE=7iO#^XmwK+=;?C!d~pc-wCea2eZSHP-Q$PDvET5f zj6?3<06$6CxGwfONSz_{BkM_5{G=ECZ0e5g@xy{P#Qd;N_a2N<%A1^C-2WD2G1BFagO_p?NN zfxZg3wx<5pIP5tSUBY)X*meB<3+24X*o;0UXZ3-)jC1VrGPVtm$IkqHCfDJ;(HDMk zGd?gMT|HHq^7wmIIlx=iVg{0YpJlzFQmzKuSwM(^^h zZzz0accN}Mdsh7CLax;^nI{@CH+EyK#;!MU&0{?ELLYxYuC`#WqMu~SkD7=s(C<>} zWW!%~WXVZEXZYcP(bx|g9iV&(x@n0V7ve8<@HN>_r_jd@v^{Siewf9c23>uL&N_BQ zf7rDzynKxQo6=rY^!^rhzZ!lQ)5aCpVpTtUc)o96`wsW-qt6uVw`(5#p_6Zs%Y#qe zJBKk%-_CUQW@+qA(Bb-J=nVbbPg~0>v8JJ~7m%X{Iyy)nFBPB<^mHS<+=Q&PXzMH5 zpUT)AwuE+KsW-wmHbdaA2E42+;XFnChRCzJn0xr|p{4A-uD$2fm81$zNgT z`waZ9HRmO4yb|3WjKrUYA%7_P&cwgqb2fZWr{3Rt;(w{E?RmcV#{zh`3>_q(+gbGS z7`lIua`KGy>H)~p4FAP{rlFU^@clORHaB6er@!%(pY3H_;wLvSJ{m1z?HJE^pzooS z`4K)m!HnfuoP}fY2jp9ez2v#a2K2J4Kl(uLRgrNOHhYBjf1O4<=<;>sScG1e&c$}K z@r_)Td+c3;on>$RE}z%Z=5BZk#Wxnh_shsXY&iZ{gZTvB`_P|*t-Cbk+=DKTq5t~W z>mYxh&HazsG8fX;EAW)M9Qonnl{xr0?F>ZzHX|8t*!{9>#@|r(w3F})c$`hSj|bs{ z=yWpeU5ZWy#M4(exIWVV9TE9LVoM$33PNFGJ0w675w>P+F!`ugOl0YM6)+p${v$;Mxuk}w6g)d zM&ld3Mfd3G6YTT@_MV2XH^JsFV*~ll`9=B68`GFm&SpMu$(lpIdnX{v2<(#1T7lgA zDlxWaVQciW9KC$g*|(n@iC)sEe;c~HX9jCaM|>EW<=N!lD7y%mI!!?*nfO0?e4qP? zMffLmx*`ADU0G}Jk+nhWtDDOp zon>#Kv-{}lMgBeq9_8GYhA&0eflvA@;QslvId>3k!~c%9_-=K^#c1q7S;r9}`r9e4W;b*1!8z=Amcsi~ z_H(pd2j3V=--prlJai}DW$g>!Z_@URhO`;Nc;fH6=HqSn!;d^dk1WhTROHhsJlhHu5-_ohhI}1sp;K(U8+%Di_RC>lo!A>Dz&Ez~zA57qf62rj z4>x0-fv?Wf7?BD61!+L&}FE>)yV|kq$rL4Y2PRbdv4zyPS454?v&r zCwUJOsMnzj{lMF$jGqYPpU1o_=SO+wR|h`i{a5mw>Q&^GJlkXN^a%d&DShulmIvYG zZN_KyENqS~XVLbxW0+gfhvYxzCU_XBpDh3@1XmX(-CV!;m6hnyoL;Hxga^!JvG zvv}sRAc06yD-y++%8bC{RW@R2f_OK63!vFB61bDrOx-)ap75yKk-*eOOPxN^$x|4Im)7Za5H}-(= z+OxXvxz#NAxQqVY!cLQ>F~*TI0vjd_#?RnwF?L)(AAQnh&tPO~&6vPf-$4&e=<7%1 zUxE)^*9u*u%e9RCbox%EkI%5j8>5(`8sV?ldkF1yrT+n32P1O}bi0E-V@G38bl0i{ zdP9bfnlr{|f5%ev+@7{Ov9E@oVc6#gWoE+9BH9tY*Di*4{P%2hcNiHCG-MCPJ^9|< zdB{DC{;x&ukD9ShnB{xM)EAlR(#EIAG8-Pgp`Bffodk5-pMKji&Wh3TTKKxU4)btd z=8&_HwF~Pw^2*rx3x9VEVNZxJzDfN!>i2}-Mavn7+2|NP?!s^GugrL_K|iVNuiz;R z{VYZ=)9{BgCgH>Iyt_YkSq6^3+?9ph(d%>cD>*Ey(90lXn1>D?;@%DL8y|#?;O&0; z`W3xCH-j-A%@~}_-|+qvIvEIgDIW}8j9u2C(-!DuFM7Y2IpTfn^))(?GtdoSXVcaV znaD=JhbXs*I{n5l_jkl6&{ywi%ngj6u8d7tbFYH;E79wSn)nqylkH`%a5la{J$ddW z-!+r(A$5Vj`SdOOuc?%ioarOT7s5CjfxKPtg~!oB=jqsp{%WH4)w3wyj`ba$ww}ct zfPSl>!@r`ZS+wmvAhcL27IVsDQAB$sSG{C0xJyV29D zU6}7$GiNnsU&;KiqBDEyM!tR2*kH~FwDCv>_Hf7%jt=t%v!0-fENqy7yjSPYA3QCF z_vUSpy%66S#6E?->L8c=w&lODO_L$am+|-x_E;XuI7I%BX>&zO^nne}qK@QGOq|KQ zPkV2|S2{laPsYZ)rN|2Z|DcVZ(Q`cbLgs>dnOh2}-x&GpQa=P6%J=P_L-+C=dJ}rQ zH5R*4F9n+|oWOdDo+W24rYmEi2J;F1IP@1y`A3UsuOV&0uf%~Qf8<4U5SGe3naey< z-8WZf(*MPj`P)3k<8a#ND&KjEYDF99=3{g|vO9ATJ~X@vu{ZkJ8$tQ8%uDorAGWLx zAM*#ZkD%R3@av_$0@{i}^B!$&VQlPP zMtO8`JANHcdjs>43;*~PozY+>LGDn#(zxcFw8F zT(*p{jqUD4#tq0aYZhw`ZGKGIudv%s@O=^fb1`kp`vIH5^B|1*&@kpDcvuOqkJe^9 z(5LK|nnto8><cQJDvspvYT?@uz zBsN-4`J(pN68@)8rtEx(zh_ioJU51+>WoGFA{;yPrOi*!{Y2(Fd3GF@j_qi3E%yh) z{3Y=B44;?L*Lw8YX99C4WxEVu4(x_K;HywHj^U4>jrkee8Mb zNO%~HPJ_`cbV@t?`qY$QXwlFVlWA_>pzu zHRSvN{2638f?f|)Vs8&$f5&$gjb{$%%=(G_Thqo~bn~z7*n&Qv&d2v+@oU;EVGJ}G z&U%M_c2Q6AGFzjk1ISYg>W(ey;Ga*Uk2(0lZH35y-d;x+lJovK{Y|9qFZj-VIm{VQ z(=dFVIt|gmndr7EeY_QgpG?P}@Qv=+a|id9%|t$Q^X-|eJ+vX`ym=Ejd!pYX$agDz zKHeMMqceF{D>=TBdog_$eo-B}ptFt0@f>ygVT0GOUte_gk7W9!9m%1TbMW$cj5Bx& zT7jP;&n>C!_xXDn?d>>=^%@(!TpRt+$D7Evy%W!N`f*l(-@Qw?KN?>>oAH2bAH~53 zvJXO6XM;bEEU)7mFLpye=&l6)ZbfhVX}@_Ax~oQA>=V&|Jr}Y_T>3iXs)Rj;)BmyA z@J5+YMYP@Aw{M7s=fBhTc;vjgG5&$9SE2JR_{=3$*qb7A3+mTKw~HxTg8#fs8xv_a zE0Z%7eD_+w7zf)5A75f$`M%`XAvIp?RA)Y|QNr8_|JSr-9MJx?Q;{nMf=`Lt{)m1Cz|W(D*qh*orTb_8?m{2+ux}1B zG>JlH=FN@pu>-lUfrs`U#uNR@GvO@Sd<4HaT$eRxB=)U^9!9WU^k;r*&sYv+4CL@U zqY3*-=F=`+I3Hqx1(T*!Jhdi$ET^4rlKZGDT}w@1JmGA={Dp71>ZnYLsw#*qEM63U%{ z|F>q`W9u~fY6!n^!sC3#F8F)sJ(>Q7;*;_{${UyAAMoA<+nh_^ZRm3k{xHm8ou+Pg zWZQ=BTKB~M@bM4qShFVM177#SX9n|(Tbbw3kB}4}Ns0KJya1^;*nYLm#`5 z{|4rOe%QJ{{w~iKo&uj_f_$0SZVEacg{`-v|L5?-mDobgke|TAIAp&8Su^1&ihf>)NBPcT%o6k$&3H%l z^|UMd;V0nl40K-9i8kgkXJRk;&OtKzUj+Y>m%R_Yj>hjKPxo*5xA6Trc6mOCu~U_E z6!q#%fzXlU?`@>~GxSq+G-H!GnF_IY*EHxubf3PE@yqqD>daHknSZ$dO zL(a6EqCA_)8XsqI_MYw_?o`1 zrv3V~w;P$>!4D^5i*qS+XD!AWd~NB@xUWoG)c+`wxvee!G=cFq%YwOqz$=8PQXnHX%w=ci-Yb8+t`>@*dU zT$^jL=Vt0pqyA!aUPRjup9N2Y+4IBqVC0y^y|eM#So|vb48{y{^hK91p3RvWT_n-x zH2Sy8Q+oldstoOkFm7hhkN6|skaPyiWocB zFc&Pxj-Q~@CGZ!A&N?Pj9(@NX;bDlEbsPTV%>4rX ze$gCkvp0 zj6rz0opCUTw$@?e@2I!4D!$mAxrVyu(OzpPh&u9)5cw{L>-l8eD5gT1MgM0XO7B&s0?TdReXUt_^gT8+7Fc;94d{^!cYrZc|Aux7xM$h)30n<$fvzKTNd8T|6I zy7+f8dwa@%OS|$tt6ch&9O2iSuqVRSi8EOzF+wi=uRjBuGEbDuW<7!aK|8V+lQWs* z_dQIRLlg07c$2)yPiga8+Bt%+y;j293!c6hU%|)jA4I$TnFDKKt7Y&uoOP9cB){(h z^fO`(YeZwt#rR}R+IegUzC)ks@Ov43mULxqf&a;8($^W-06D8;zy9d`=^l)Aboxsr z_F9aO`8AnaxxWk9^l(w26L(Mu)z`FuX>X=nI^x5v@*eq{Oz{oIWFFAk-HWS@UPGkL}jYRlN z>yBzVGY`|w1@In^58gvN`|#%pWAJhGcno{=!anaeq7(efhWFWld-d@5uHmB)_k-g7R0={+aku|GC&3 ze%8?MX!@v*zt_)a+(Q>o_5y5k6rE2%&-agDyw+pxK={6Y11bi6dU=@Bb zZ5+OdjGNHO0qPGNg{_0xKOyrnFLPN8dPSy7;6L^(?3{*8k@cf9plH_7HuMKyEo$P& zJ(M!Wo-(w{MaOk1#} zmv-Moh9z@2zoFxu^tm1#WX-^~*z!?iO@jZmj8$3xqmb!I_;`l#n?QS#x3IT2b+E-x zmC@lM#(g*Vru>I}@FVoLupPeD3BRFE-;SKeGnh+e!5{4mTh4mi7#kwXqG9M6+g?Sz zhtbVTv@O3MaCr^J2kq?(;#m{=$)f6uDa?u3;zImm&|-WPd;CH>O^~SvHkCY>&nIIC z3jc(zS0Mjl_}_*aLNV|h*@AG~<(`bpjeL17?_fxZ3uh4l*_>RLr;+C;* zK#vE;v*yr8CUxgmh1W#pmukqk02$D?e8*znMEIcpx3PhIm*p4AtfT%F_>RQlB=4vi za(+ttPvQ&rbFU}5t4%+fDzmnr!v+b=Ka`jED7@E@=ja~lpo?SB0sMD+8}@6+Fdbg* z$z!cL6FJbg*l}x#Zx5abAM*W-^K%$WUgp<)d^?tL!{09t@jdg8Le@r;82_WuFZxM` z=lk%*!PLD9n%9~=F~0s7dV3T-Hs<<0*ivlq1^qUI-&*KsUw!5>+GvHX&h3T1;ZdH` zoSTRbB1d(~e$?f{e5+-w}D2x=*9~ZnX0qwtaLFbN3R~TdudFr<*A^2^|)quf-$SucE(t zCCH0kOhj+-{5=!BUylubrCtnvdO14CVocVhuKa%SkLc$J)SLFt%|y@e@Vxk05&Usq z_Qtnk^Ru}BDssL?du!mgXAkBz=9+f&BYAgGUig9M$I=%V?E=A7^3g8JWg?9gfe_qYpb~e`u zvFvkb`xSh65WLCz-i~rl^8C(3XAi^kqu5Gv(YqtdBzT(`&%D`+^(X}Wk3qL*Fn4#u z9{B9r@H8K~eKdV?eJX`^8NZwGgZpVGo_^$+%kmr5JnCZs?Fo&U0Lyj7rXzTyH<8Qt5AGbzWb|`MNW{yR}m3_t>00 zm7K}=#|JzldXwv(mSIjj^4>i(%xM|LJd+;gtl{dc2y^b?dex0#&NSqZhoD`M&Dj&? zJi>MDCzYK&TvJIFT#xT8hzxhy_M+O*aOWegjnczQ&uW;X^opuW|E<1|Ig$3(HNw{h zuYBAJ)38OXQ1aQzIFc?x(jD~ z1S9*4$Qv>qT~q(*0>&Y7F3M%i#Fj6_&<;A2^Pc3g%D+`|jbwas-86*p0gtbwbKcYSxrPr3a_(usT$di?w4mRnD}tPt zxMr;nD*gUry{$o|zXjNDPmuFnW7>0qOW!M&(=ymeL7t{Vf}LYr!_$MEyU;^F7QFOk zT-OIXO`6l+)?numuHk!vOMlm;krU!1MKbTU3~}~yojoL^^j*lI86i$H>?vO)eo^eY zKE%muE%if6-yz;%Pl$5}yKD^#b=I_{Tx6&d-wt0H66$=;wO)Ftb6I;CzoE_;{I0`I zq0V8h;afwU$MB^_dqSPbokWF|N}nmMimc>Zn#MB>bQ6w!KEd{pw0}7~tz_Ody{=!z5faldfFN~+v*y2zeK9BvzV7L8@t1)0B@VO2-%xSbUi+1H*E?@O!+%T4= zW6#d`&AdLGb0#uQ(D~uv_-$3%5`QXTPs2ReJ&L^r<1j0X`zeeIbkP;PN^I`E9)FJi zKga){|9|b;J?P*K8&eqK&La=kYkJ!ix5b>ha#!U^4GJV>hIi6r=gm#Zo9T7B z-1v7HInR6W`Zij*DNDC~QrT>_O<%gggCJjkIDE-G|Qu;6E z(jGzcvkN_Gnclp@qJrYgqO_tRg+*CIhB)6IIvC~z$&BsPaKdXz%kod2g+=gxh+J2& z?mHoMf+bOS#jjbOJa0j6T6SKRr^r)~o1K?YNj-Hw0%_vH98z?MVnB#G}o)t5x*YUW^_@RTV%XupB7UyO8v2@VK zlkZlMcYa1eR@x#@f!F0r@w7Zo2D}wHrR9Si#Y@X)=grK{%jRWL(pE^tdwHH&^yuCn zicDy`RHn)mW%4z6oJacu-n_CnsZpC(9>qP{n)VAH_WHb#+mpUPk7;;%t87 zr}SP(#d@^q$tZO1g;u;rJ?Ya|uTsT(g`Rn7nWB4<6OS&Hv#QEzyZ6axkupDsaDr-y zF9kW`Tb0;dIKjGS;WK!thh^k2b~1{*1!)-tv(k#B!3lnt+hnQUU4M5blfi0GRyV&sxe1HSINE50JsWqBVOyt=k#wcCdOllVY)8 zh5XGHp$wY_wx4nxAT2io>`KbK1CNU3fCkHr zX$j2y)Q z+B*;IO8R)i@N##6a@$czu8QDl3}^eg-I-C%5Y%XGEH#TFV&;-XS6(_rs{`SbE2 zSeweec%JHhkJP1}Z21+FSfBXrTEk0IF!8G&jci@qatw*Gx=}7BtE9F!4a{HnbHU`y z$(FjTTrL=YRM4|LH+hJ1{mi($1nf$R4mD%uCNRlcn`U^v8BBala*mXj$H1h$4W`^? zuw!6W4#~+7U2)_otGf;CO8$P{@bWU4_|PWP-m5OQ(_pU$z`g(z8x1q%f;r!cJ>;3P z^4tVWWP9IW9pxO1{3(XNPGF+H5`zr{^Ph*}-Ew11d#PYDA4oo@_L~MK`pY!sE&%hl z<=$>kcz|xf|>y`Wc)Txe|9~}0+aDpn|^fsE(N=Vx~)vz>%jcy_6NXZ&WSRzZ36Sx z!3SXe^6m%opTmB1>waYV4QqD%{M-!8pTE9fGLAMGUIu`PPOmk#Oa|Kx7Gp4Z9_6pU zOfVTAcF!;y%zqt}_e$-iy@{s1m2TZABgZ{pqUT@HtLphpFn_(g2PSu( z6V|%H&5!3f3{2#G-1J)?%zvF}CN>{o+N;E~V&Tt@-^yU3E4!y@0493bZt8XdllGqBn6G_|2NOT|gyX+r8DQei zY`4p>d0-;1m16~%^l{Xby97-3CARLhU@~V45 z*Q0ik$FHGDV7-v5uW2s>Omt<>Oj#~w&rCA|VA){8OK)SNTrjbDJu??C0TaEf23MV4 z4kmgYYs$R^=D%+3buqhced}U&-Kx~mH_l&j%KHcdqr(dOrf@Lfue&K10VZ8*>$=!o)K}RWx>zOTQ>;0d@RDoF4F{7olw(a^)k!F?0UHbOy-=n zrmnmn!QT&V0~6U=L(0n=VE+C76Kn~-(b4$iFJS)jt~}!xf3fF5$zkyyzoWrK-j57_ zbHT*s?O6Mjmtrt~zrPmDfB$y~%zxi>7)<);Vq|k#`^MH@gN1^L-M%nb1eia6O~G~p z=LVPa*D64{2~rLj>|7`LS%NJrZPxcZVxEg-8tfV{e;f5^RyPw-Y^S>X!CeZIdQ|@Sh_I?IiPq_)E+%d4dU@Yrp{u0E16rI{WLcl~etE32uv@_t8vl~AsisXNuhnBL0xn+E3Zr|AK(%mA3gsvn~dJB~Jk z1+kYbHht`I%MCSHl@7jg7V88i?bS5pBn~d^@#wpZ=OVCSV7A<)U{`_>-YzS5E7;e5 z*z;h0C}i9F2y7LYtt)Z&m;JD?jyyA?Q`>K2uv`FJw-?w$e&rIuq*IBksc%dLlN=6P z_cE|6!5IE!@N;#&>vT|>@7%D8oK5((d29sR$;V^=0m6dDQ$=3&_ zD#HeY-AOsRDZ@s(7)y8=Ci&`8uA#vufr+1V|0KXA{fX8B^e$RgjSznUJ01 zDU9r}pkJSksUx#93%rHinMIKkvkQweaw5kS6=!98BfEF+8kIURHg!gJUTSP|SI+_u zF`lk&TS>Y3IUeC7qbS>(mpU$gwx=LFGb1M@dscSVP;b`4u9^Ayl%HDO_bJFQdd3_p zLMnWw#(8EG&q^)H?A|@9Ykt-Y+CJvC-6b=!OVVj5X=HZcY1Z^b!A52j%|5-Jef3=f z^^A+`GBqi(OP)8!JIfo{Wl~RQa+k<1qqCree25z}Y|6N#*l}rb$;oN)lgErs887iv zm7fA>lafYpQ$CFx8apnsOJZ(hm-u0Y@*gs$jF0Ue*=1xL4JLAPW_~mw>`a2_^qd(z zKXZ0QL0VDi=b7GuahcwHZX|e5O{FKc8Es|#UTsu=s6B$K0xid3Ue?v=?NJj9^FN_?K z%^2^;5KQv*o?4vS$|1%YDzCsQ{XWtn=Dfwwx#&T@-**!BPS|K6ruSr>OtKSJou8do zP(;ni;)_k3kOq~UVz?-Q=0gjhrI7C&b`^75Mptr1;XTyFt}*kSV4Ylh`p+%dGS^g` zSp51s=eYjlef@G)l{KM~+ut@Y-A^mF+bt(?BE@>1>8mU80mX*6*c+^aij4%5y|~0% z6-xz^J|t$PSelE;b3?^40$@vAOr8U2x#cb<&w&&>CjfSZi^+PV<*szG_6FMsCVGi9 zJl_u{atwB{6WGC>u42X{rHO?~CwMjF3isnlI7#`g(tv10-HUo9D5Q> zelKbUi@lcH=3;e_U9qRYCQvSfgPdZ|xaAT}Imt(sa&t|;&%4-H27AH9Dpf6S??tdn zshecld)X~_hy#K4`>I>+I#cd-w_JQ=dAT>iM7B*hzt)xSZM_QiN$+w@es{Dw8)k{O zYq|Gb?0SRk1{2vr>z0@M2uyVP45W2GcFW~fD#zrVXu?Y;Hho&|bGL4t!R46baZ4Y! z5=hc=U%7R&@h8Q;cFS!s<-T#TXAE}Gt$V4dd)UP;GMKzOK=|8Ybal+d(FaWY;CN^7hVh%SD)SF)sFyX)o5r zE;CrXi)}VoB3LYaR5tA;fr*VK8F{CIoliNhshbM+ELcZlqjb0KxkfKDz+}8#V=&1P z7VJ@j%>)y@+-drl?Up-Y%H_D_zA)v^1rwfk8NZV6U`u<~n{wxag%Y?~X5_udEqBb6 zlXsLzdwWg4>s&0|)ZOUTZELUxTx^eN??Et;H^k`lA-CLiQ|=KLTWc_R53KO=is5Ao zSR8VEYx>;=CUeA7rrc95w!>i0y4afr+u>sG8SEV}84DXYE2%%f@0QyVS&n_=V%rQR z-wP35b{Om%7u#;I{a|9FtDN%o!n*jz%pwk-+HWT?(ZML=YyH8bkCkSf8Q@~qgKJ&+ zj-K@K57WmG7yFmNGQp&eN_ETYX1V3wGv#K2$=rE%yYg~#z(iO3%=$Lht$W1O%>@&l z?=t*(-E#Mta`Rm5kiq1=E+WSp2D=VS=9eml7kP)h$T7#PgYr8S!e6nO*W|YugqJl& ze?Pd`I)lkOETx>hhevh#lZy>E*e@M~MFBvS{#pW`{Xus85 z>=J|3bTK=})&{$f@lo51k9uG-Us)e&=wf4Ql=sot#U>i8DcDZh+hW>l0Vei%$=IW% zi_I}uYZnVOb^CycjV?6yhz66nSZ&@a@P3(d;K+>Zyg>W2>UI40})XI!zz~QVzP%-Y?_P7{!+0burahX%CxsU0JhSt`<5wpZGdtQyX9n0tbNFL$8-;? z*nSt2{k~#{!9=#N(W_$LyY0z-TCtFB<@Wbhk;$m z-|~E0v2YiYXK;!|fJuxb-(c0iI-&zQDl1n5Ol0X_qa14pwt0&0dAYXN%*A3%-N*pt z+Pm0%Q?9d%^)OfuFnRX8oi#}Ns0m}LSH)@zv)JS^Q+EoO#$dIa7fj;hd8XWQ7rWJ9 z=YolUNPdIXT?Hn6l$dfhA6m=Vd}zgNKD1&s_gS&*sPdc##cb}gVm9|#F`N6Wn9Y4w z%;r8TW^+OteDMJR?OxqD`s<*6|=d@irHLc#cZy!Vm4P< zF`KKbn9WsI%;qX9whVbC$0Nzi#Wq)2%h_CI#cZy!Vm4P36~IqzUb2?6dC7{| zykx~}Ub12~FIh30m#mo0OIFP0B`aq0k`=Rg$%@&$WW{V=vSKzbSuvZJteDM9R?Oxl zD`xYO6|;HCirKtm#cW=(Vi#Z|nO`K2L@}F}teDM9R?OxgE4JFTxt(Ke4ziY8M>)+w zR?OxgD`s<$6|*_WirE}w#cU3;Vm1d^F`I*|n9V^}%;q2~W^<4gvpL9$*&JlWY!0$w zHV0WTn}e*F%|TYo<{&F(bC4CYImn9H9Aw384zgl42U#(jgRIyk*jIDD6tg+Vie2uO zliXd!Y!0$wHV0WTn}e*F%|TYo<{&F(bC4CYImn9H9Aw384zglb1dzk#AZt0BgRGd% zK~_xOHLAIoiao(0O>>YHvpL9$*&JlW+C`S*TjH&$$BYkUnGN&cB)Hs4q=n{TX` z%{Nx;Hstj`o8IYSl5ec#6|?!q zirIW)#caN@Vm9AcF`I9!n9Vm<%;p;_X7h~|yAQqiuRS*3Sj*XbW5sN~v0^sgSTUP# ztk?teE4j*hjP7l|v6lN7oyy#_-juWX##+wi8!Kk>jTL(+fN#jV@ipIA%h`Nm#caN@ zVm9AcF`I9!n9VmP z_HR$}jRlJ_?b&=|ZBO!z=hf#s>ZY8{H`a1Cw^%XBE%xtMa*O>j$u0KBY;Li(XLE}c zv$@5J+1z5qY;Lh)Hn&(Yo42ai)K16qCwZ&>Jio(un@nCzEu$-&%c|{V1gI;ytkRyf zo6Tj_x{}K(e~9F&igT%*F{7vvESjY@ARr8z)rE z#t9X(aYDsxoKP_vCsfSF2^F((Ld9&HP%#@PRLsT+6|-?d#cZ5VF&igT%*F{7vvESj zY@ARr8z)rE#t9X(aYDsxoKP_vCsfSF2^F((Ld9&HP%#@PRLsT+6|-?d#cZ5VF&igT z%*F{7vvESjY@ARr8z)rE#t9X(aYDsxoKP_vCsfSF2^F((Ld9&HP%#@PRLsT+6|-?d z#cZ5VF&igT%*F{7vvESjY@ARr8z)rE#t9X(aYDsxoKP_vCsfSF2^F((Ld9&HP%#@P zRLsT+6|-?d#cZ5VF&igT%*F{7vvESjY@ARr8z)rE#t9X(aYDsxoKP_vCsfSF2^F(( zLd9&HP%#@PRLsT+6|-?d#cZ5VF&igT%*F{7vvESjY@ATBc9G?=7R79wP_YckX`E28 zEEkhFp<*)wU^Y&u~h-EIH6)TPN`*ZqJ5^q1Qv+p2M%)Wz2F&hI_Ok$w^dX^ZdKW5{dT36zo z{^cazDVX&?8}HP*67Q6967N*Z#ybTw@7Fnncifb|r^gpCD|-=)LoBKi-|XQ1>)r*W z!OrRK->3fm6u+he20Y8-eg9d!^K{<6Qywck!Rv4Sn0P7nI_m25^xkoEV!fW;du~qL z-X9P+<-4Ok|2o0Do_@poY5v{oqW;ICq@{68-#c^e;R~4?Ao-2rKIlPWK^5MF^&4Jw zV>Rnv#hBiXJ7^?g(rOq|gz?!)FW<19%$S#b@$)1(x$+F+g)wVWOXiMuQ z#d>pcva>uHGje=i_bhwYj@EmqLcQj0e?G4&tz5_px_ZV{_^zndeWXI&I&R%D-t4@h zfaM>nP+sS%lnme7zAEZwbA__<+c5UMd9~4v=66(lwU53_NO^qHuN|NNmcDSzrx7=< zt>w2>D6f4?$jdI_6>2BY;Zqgr2(R)!m3L?R-lx*QwXM7-MKF0!iej&0@9)9hVa`_U z9T$^#a47b!i``?&edJ>DZdEP!37GWp6&xuhzga2RHN(oWy)JgM!M<{_TMV|(#STW6 z*FEH7b;zsIK8}Kk98(N0$J}!A%tFfr5mc9QGs!7n3?}dR5uW88KUz-Sf6^>l z{`O(|o}ro1saaXP*{#Uy%_&UHEGSCl?PN2GvvaaiJ+o66AL%G6+q4iWq1)^MnSfxuq%QW zc#2Xd;?Rt3-_42|Jc+dYe$?#z{8OwX@42hUWpYN|EM5hrZ!`PFvr{Lt9! z?0iv0*}YQ9c^h3!em1XU%qftY72nzCr%zj1-8KguXXIyB)UoMU@AG?c^5c4eJ0BG{ zCN0*Ro6B1oZ66gFoH*{^l_+1;1NXv@tbcvr=kJ#&O%rI3Vf6lGDuF!X-Q$u zi97M+m7MryNug%}-iS?3Tqe_JsK6qMA`>Q;SN0!{C)94a?wo@W?zk`OBENV>PIe}5 zw=9XvuE@Q6r!Z@7d7l`+BFrtHQ2q_N)ynQO7!$-4&%y zf{`TmU4(Oay=0(<{=FlWJBm|r>>Iykc0S1j_HURDRs0H&qZbPLb-~)8KnYq zJn8HIcFqckoV;DL{KcE{0?xFNF=Nu=l2YPh$IFe_l<`B8;~X>B#mSpIxy2p#Lu^_~ z{J8NcNwMRTMvqDxHzq!I5O3^^i;Yc_;X8S9>0fCv$;qQ9rHvdHn>H~%C2eHVxREjA zV~0r}zB?%sMvYGz8K0J%G&Ch9WlDe&N#o;FV#be7NsEggIw3JFIeub%vMt7YM0@rC zjv18}GYVPwK=Y$UkBd*4m=qh&XL-|T&mMe87&CfM6xX=;iQVN|T9vCTuxb1Ty7Be6 z?4JGll!`EFeAh}$HT_o4CQV@f|HOfI#_ zn3SZ6G2_uKeWzj2L9~<{*WGDHj%hgip7+_;eE{u-K7>Ak_COy)pFlDuKIIzKUsODy z)N|rTO-xHjNs33hDT7L1gUc=Y!^Wdxhoz01GAcGLb~L8PCnm-uPe5hz0$ARHTK)!D zdF|^7UiC`3#FX;f-1%9(di14puKoMaQ0Wz=bL|s_8RXi70g;fDl{F(HPfj!J4iXpw zQ^{|hn%|G65}<{VU9!3l&CUbND9D^0ofIQplhtEt_L;njmVsg38!Eqc{|@vn^d9sX zdEpw65f3_}7*E2*JKFbtPXw+LPZl(z+6}mU8mDC5lOWP%wE{q+$}c z@^4RKRQ^~!_UocQUNux!w-Hz>{f;0JTHBN7&wm4(V9Lp}SHZ>@%MbEa-6?dKWG%dhZJjxyn3cm%*r8H#WRO)%1Vz8 z-ohf^G9;&y=-+-`;Kz^IMSAl*3$i(3)5p|Ps~d3bbI%wRPZ;RxsN1%lG5lA=lbjz? z^R0wsYrWCI@e4Gv9ar%8I3=8LIX}tKz|r&72`m4Po)M1IVA-zH-+E;?*sxUCM4RpA zp@ZMMK5$&S0f(Nr=gC~GtQB_?TDC)yy`VpXzh%SqyX>q=*KM<(s`xz?*+cz*ZEuCd z{yQq>5*_c{{r}bGioFuQ#}wKij5R5YHM%k+`>JrRRiFsy6UISRuIT2!x2cky6>p|z z$Mk#cr~>b#RAf@c3Lb+CgszJWJlwBJeyO`ZyDQ4G3#pL@ltrj~@S2nSV zbzuz^Y=FVKxmYiQ*>zRwp5l6$DZg6JuTPY&m%eArDr5bV%Ge};jEePx&uf@C8J`D}XtAOWTc1>iX9UopVpb1|Ssn#DMO)7*Ow06o=Vpts{rtJ(N%?H* z@@eg$n6-mq)((opFMJ&5(?d?GpXLGdqnMo+6tg;0%*rU(De}&iy|9Sq+HkJ%E}hd7Ps)1> zmv^tL_XqmOJ6w-HD=TJsS8Tppx1eu%-Ni1}!C=c>Y!+X>*ShB@X3AMzXt`Bxxli13 zr#M&TdkQ_7$J=$>ak`P*j^Oir-}Q`i^&sCT6-;tF6q7s-!6c7EG5PMOVDk+o=l&63 z>kTI7et%5P{fj6k=YDNZ&iztO&i#tXx!=F8ocjfnbHA38bHB7F=YGZH+%M(i+^?9N z`vsG8zhZLk_isO*Y_QGU=aDp%aJe}p9mDn`ag+@l_^8r`LrI>Xn5a$ zdOGniE_+^9D6z&rJQn8v#D>5BH=fcs<~Q|x0jS?26oz>Ik86Pb_ny(Pe=1)G{;*is z|5|9PEH;?wD}KuY;@)zgZjXeL{^^uKM6FO&NC)T@AN!tup^ zkJyWIT)v7fOlA8l|3#+khW~~tz;@}syyTZ@zQP9Qw=VQ$`6|C_7EBpWs@QbOCfBl)~C}5!X}7eK}dArYw(P1+7Y~<{Yl)LaU+U z*ZS5jb}7$q9=$-GB}+Ww_-B5K+4WyByIu=6_(bbaHzQpDnZ$?(;%vr}jkG>SX zPaJD%6M$F6EU$`LUIjZXUU`0)IeTt^=c`wql-IT{uUDb#aToGCspwiU8y_gc+#Gqy z%~#Ck7%66Rj1;qSDrWO$1p5s+@&!eirJJhL%6*s0#r(KDX~w^A?z=R6g5-C7?xOoC z|L1JFWpV}cEo=VUj8l5lRID@E>deDyTcK#!h_t|L+|7%g$Nqu5TjT(K!cUX)w(yk zb@!NlZT_v6Yun2wTS`cIAH7^`pOGWR#rhe{#*DSSWXcK8JB|J(x!9!!o8q>I$Yt_Q z2a_Cu{RT^S>$a*^UM>?%bR}_Q?KjKCvJGZ)i?v*~+g`fiWeu2&%bi9x`JG+C?z4Kq z*7|)zZO_hMitTpmPBQI%=VGG`7Tnv{$3f!BFtX>qeI#A5&K(N#G3(-Nv{CbtY3i)Lx-ive!AirW({xZzSub7ozF)P1fYZw>x zFX9~>j1|S~{HWMEx7<<2sA6^>qnMp*6ua21E9-`0m%3O(gI(@owG3wMqjjx)6tiPl zu+z1fr=Y;=`?j+G9;j&rn=xhl`R`8+{9zjCK91Zgs2|h^8VE&0L!ek_Boqbpgyh~} zC>|OH$-O*iG4up6Zjc! zC>*K`Rf7gVG0;WOVrUJt0onvT3_T8QgTg10uL%u=ywEx*4_X4Pg?2y>LBmHQBa{dg zL+3+JK+i#2-D_o%puXpGRj&P@VrT(W0-Xmv2yKQALd9dL5AB40gsP;Fw+(0Cv<{jNErlM2wn7`Ad!c8cUC@irLFgwa2z~y_^$^tUY-Y*6XfaXE@P%*R?+68Tao`I@! z&^*dDoNG@g85#;DKue){P#&}px)9m`ZH7YmeVfYAQ9gI$+7pU{lAuKQb1~P2&{Aj> zv=Vv{+6irdwm=7=qfi8gyIxQaC>H7qod@MZE1-?gHt0p@0caQGp!aG}uUK>fd7%QR z$o+dU*VWKAC^QZ~;~K=ZC)5k-1NDRYLxZ3gC?4W_$j$=D3l%`Cp-s?(P;k8C9N}7( z>j
    S_&XtzZpe@kD(6^8?#7Et@ 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 CB1IAa diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp index 29f64144..09855984 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.cpp @@ -243,10 +243,10 @@ Float3 & SimpleRigidBody::GetGravityNormal( Float3 &targetMem ) const // return targetMem = this->rigid.GetView(); //} -Float3 SimpleRigidBody::GetRigidLinearVelocity() const -{ - return this->rigid.GetLinearVelocity(); -} +//Float3 SimpleRigidBody::GetRigidLinearVelocity() const +//{ +// return this->rigid.GetLinearVelocity(); +//} UpdateState SimpleRigidBody::Update( Float timeStepLength ) diff --git a/Code/GamePhysics/Implementation/SimpleRigidBody.h b/Code/GamePhysics/Implementation/SimpleRigidBody.h index c7d915ef..618e0235 100644 --- a/Code/GamePhysics/Implementation/SimpleRigidBody.h +++ b/Code/GamePhysics/Implementation/SimpleRigidBody.h @@ -19,7 +19,7 @@ namespace Oyster { namespace Physics State GetState() const; State & GetState( State &targetMem ) const; void SetState( const State &state ); - ::Oyster::Math::Float3 GetRigidLinearVelocity() const; + //::Oyster::Math::Float3 GetRigidLinearVelocity() const; SubscriptMessage CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ); bool IsAffectedByGravity() const; diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp index 4b37b2b9..95901763 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.cpp +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.cpp @@ -173,10 +173,10 @@ Float3 & SphericalRigidBody::GetGravityNormal( Float3 &targetMem ) const // return targetMem = this->rigid.GetView(); //} -Float3 SphericalRigidBody::GetRigidLinearVelocity() const -{ - return this->rigid.GetLinearVelocity(); -} +//Float3 SphericalRigidBody::GetRigidLinearVelocity() const +//{ +// return this->rigid.GetLinearVelocity(); +//} UpdateState SphericalRigidBody::Update( Float timeStepLength ) { diff --git a/Code/GamePhysics/Implementation/SphericalRigidBody.h b/Code/GamePhysics/Implementation/SphericalRigidBody.h index 3a76715f..51d1b998 100644 --- a/Code/GamePhysics/Implementation/SphericalRigidBody.h +++ b/Code/GamePhysics/Implementation/SphericalRigidBody.h @@ -20,7 +20,7 @@ namespace Oyster { namespace Physics State GetState() const; State & GetState( State &targetMem = State() ) const; void SetState( const State &state ); - ::Oyster::Math::Float3 GetRigidLinearVelocity() const; + //::Oyster::Math::Float3 GetRigidLinearVelocity() const; SubscriptMessage CallSubscription( const ICustomBody *proto, const ICustomBody *deuter ); bool IsAffectedByGravity() const; diff --git a/Code/GamePhysics/PhysicsAPI.h b/Code/GamePhysics/PhysicsAPI.h index d1727a85..818e64a9 100644 --- a/Code/GamePhysics/PhysicsAPI.h +++ b/Code/GamePhysics/PhysicsAPI.h @@ -251,7 +251,7 @@ namespace Oyster /******************************************************** * @return the linear velocity of the rigid body in a vector. ********************************************************/ - virtual Math::Float3 GetRigidLinearVelocity() const = 0; + //virtual Math::Float3 GetRigidLinearVelocity() const = 0; /******************************************************** * @todo TODO: need doc