Commit Graph

253 Commits

Author SHA1 Message Date
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
chappuis.daniel
c1eabd3e2b Add error correction using first world order projection (not active by default), change the Shape class into Collider class, add the new decimal type in order to easily switch between single and double precision
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@460 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2012-01-18 23:06:33 +00:00
chappuis.daniel
b82228d3ed Modifications before release
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@454 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-12-11 00:40:04 +00:00
chappuis.daniel
55c1168b5d Remove files that are not used anymore and rename the SweepAndPrune class
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@453 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-11-14 22:01:50 +00:00
chappuis.daniel
d762312d68 ReactPhysics3D is now under the ZLib license
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@452 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-11-13 17:49:03 +00:00
chappuis.daniel
29d9e60e93 Avoid negative penetration depth due to numerical errors in GJK algorithm
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@451 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-11-11 07:05:30 +00:00
chappuis.daniel
ab6865b3a1 Remove files that are not used anymore
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@450 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-11-10 23:54:42 +00:00
chappuis.daniel
5467e09020 Remove dynamic casting
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@449 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-11-10 23:21:45 +00:00
chappuis.daniel
9bfb44597f Optimization of the LCP Solver
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@448 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-11-09 20:18:32 +00:00
chappuis.daniel
38a8969c63 Change of the directory structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@446 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-10-18 22:51:29 +00:00
chappuis.daniel
5620b6e12e Change of the directory structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@445 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-10-18 22:25:44 +00:00
chappuis.daniel
58be3a3f3d Change of the directory structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@444 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-10-18 22:15:16 +00:00
chappuis.daniel
4049f6ae3b Add persistent contact caching in collision detection
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@443 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-10-18 22:03:05 +00:00
chappuis.daniel
c72bf4aeca Continuation of the MemoryPool class
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@442 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-09-16 22:41:41 +00:00
chappuis.daniel
0c7269d5ba Continuation of the MemoryPool class
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@441 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-09-08 21:24:50 +00:00
chappuis.daniel
10f46956b6 Use of platform specific time functions instead of clock() function to avoid cross-platform problems and for better accuracy
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@440 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-09-06 21:37:58 +00:00
chappuis.daniel
94e7153817 Add the PersistentContactCache and MemoryPool classes
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@439 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-09-03 11:58:42 +00:00
chappuis.daniel
6c6b6c6c86 Add a method to compute the inertia tensor from the collision shape of the rigid body
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@438 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-08-23 21:53:01 +00:00
chappuis.daniel
40ec21b398 Changes and optimizations in the Vector3 and Matrix3x3 classes
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@437 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-08-18 21:02:48 +00:00
chappuis.daniel
03557bbff6 Changes in the Contact class
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@436 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-08-10 16:49:38 +00:00
chappuis.daniel
d9452e727c Use a quaternion instead of a matrix in the Transform
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@435 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-08-08 21:41:07 +00:00
chappuis.daniel
00b9fc45dc Correction of a bug in collision detection and creation of new collision shapes
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@434 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-08-05 17:35:01 +00:00
chappuis.daniel
0de337cfe5 changes in the code structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@433 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-07-10 17:56:00 +00:00
chappuis.daniel
a04db140bf changes in the code structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@432 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-07-10 17:31:19 +00:00
chappuis.daniel
5b30979de9 changes in the code structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@431 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-07-10 17:25:44 +00:00
chappuis.daniel
1d5a8e2491 Change the code structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@430 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-07-09 16:58:50 +00:00
chappuis.daniel
bd5d0fb230 Add Transform and changes in code design
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@429 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-06-30 20:25:34 +00:00
chappuis.daniel
bf8f9cf482 Add Transform and changes in code design
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@428 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-06-30 20:23:01 +00:00
chappuis.daniel
1e3543752f Add ConeShape
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@427 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-06-30 20:12:37 +00:00
chappuis.daniel
23d0cd699f Continuation of EPA algorithm
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@426 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-06-08 21:22:47 +00:00
chappuis.daniel
436bdaf255 Correction of a bug in EPA algorithm
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@425 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-05-25 23:04:48 +00:00
chappuis.daniel
867f940102 implementation of GJK and EPA collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@424 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-05-18 21:34:39 +00:00
chappuis.daniel
fce32c78e2 implementation of GJK and EPA collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@423 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-19 19:38:08 +00:00
chappuis.daniel
6a6f55b763 implementation of GJK and EPA collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@422 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-19 10:19:59 +00:00
chappuis.daniel
08ccec586a implementation of GJK and EPA collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@421 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-18 10:36:29 +00:00
chappuis.daniel
cd5fda4396 implementation of GJK and EPA collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@420 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-11 14:51:09 +00:00
chappuis.daniel
3fd0610925 implementation of GJK and EPA collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@419 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-07 18:27:11 +00:00
chappuis.daniel
4ed45d43ed implementation of GJK and EPA collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@418 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-07 15:09:45 +00:00
chappuis.daniel
844df20be0 Implementation of EPA Algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@417 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-07 14:51:54 +00:00
chappuis.daniel
fdbb661df5 implementation of GJK collision detection algorithm continued
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@416 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-02-01 11:03:54 +00:00
chappuis.daniel
2acf563508 Add the Simplex class
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@415 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-01-29 17:48:48 +00:00
chappuis.daniel
922a462f8c Add the BoundingSphere class
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@414 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-01-18 09:43:06 +00:00
chappuis.daniel
38a7abe4b6 Update of the main header
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@411 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-01-14 16:04:18 +00:00
chappuis.daniel
22cde3cef5 Bug corrected (found by fadilo)
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@409 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2011-01-14 11:18:44 +00:00
chappuis.daniel
c57651a789 Several optimizations and cosmetic modifications
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@408 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-16 20:56:09 +00:00
chappuis.daniel
7762d3daca Add the constants.h file
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@407 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-16 10:11:41 +00:00
chappuis.daniel
6b4e5c0fa2 Optimizations in the constraint solver
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@406 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-14 20:03:36 +00:00
chappuis.daniel
ddf602c125 Optimizations in the constraint solver
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@405 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-14 19:30:24 +00:00
chappuis.daniel
9fd3d8b598 Now we can use a single Contact for several contact points between two bodies
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@404 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-11 16:25:43 +00:00
chappuis.daniel
d035661e82 Change in the repository structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@402 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-09 22:41:01 +00:00
chappuis.daniel
dde4183d36 Change in the repository structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@401 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-09 22:39:00 +00:00
chappuis.daniel
a5276ddcbb Change in the repository structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@400 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-09 22:35:18 +00:00
chappuis.daniel
869c48db42 Change in the repository structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@399 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-09 22:29:02 +00:00
chappuis.daniel
2b3b1bff0a Change in the repository structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@398 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-09 22:27:01 +00:00
chappuis.daniel
587d2e0db2 Change in the repository structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@397 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-09 22:24:42 +00:00
chappuis.daniel
78ea7b891d Change in the repository structure
git-svn-id: https://reactphysics3d.googlecode.com/svn/trunk@395 92aac97c-a6ce-11dd-a772-7fcde58d38e6
2010-09-09 22:06:57 +00:00