Commit Graph

213 Commits

Author SHA1 Message Date
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