Daniel Chappuis
2ab1aace7c
Raycast query now returns false if the body is not active
2014-11-29 17:05:53 +01:00
Daniel Chappuis
4ae7e7997a
Fix issues in surface normal computation in raycast method of ConeShape and BoxShape
2014-11-27 21:05:32 +01:00
Daniel Chappuis
5d2cf593b5
Remove the PairManager class
2014-11-21 21:38:17 +01:00
Daniel Chappuis
5f7af61593
-Remove unnecessary contact manifold
...
-Delete the BroadPhasePair class
2014-11-21 21:27:09 +01:00
Daniel Chappuis
2570d794c3
Fix issues in CollisionBody
2014-11-20 21:59:53 +01:00
Daniel Chappuis
adc53c6523
Make possible to use the CollisionBody::setIsActive() method to activate or deactivate the simulation of a given body
2014-11-09 18:53:50 +01:00
Daniel Chappuis
ca660b5057
Replace some matrix multiplications by quaternion multiplications
2014-11-05 20:52:21 +01:00
Daniel Chappuis
3da146eb84
Implement world ray casting query
2014-11-04 22:38:40 +01:00
Daniel Chappuis
e9257ec56f
Change raycasting so that a ray is given by two points instead of a point and a direction
2014-10-21 22:26:40 +02:00
Daniel Chappuis
08e286d27c
Implement raycasting for cone shape
2014-10-08 21:38:40 +02:00
Daniel Chappuis
25c11c6d6a
Implement raycasting for capsule shape
2014-09-20 17:00:32 +02:00
Daniel Chappuis
78193d9b03
Small improvements in sphere and cylinder raycasting
2014-09-20 16:59:47 +02:00
Daniel Chappuis
188251afd4
Fix issue with raycasting in cylinder shape
2014-09-20 10:52:42 +02:00
Daniel Chappuis
c07a2dc9a2
Implement raycasting with cylinder shape
2014-09-19 22:53:40 +02:00
Daniel Chappuis
ebf13c3366
Use the standard library swap() function instead
2014-09-19 22:53:05 +02:00
Daniel Chappuis
a89b258418
Implement raycasting for the BoxShape
2014-09-08 23:19:07 +02:00
Daniel Chappuis
0dd55e716b
Implement raycasting with sphere shape
2014-09-04 22:32:29 +02:00
Daniel Chappuis
677c694109
Continue the implementation of convex shape raycasting
2014-09-02 22:54:19 +02:00
Daniel Chappuis
3c1b819fda
Implement the testPointInside() methods in the collision shapes
2014-08-09 10:28:37 +02:00
Daniel Chappuis
6c505377c5
Clean up the include statements
2014-08-07 21:38:31 +02:00
Daniel Chappuis
47b2eb457a
Allow the user to attach user data to a ProxyShape object
2014-08-04 22:57:24 +02:00
Daniel Chappuis
ab8656fc0b
Remove all the special proxy shapes to keep only the ProxyShape class
2014-08-04 22:46:58 +02:00
Daniel Chappuis
bd5668ed51
Work on the testPointInside() method
2014-08-01 12:36:32 +02:00
Daniel Chappuis
0faacdbd6b
Merge branch 'raycast' of https://github.com/DanielChappuis/reactphysicsd into raycast
2014-07-22 22:46:24 +02:00
Daniel Chappuis
5dd9ee826e
Add classes and tests for raycasting
2014-07-21 23:08:18 +02:00
Daniel Chappuis
b5bf3ea032
Remove the Ray.cpp file
2014-07-13 20:28:28 -07:00
Daniel Chappuis
a52f89a33e
Add the Ray class for raycasting
2014-07-13 18:11:15 -07:00
Daniel Chappuis
1415bad00e
Small modifications
2014-07-09 23:45:19 +02:00
Daniel Chappuis
050b610d8c
Remove check() and checkNode() methods from DynamicAABBTree in release mode
2014-07-07 19:01:26 +02:00
Daniel Chappuis
a983026094
Inflate the AABB in direction of linear motion in Dynamic AABB tree
2014-07-03 00:13:30 +02:00
Daniel Chappuis
114360337c
Fix issue in RigidBody::applyForce() method
2014-06-29 21:59:06 +02:00
Daniel Chappuis
3aa05ef61a
Fix issues and add conversion from Euler angles to Quaternion
2014-06-24 23:31:13 +02:00
Daniel Chappuis
bc4de62e75
Fix issue in the collision detection for compound shapes
2014-06-10 23:37:11 +02:00
Daniel Chappuis
cbeeec21f3
fix issues in Dynamic AABB Tree and add compound shapes in the examples
2014-06-10 22:46:32 +02:00
Daniel Chappuis
aa76c85e60
continue to replace SAP broad-phase by a dynamic AABB tree
2014-05-15 06:39:39 +02:00
Daniel Chappuis
643ca41922
continue to work on replacing SAP broad-phase by dynamic AABB tree
2014-04-11 23:50:00 +02:00
Daniel Chappuis
76cb11a74f
Add the DynamicAABBTree class
2014-03-16 20:59:10 +01:00
Daniel Chappuis
d622e2ff17
Fix issue in the broad-phase pair manager
2013-11-21 23:26:19 +01:00
Daniel Chappuis
1812402617
Add support for the different body types (static, kinematic, dynamic)
2013-11-21 23:24:11 +01:00
Daniel Chappuis
7432a87149
Modify cmake files and add comments in the code
2013-10-06 16:03:25 +02:00
Daniel Chappuis
3173b368c7
Fix compilation error on Mac OS X and errors in SliderJoint and HingeJoint
2013-09-30 23:34:47 +02:00
Daniel Chappuis
b5ae655b0a
Add comments, modify method names, change solver nb of iterations, ...
2013-09-27 18:43:45 +02:00
Daniel Chappuis
97b0903a9d
Modify comments
2013-09-25 00:11:23 +02:00
Daniel Chappuis
7ca5b88ce3
Fix compilation errors on Mac OS X and remove the compilation of freeglut from the CMake files
2013-09-12 22:45:43 +02:00
Daniel Chappuis
07df001e8b
Add the EventListener class
2013-09-10 21:33:52 +02:00
Daniel Chappuis
d4c7eee175
Rename the Constraint class into Joint and do not perform collision detection between two sleeping bodies
2013-09-07 10:57:58 +02:00
Daniel Chappuis
a009debf21
Fix issue in the contact solver that reduces jittering
2013-09-03 19:31:50 +02:00
Daniel Chappuis
8db7823433
Continue to implement the sleeping technique
2013-09-03 19:30:43 +02:00
Daniel Chappuis
475ec5be5f
Iterate over the islands to solve the contacts and joints
2013-08-31 19:03:21 +02:00
Daniel Chappuis
f1d29b5123
Implement the islands computation
2013-08-26 21:28:48 +02:00
Daniel Chappuis
2e6f571b98
Implement linear and angular velocity damping
2013-08-06 20:51:56 +02:00
Daniel Chappuis
d2f7f6e28c
Release memory in the Sweep-And-Prune algorithm when several objects are removed from the world
2013-07-17 00:09:15 +02:00
Daniel Chappuis
828af79bcf
Fix issues in the Sweep-And-Prune algorithm (thanks Aleksi for reporting them) and handle the broad-phase world limits in a better way
2013-07-16 22:28:03 +02:00
Daniel Chappuis
ffd79a89e3
Add the convex mesh collision shape
2013-07-15 19:10:30 +02:00
Daniel Chappuis
c3f4355c25
Modify the method that return the bounds of a collision shape and make the getSupportPoint() methods non-const
2013-07-15 19:09:07 +02:00
Daniel Chappuis
88504bbb44
Add some description comments in the collision shapes
2013-07-10 00:22:40 +02:00
Daniel Chappuis
25b6b015b8
Add some private copy-constructors and private assignment operators
2013-07-10 00:21:31 +02:00
Daniel Chappuis
9d9142af30
Add the CapsuleShape class for the capsule collision shape
2013-07-10 00:18:55 +02:00
Daniel Chappuis
e081661d8c
Add the Material class to store the material properties of a rigid body
2013-07-10 00:17:14 +02:00
Daniel Chappuis
a3ca3598d5
Remove the margin gap for the BoxShape and make possible to choose the collision margin when creating a collision shape
2013-07-03 22:50:00 +02:00
Daniel Chappuis
84d946ac48
Modifications of the examples
2013-07-03 22:42:58 +02:00
Daniel Chappuis
501b0747d3
Modifications in the examples
2013-07-02 23:14:08 +02:00
Daniel Chappuis
d58db2e6f2
Remove the gravity from the rigid body external force and allow the user to enable/disable the gravity for each body
2013-06-27 19:53:13 +02:00
Daniel Chappuis
ce0078c2a9
Implement the non-linear-gauss-seidel position error correction
2013-06-26 22:28:31 +02:00
Daniel Chappuis
1c0726d9d6
Add the fixed joint
2013-06-12 20:43:54 +02:00
Daniel Chappuis
c4d6206ee2
Finish the implementation of the Hinge joint and some others modifications
2013-06-09 16:31:01 +02:00
Daniel Chappuis
9c0844cf1b
Finish the implementation of the slider joint
2013-05-29 22:45:02 +02:00
Daniel Chappuis
61562b3560
Implement the upper limit for the slider joint
2013-05-23 22:52:08 +02:00
Daniel Chappuis
c7aa6e7e0e
Start working of the SliderJoint limits
2013-05-22 23:38:30 +02:00
Daniel Chappuis
78abbaac72
Fix issues in the BallAndSocketJoint and SliderJoint
2013-05-21 23:03:14 +02:00
Daniel Chappuis
8f37d4ac98
Fix issues in the unit tests for Vector2 and Matrix2x2
2013-05-16 21:42:13 +02:00
Daniel Chappuis
0f17bd1b0b
continue working on the slider joint
2013-05-12 12:43:07 +02:00
Daniel Chappuis
f23096af50
modify code in the Matrix2x2 class
2013-05-09 19:47:09 +02:00
Daniel Chappuis
7a2c2bdbd5
Add Vector2 and Matrix2x3 classes
2013-05-09 19:02:09 +02:00
Daniel Chappuis
b87f981827
Start working on the slider joint
2013-05-08 23:33:04 +02:00
Daniel Chappuis
da78e5d79a
Modifications in the BallAndSocketJoint to make it work
2013-05-04 09:20:53 +02:00
Daniel Chappuis
af2fcaeb82
Fix two issues
2013-05-02 23:55:10 +02:00
Daniel Chappuis
0071ed16a8
Add comments in the dynamics world code
2013-05-02 22:51:31 +02:00
Daniel Chappuis
c4eee4fb1f
Implement the Ball-And-Socket joint
2013-05-02 22:41:57 +02:00
Daniel Chappuis
fdda0b26a9
Modify the contact solver so that its main loop is outside the solver
2013-04-25 22:34:20 +02:00
Daniel Chappuis
ded465c105
Remove a file
2013-04-24 22:29:31 +02:00
Daniel Chappuis
2b2143d41e
Continue the implementation of the constraint solver
2013-04-24 19:24:28 +02:00
Daniel Chappuis
471e4f7afc
Start to implement the joints
2013-04-22 23:32:52 +02:00
Daniel Chappuis
f692f7ef12
Allocate memory for the collision shapes inside the physics engine
2013-04-22 21:25:40 +02:00
Daniel Chappuis
16c6487796
Change #ifndef names in headers to avoid name collision with others libraries
2013-04-18 22:54:36 +02:00
Daniel Chappuis
91908c1bbc
Continue to implement the examples using the openg-framework
2013-04-18 22:22:45 +02:00
Daniel Chappuis
e03888ea25
Finish the implementation of the memory allocator
2013-04-01 23:43:50 +02:00
Daniel Chappuis
f784dfb320
Start to implement the memory allocator
2013-03-26 23:04:03 +01:00
Daniel Chappuis
f479c5edf3
Finish the implementation of the profiler
2013-03-26 21:37:55 +01:00
Daniel Chappuis
aa9bd2098d
Continue to work on the profiler
2013-03-24 19:45:48 +01:00
Daniel Chappuis
88e680e8e7
Add profiler files
2013-03-21 23:52:44 +01:00
Daniel Chappuis
17e976ab6c
Fix some compilations errors on Linux
2013-03-20 22:41:53 +01:00
Daniel Chappuis
f38803d75a
Fix some warnings
2013-03-17 17:07:09 +01:00
Daniel Chappuis
dac5a2729a
Do not compute the AABB of a sphere by rotating its extents
2013-03-14 22:47:59 +01:00
Daniel Chappuis
6731ed8be0
Merge branch test_mathematics into develop
2013-03-13 22:51:27 +01:00
Daniel Chappuis
409bbdaba5
Add header in the ContactSolver.cpp file
2013-03-13 20:56:53 +01:00
Daniel Chappuis
669ca8ecca
Add methods in the mathematics classes
2013-03-13 20:55:10 +01:00
Daniel Chappuis
999bef7c8d
Add definition to avoid redefinition of min() and max() macros when including windows.h on Windows
2013-03-09 08:39:09 +01:00
Daniel Chappuis
8107bbab8e
Modify the epsilon parameter of the approxEqual() method
2013-03-09 08:37:40 +01:00
Daniel Chappuis
bd0561acd9
Remove the isParallelWith() method in Vector3
2013-03-09 08:37:10 +01:00
Daniel Chappuis
04a31c696c
Add Doxygen documentation into the code
2013-03-05 23:09:50 +01:00
Daniel Chappuis
03cddcf568
Access std::map using find() method
2013-03-03 16:36:07 +01:00
Daniel Chappuis
b43f875cef
Improve GJK robustness for spheres by integrating the radius into the object margin
2013-03-03 16:24:46 +01:00
Daniel Chappuis
5a373cf27b
Clean the code and modify the date in the license text
2013-03-02 16:26:18 +01:00
Daniel Chappuis
4346a16f62
Replace the 0 constant by the NULL pointer in CollisionDetection.cpp
2013-02-28 23:18:48 +01:00
Daniel Chappuis
db23fd0000
Merge branch 'develop' of https://code.google.com/p/reactphysics3d into develop
2013-02-28 22:40:06 +01:00
Daniel Chappuis
ef93134c79
Make some modifications in the mathematics library
2013-02-28 20:03:37 +01:00
Daniel Chappuis
31e6ed2d8a
Replace the 0 constant by NULL when using pointers
2013-02-28 19:50:52 +01:00
Daniel Chappuis
fe88e68e73
Improve robustness by using correct machine epsilon value test
2013-02-27 23:10:54 +01:00
Daniel Chappuis
cdc384db68
Make possible to access Vector3 members by using x,y and z instead of getX(), getY() and getZ()
2013-02-27 22:10:10 +01:00
Daniel Chappuis
a362171532
Clean the code of the sequential impulse contact solver
2013-02-26 22:43:45 +01:00
Daniel Chappuis
9e499be150
Move the constrained velocities outside the contact solver
2013-02-26 08:15:58 +01:00
Daniel Chappuis
aa236286de
Remove files
2013-02-19 23:16:48 +01:00
Daniel Chappuis
e84f6468c8
Clean the code
2013-02-19 23:16:20 +01:00
Daniel Chappuis
0695b30704
Make possible to solve the friction constraints at the center of the contact manifold
2013-02-16 16:14:04 +01:00
Daniel Chappuis
8cde68f5b9
Implement the split impulse technique for position correction
2013-01-31 22:42:11 +01:00
Daniel Chappuis
d546d8208f
Use first friction vector in the direction of the tangential velocity
2013-01-27 10:38:41 +01:00
Daniel Chappuis
2d0da2cc1c
Clean up the code and change the warmstart() method
2013-01-17 23:13:18 +01:00
Daniel Chappuis
9cf672c51c
Don't use the contact.B_sp fields anymore in the solveLCP() method and fix bug with contact.r2CrossN that were not initialized in the constraint solver
2013-01-16 19:47:49 +01:00
Daniel Chappuis
5c941cf88b
Continue to implement the Sequential Impulse solver
2013-01-16 13:23:37 +01:00
Daniel Chappuis
1bcec415a1
Continue to transform PGS solver into the sequential impulse solver
2013-01-06 19:28:56 +01:00
Daniel Chappuis
e4d47ded09
Change the way we solve the linear system
2012-12-30 12:45:06 +01:00
Daniel Chappuis
a70e0655c5
Use Vector3 type into the a[] array
2012-12-29 14:15:07 +01:00
Daniel Chappuis
f2f168f6c8
Change the way to compute the inverse constraint matrix K for the friction constraints
2012-12-29 00:05:44 +01:00
Daniel Chappuis
158c19541b
Add methods to get the friction vectors of the contact
2012-12-26 02:18:51 +01:00
Daniel Chappuis
e64cac4571
Start to compute the inverse mass matrix K for the friction constraints
2012-12-26 02:15:49 +01:00
Daniel Chappuis
3872e9615c
Use unit friction vectors
2012-12-25 17:35:52 +01:00
Daniel Chappuis
91d148e311
Change the way to compute the inverse constraint matrix K for the penetration constraint
2012-12-25 13:03:06 +01:00
Daniel Chappuis
c8d216aafe
Use Vector3 inside the V1 array
2012-12-21 11:33:11 +01:00
Daniel Chappuis
d6b3b18aee
Use vectors in the Vconstraint array
2012-12-21 11:00:13 +01:00
Daniel Chappuis
d615f9af12
Separate code for bodies initialization and contact constraints initialization
2012-12-21 08:39:21 +01:00
Daniel Chappuis
7172ee4843
Loop over the contact manifolds in the constraint solver
2012-12-16 16:57:15 +01:00
Daniel Chappuis
3259f54558
Add the ContactManifold file
2012-12-12 19:28:52 +01:00
Daniel Chappuis
5e997f1c5c
Add the class Contact that contains the contact points between two bodies
2012-12-12 08:19:03 +01:00
Daniel Chappuis
2fc8beaa77
Fix two compilation errors
2012-12-11 23:09:54 +01:00
Daniel Chappuis
a0800ac33d
Start to replace PGS solver by sequential impulse and improve of persistent contact cache
2012-12-10 07:52:57 +01:00
Daniel Chappuis
4ca42f9392
Clean the code :
...
- Use the mVariable syntax for member variables
- Every lines contain at most 100 characters
- Add private copy-constructor and assignment operators when needed
2012-10-09 22:21:02 +02:00
Daniel Chappuis
fc37d40bbb
Remove the PhysicsEngine and PhysicsWorld classes and add the CollisionWorld and DynamicsWorld classes
2012-10-03 21:00:17 +02:00
Daniel Chappuis
4c0c285174
Add the BroadPhasePair class
2012-09-26 23:07:40 +02:00
Daniel Chappuis
2ed2b2a54f
Add the CollisionBody class
2012-09-18 22:09:49 +02:00
Daniel Chappuis
19f7925d47
Allow the MemoryPool class to start with zero allocated memory and grow when more memory is needed
2012-08-13 02:14:47 +02:00
Daniel Chappuis
fcac6457a7
Add documentation
2012-08-06 22:34:42 +02:00
Daniel Chappuis
29e5f2b7b4
Use the name CollisionShape instead of Collider for the collision shapes
2012-08-04 00:34:30 +02:00
Daniel Chappuis
c7faae9b20
Add the bodyindex type to represent the index number of a body
2012-08-02 23:33:56 +02:00
chappuis.daniel
63f887dc07
Add the PairManager class
...
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@467 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2012-07-25 21:35:27 +00:00
chappuis.daniel
cd47b3e617
Implementation of the array-based Sweep-And-Prune broad-phase collision detection algorithm from Pierre Terdiman
...
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@466 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2012-07-25 21:31:57 +00:00
chappuis.daniel
b013204b3f
Allocate the ContactInfo into a memory pool for better efficiency
...
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@465 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2012-01-28 21:03:30 +00:00
chappuis.daniel
b381388f87
Make possible to use a single collider for multiple rigid bodies
...
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@464 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2012-01-27 22:41:26 +00:00
chappuis.daniel
9333d0e690
Use a customize algorithm for Sphere vs Sphere collision detection instead of using GJK
...
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@463 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2012-01-25 22:57:27 +00:00
chappuis.daniel
401a60b74a
Rename shapes folder into colliders
...
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@461 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2012-01-18 23:17:44 +00:00