Commit Graph

710 Commits

Author SHA1 Message Date
Daniel Chappuis
b39bb3ba37 Initialize the timestep in the DynamicsWorld constructor 2017-11-08 21:14:21 +01:00
Daniel Chappuis
e91cded831 Update code documentation and fix warnings 2017-11-05 23:15:47 +01:00
Daniel Chappuis
6e322882eb Fix wrong world AABB computation that caused broad-phase collision misses 2017-11-05 23:10:55 +01:00
Daniel Chappuis
fd427c0337 Fix compilation errors because of removed files 2017-11-03 07:11:19 +01:00
Daniel Chappuis
002264a5a1 Remove unused files 2017-11-02 23:01:32 +01:00
Daniel Chappuis
ad0f805f53 Fix robustness issue in SAT Algorithm (convex polyhedron vs capsule) 2017-11-01 23:09:02 +01:00
Daniel Chappuis
6a69ef76c5 Fix issue with ProxyShape::mBroadPhaseId not set when body was sleeping or inactive 2017-11-01 23:07:56 +01:00
Daniel Chappuis
5da57a96c8 Fix issue with sphere and capsule SAT collision detection 2017-10-24 22:47:35 +02:00
Daniel Chappuis
cdaa297a78 Remove unused variable 2017-10-19 17:19:33 +02:00
Daniel Chappuis
c1295f1d7a Remove contactNormaldId attribute and fix typo 2017-10-19 07:26:11 +02:00
Daniel Chappuis
cdec7413c5 Improve capsule resting on another shape stability 2017-10-18 21:26:53 +02:00
Daniel Chappuis
0250d8c4bd Fix issue in SAT algorithm 2017-10-18 19:35:20 +02:00
Daniel Chappuis
de494bb0fd Changes and bug fixes in ContactManifold and ContactManifoldSet 2017-10-18 00:41:32 +02:00
Daniel Chappuis
d5617526ff Modify the policy to drop contact manifolds. First drop the old ones before the new ones 2017-10-12 20:07:39 +02:00
Daniel Chappuis
4a37ba3994 Add unit tests for the TriangleVertexArray 2017-10-09 23:34:35 +02:00
Daniel Chappuis
37e2c79cf2 Fix issue in ContactManifoldSet 2017-10-09 22:41:45 +02:00
Daniel Chappuis
38eff07d0d Fix issue and small changes in TriangleVertexArray 2017-10-09 22:36:39 +02:00
Daniel Chappuis
d62aa41974 Fix issue in ContactManifoldSet 2017-10-04 22:38:39 +02:00
Daniel Chappuis
cbfeb608df Fix bug and clean the pointers casting in TriangleVertexArray 2017-10-04 22:38:14 +02:00
Daniel Chappuis
310fef1c52 Fix issue with middle phase collision detection (AABB not computed in correct space) 2017-09-28 08:34:45 +02:00
Daniel Chappuis
b33b8e0dc5 Fix issue in SAT algorithm between polyhedron and capsule 2017-09-25 23:06:17 +02:00
Daniel Chappuis
643c781fa0 Fix issues with smooth triangle contact 2017-09-21 22:44:42 +02:00
Daniel Chappuis
63833621a0 Fix issue with triangle shape normal computation 2017-09-12 23:25:21 +02:00
Daniel Chappuis
709bed3cec Fix issues with GJK algorithm 2017-09-09 15:37:55 +02:00
Daniel Chappuis
8cb2ec7e17 Remove wrong assert 2017-09-08 07:38:57 +02:00
Daniel Chappuis
b890773053 Fix issue when computing clipping planes in SAT algorithm 2017-09-07 22:24:30 +02:00
Daniel Chappuis
1b82a3e228 Fix issue in GJK algorithm when numerical issue occurs 2017-09-07 22:23:00 +02:00
Daniel Chappuis
dd91f6dcbf Fix typo 2017-09-04 22:23:29 +02:00
Daniel Chappuis
95ade79af5 Fix issue with obsolete contact points that were not removed 2017-09-04 21:23:07 +02:00
Daniel Chappuis
501bca5e3d Fix issue in TriangleVertexArray 2017-09-04 07:26:01 +02:00
Daniel Chappuis
946e62dd4b Remove unnecessary collision margin for some shapes 2017-09-03 19:06:02 +02:00
Daniel Chappuis
8bab9c1348 Remove unused cachedCollisionData parameter 2017-09-03 18:05:23 +02:00
Daniel Chappuis
e1602f2b27 Fix issues with normals computation in TriangleVertexArray 2017-09-03 17:35:09 +02:00
Daniel Chappuis
6a22b3a81d Fix temporal coherence in SAT algorithm between two convex polyhedra 2017-09-03 10:48:39 +02:00
Daniel Chappuis
673e487f14 Remove temporal coherence from SAT for sphere vs polyhedron and capsule vs polyhedron 2017-09-01 07:37:45 +02:00
Daniel Chappuis
9b89f66667 Fix issues and refactor collision shape type and collision shape name 2017-08-31 23:11:00 +02:00
Daniel Chappuis
a655ffb462 Fix issue in ContactManifoldSet.cpp 2017-08-31 22:42:19 +02:00
Daniel Chappuis
624e01b595 Working on ConcaveMeshShape and HeightFieldShape collision detection 2017-08-21 07:35:08 +02:00
Daniel Chappuis
319cc72cde Fix issues in collision detection 2017-08-18 17:50:27 +02:00
Daniel Chappuis
2f60190942 Do not generate contact in GJK algorithm if not needed 2017-08-01 15:57:46 +02:00
Daniel Chappuis
b6ad69b278 Do not compute contacts if not necessary 2017-07-30 23:56:20 +02:00
Daniel Chappuis
8b82c4ac81 Refactor the way to create the contact manifolds and contact points 2017-07-30 22:14:46 +02:00
Daniel Chappuis
6eec956eb0 Fix issues in SAT algorithm between two convex polyhedra 2017-07-21 08:09:43 +02:00
Daniel Chappuis
ddd7f500a6 Fix issues in SAT algorithm 2017-07-17 18:35:51 +02:00
Daniel Chappuis
6e9a84823a Fix issues in collision detection 2017-07-17 08:05:40 +02:00
Daniel Chappuis
462fc1dfae Merge joint bug fix into develop 2017-07-04 07:10:10 +02:00
jorrit
1855e1c121 Fixed bug in FixedJoint and SliderJoint when objects initially have a different rotation. In solvePositionConstraint the error was calculated wrongly causing incorrect simulation. 2017-07-03 19:21:44 +02:00
Daniel Chappuis
2f43e554b5 Make TriangleShape inherits from ConvexPolyhedronShape 2017-06-06 21:12:26 +02:00
Daniel Chappuis
95db87fd62 Working on contacts reduction 2017-06-05 00:05:49 +02:00
Daniel Chappuis
b1597c508f Working on temporal coherence in SAT algorithm 2017-05-31 07:36:39 +02:00
Daniel Chappuis
6b0ba1cfbb Fix issues in collision detection 2017-05-29 22:30:30 +02:00
Daniel Chappuis
730b687877 Working on temporal coherence in SAT (polyhedron vs polyhedron) 2017-05-29 08:32:10 +02:00
Daniel Chappuis
2af87d4804 Add bias to prefer some axis when penetration depths are the same in SAT algorithm 2017-05-16 07:42:04 +02:00
Daniel Chappuis
0ec21e36b9 Working on SAT algorithm between two polyhedra 2017-05-16 07:10:44 +02:00
Daniel Chappuis
7fb6f49149 Working on capsule vs polyhedron narrow-phase algorithm 2017-04-28 21:40:16 +02:00
Daniel Chappuis
f61fea8b8a Add clippling segment/polygons methods, fix issues and add convex vs capsule algorithm 2017-04-16 22:09:59 +02:00
Daniel Chappuis
57da79492f Add sphere vs convex polyhedron test in SAT algorithm 2017-04-02 00:33:29 +02:00
Daniel Chappuis
951ba3e42c Working on ConvexPolyhedron class 2017-03-30 22:39:06 +02:00
Daniel Chappuis
a9b3afae59 Finish implementing capsule vs capsule narrow-phase algorithm 2017-03-28 23:07:10 +02:00
Daniel Chappuis
050e8b36dc Refactor convex mesh shape (create PolyhedronMesh, ConvexPolyhedron classes) 2017-03-22 19:07:31 +01:00
Daniel Chappuis
b21a6bb59b Refactor contact manifold and contact point creation 2017-02-26 13:48:50 +02:00
Daniel Chappuis
6a01abfae8 Fix issues, work on HalfEdgeStructure and add unit tests 2017-02-20 17:11:13 +02:00
Daniel Chappuis
7a656aedc9 Working on HalfEdgeStructure 2017-02-13 22:38:47 +01:00
Daniel Chappuis
30e0132e15 Add capsule/capsule and capsule/sphere collision algorithm 2017-02-02 23:10:01 +01:00
Daniel Chappuis
e9f2f94f64 Continue working on SAT, remove Cone and Cylinder shapes 2017-02-02 22:58:40 +01:00
Daniel Chappuis
e491e38146 Fix issue in collision detection 2017-01-27 20:26:56 +01:00
Daniel Chappuis
99eb7cf82c Fix issue in collision detection 2017-01-19 21:27:58 +01:00
Daniel Chappuis
a50ae73663 Fix issue in GJK algorithm 2017-01-19 20:29:40 +01:00
Daniel Chappuis
f2a6dde913 Fix return value in EPA Algorithm 2017-01-18 23:05:43 +01:00
Daniel Chappuis
4a97c2ca97 Refactor collision detection 2017-01-08 19:56:59 +01:00
Daniel Chappuis
f82777bd3b Refactor some methods in ContactPoint 2016-11-05 19:20:54 +01:00
Daniel Chappuis
16d27f40b9 Remove bodies pointer from ContactPoint 2016-11-03 18:06:45 +01:00
Daniel Chappuis
b3d24e4299 Cache some calculation in contact solver 2016-10-23 20:04:52 +02:00
Daniel Chappuis
cc6d3d621d Add profiling data 2016-10-20 19:16:55 +02:00
Daniel Chappuis
ce06a4b935 Change fixed size data types 2016-10-17 22:41:58 +02:00
Daniel Chappuis
14bfb0aca4 Some optimizations in contact solver 2016-10-17 22:41:33 +02:00
Daniel Chappuis
81426293e0 Remove unused variables in contact solver 2016-10-16 23:18:42 +02:00
Daniel Chappuis
d04cee7d0a Change the way to iterate over contacts 2016-10-16 15:40:38 +02:00
Daniel Chappuis
58ae61d6aa Remove Impulse class 2016-10-11 20:08:47 +02:00
Daniel Chappuis
7b5dce927e Fix issue with split impulse and refactor contact solver 2016-10-10 23:30:32 +02:00
Daniel Chappuis
a4a141483b Remove init contact constraint method 2016-10-08 23:04:22 +02:00
Daniel Chappuis
3ab2b8608c Always solve friction at the center of the manifold and always use warmstarting 2016-10-08 16:58:28 +02:00
Daniel Chappuis
25fddd6fb2 Back to previous contact solver 2016-10-08 01:18:56 +02:00
Daniel Chappuis
54be20c5d3 Increase the default size of the single frame memory allocator 2016-10-02 15:10:19 +02:00
Daniel Chappuis
c597815191 Remove unecessary variables in constraints and cache inverse inertia world tensor of bodies 2016-09-26 22:51:30 +02:00
Daniel Chappuis
8f4979f4a2 Allocate memory in the SingleFrameAllocator in the update() method 2016-09-22 23:24:03 +02:00
Daniel Chappuis
e014f00afc Refactor memory allocator and refactor contact solver 2016-09-21 22:03:45 +02:00
Daniel Chappuis
92460791e6 Refactor PoolAllocator and add SingleFrameAllocator 2016-09-21 22:01:14 +02:00
Daniel Chappuis
1a26241fa8 Fix issue in contact solver 2016-09-16 20:02:38 +02:00
Daniel Chappuis
b4f13308de Optimize warmstarting in contact solver 2016-09-13 22:58:17 +02:00
Daniel Chappuis
e069a25f08 Start refactoring the contact solver 2016-09-10 11:18:52 +02:00
Daniel Chappuis
5b17652adb Merge branch 'develop' into optimization 2016-08-21 20:49:22 +02:00
Daniel Chappuis
2f195c6106 Fix compilation error on gcc 2016-08-21 20:44:29 +02:00
Daniel Chappuis
123cd93f38 Fix compilation error on gcc 2016-08-21 20:37:58 +02:00
Daniel Chappuis
6f8d9586c7 Fix compilation error on gcc 2016-08-21 20:25:50 +02:00
Daniel Chappuis
0a7eeaeb48 Fix compilation error on gcc 2016-08-21 19:32:14 +02:00
Daniel Chappuis
8a69dc89fa Add missing override keyword 2016-08-21 12:34:27 +02:00
Daniel Chappuis
8d2b898168 Fix merge conflicts 2016-08-21 11:47:22 +02:00
Daniel Chappuis
2932403ff4 Use default keyword for default constructors/destructors 2016-07-19 06:52:18 +02:00
Daniel Chappuis
cfede8f179 Use constexpr for compile time constants 2016-07-11 08:59:39 +02:00
Daniel Chappuis
16478722de Use override keyword to mark virtual overriden methods 2016-07-11 08:33:24 +02:00
Daniel Chappuis
f5ade0f52d Fix virtual constructors, use c++11 scoped enums, use c++11 delete methods instead of private constructors 2016-07-08 07:25:37 +02:00
Daniel Chappuis
be957ba41a Replace typedefs by c++11 alias declaration 2016-07-06 07:05:34 +02:00
Daniel Chappuis
9cc633fc67 Modify initial GJK support direction 2016-07-06 06:48:19 +02:00
Daniel Chappuis
da9f6ae233 Remove Simplex class (replaced by VoronoiSimplex) 2016-07-05 22:02:16 +02:00
Daniel Chappuis
4bad013c91 Make GJK/EPA collision detection more robust 2016-07-05 21:34:44 +02:00
Daniel Chappuis
ccd33c2502 Fix issue in VoronoiSimplex 2016-06-27 18:50:12 +02:00
Daniel Chappuis
fd224ebaba Add VoronoiSimplex class for GJK algorithm 2016-06-20 08:41:22 +02:00
Daniel Chappuis
9fae1b4e35 Add missing virtual destructor 2016-06-20 08:40:26 +02:00
Daniel Chappuis
942b63b48d Replace NULL pointer by nullptr 2016-05-19 22:47:19 +02:00
Daniel Chappuis
c3e74856a0 Fix assert raised in empty scene 2016-05-18 22:30:20 +02:00
Daniel Chappuis
ae7bec43c4 Allow for zero mass rigid body 2016-05-18 21:39:11 +02:00
Daniel Chappuis
6a8b63adc2 ProxyShape must have a virtual destructor 2016-05-15 19:29:50 +02:00
Daniel Chappuis
2640fbd48a Start replacing NULL constant by nullptr 2016-05-15 19:25:58 +02:00
Daniel Chappuis
1ae9bb5467 Fix warning 2016-04-12 21:32:35 +02:00
Daniel Chappuis
34b330eb4f Fix warnings 2016-04-12 21:28:09 +02:00
Daniel Chappuis
4ae8d446be Fix compilation errors on Visual Studio and warnings 2016-04-12 18:44:55 +02:00
Daniel Chappuis
d9087d6e84 Small modification 2016-04-11 21:38:47 +02:00
Daniel Chappuis
8a75c867a5 Change version number of the library 2016-04-11 20:15:20 +02:00
Daniel Chappuis
41dfaf0fa5 Fix warnings 2016-04-09 11:26:43 +02:00
Daniel Chappuis
5b7a096e27 Remove .mtl file and add doxygen documentation in TriangleVertexArray 2016-04-07 08:48:25 +02:00
Daniel Chappuis
fcadbed56f Fix issue in function to compute triangle barycentric coordinates 2016-04-02 02:50:32 +02:00
Daniel Chappuis
235b1db90c Fix warnings 2016-03-30 22:39:47 +02:00
Daniel Chappuis
315c701f34 Move method in cpp file 2016-03-30 07:09:35 +02:00
Daniel Chappuis
fc1f844135 Merge branch nanogui into develop 2016-03-21 20:57:42 +01:00
Daniel Chappuis
3e98ab2282 Add support for rolling resistance in the contact solver 2016-03-20 23:01:38 +01:00
Daniel Chappuis
10549796c8 Add functions in Vector2, Vector3 and clamp vector function in mathematics 2016-03-20 22:54:08 +01:00
Daniel Chappuis
63fb6261a3 Fix issue with linear/angular damping 2016-03-20 22:53:05 +01:00
Daniel Chappuis
d0481e0901 Fix compilation errors/warnings on Linux 2016-02-22 23:26:50 +01:00
Daniel Chappuis
d6580f94aa Fix conflicts when merging triangularmeshes into develop 2016-02-15 20:14:30 +01:00
Daniel Chappuis
32bee688be Working on demo scenes in testbed application 2016-02-14 19:36:56 +01:00
Daniel Chappuis
eeb1052833 Fix issue in HeightField and user Perlin noise to generate terrain 2016-02-11 23:09:01 +01:00
Daniel Chappuis
4931e1450a Fix issues in HeightFieldShape 2016-02-08 22:24:57 +01:00
Daniel Chappuis
be4cbbffd9 Fix issue in HeightFieldShape 2016-02-01 18:49:45 +01:00
Daniel Chappuis
ece6db9636 Working on HeightFieldShape 2016-01-28 23:04:01 +01:00
Daniel Chappuis
03a31e44f3 Working on HeightFieldShape 2016-01-21 22:27:52 +01:00
Daniel Chappuis
b9112be1dc Modification in ConvexShape and continue working on HeightFieldShape 2016-01-19 22:37:03 +01:00
Daniel Chappuis
ec3a9cef87 Modificaitons in ConcaveMeshShape 2016-01-14 21:43:19 +01:00
Daniel Chappuis
b7769e5211 Add HeightFieldShape class 2016-01-14 21:34:30 +01:00
Daniel Chappuis
739e0fec73 Modifications in methods to get support point in many collision shapes 2016-01-14 21:24:21 +01:00
Daniel Chappuis
a5f39de375 Fix issues related to local scaling in ConvexMeshShape 2016-01-12 22:48:14 +01:00
Daniel Chappuis
a12703b86d Make possible to create a ConvexMeshShape using a TriangleVertexArray 2016-01-07 23:04:39 +01:00
Daniel Chappuis
8be408ccec Modifications for smooth concave mesh contacts 2016-01-05 18:39:22 +01:00
Daniel Chappuis
4362033018 Add object margin to TriangleShape 2015-12-16 18:39:13 +01:00
Daniel Chappuis
0b6d9af18e Add testRayIntersect() method to AABB and use in raycasting broadphase 2015-12-07 23:03:04 +01:00
Daniel Chappuis
df88e59017 Transform ray from world-space to local-space earlier during raycasting 2015-12-07 17:32:18 +01:00
Daniel Chappuis
9c7f70b9b7 Add double sided raycast test for TriangleShape, add unit tests 2015-12-05 17:51:07 +01:00
Daniel Chappuis
6ebad66acf Working on triangles mesh raycasting 2015-12-02 22:25:52 +01:00
Daniel Chappuis
3ebb00fd68 Modifications in testbed for setScaling() method on objects 2015-11-24 07:03:02 +01:00
Daniel Chappuis
22b214fb91 Add setScaling() method to objects in testbed/common 2015-11-20 07:20:56 +01:00
Daniel Chappuis
3476f3e9c4 Add setLocalScaling() method to CollisionShape and ProxyShape and fix issue in collision detection test method 2015-11-19 07:20:43 +01:00
Daniel Chappuis
4eceb7e7c6 Small modifications 2015-11-16 19:08:36 +01:00
Daniel Chappuis
5c8320583d Change the testCollision() methods to return void instead of bool 2015-11-16 07:25:46 +01:00
Daniel Chappuis
32d9c0e1b8 Fix issue in convex vs concave mesh collision 2015-11-16 07:05:07 +01:00
Daniel Chappuis
568f03461f Continue working on triangle mesh collision detection 2015-11-13 21:23:34 +01:00
Daniel Chappuis
9fd98f8efc Add Timer.h and Timer.cpp files back (used for Profiler) 2015-11-13 21:20:04 +01:00
Daniel Chappuis
d9fe3ed97f Make DynamicAABBTree more generic and use less memory per node 2015-11-06 17:29:42 +01:00
Daniel Chappuis
63094dfd92 Fix issue in ConcaveMeshShape (AABB calculation) 2015-10-27 18:34:29 +01:00
Daniel Chappuis
1c735e483c Working on triangular mesh collision detection 2015-10-26 18:15:25 +01:00
Daniel Chappuis
a070dca761 Small changes in ContactManifold 2015-10-19 17:59:41 +02:00
Daniel Chappuis
c3c9a5c38c Remove contact manifolds that do not have contact points anymore after manifold update 2015-10-19 06:55:35 +02:00
Daniel Chappuis
b5314040b5 Do not use contact normal choice when there is a single manifold 2015-10-16 06:54:25 +02:00
Daniel Chappuis
55789d5cdf Fix memory leak 2015-10-15 08:26:33 +02:00
Daniel Chappuis
85c6a2eaf5 Return manifold set by reference and not by pointer 2015-10-15 07:48:28 +02:00
Daniel Chappuis
20c9794a20 Remove ProxyShapes pointers from OverlappingPair 2015-10-13 19:10:13 +02:00
Daniel Chappuis
3acdeb8cd2 Remove dynamic memory allocation of ContactPointInfo instances during narrow-phase 2015-10-12 18:37:18 +02:00
Daniel Chappuis
c7846d4a29 Report narrow-phase contacts to the collision detection in a more generic way 2015-10-12 18:02:18 +02:00
Daniel Chappuis
ec5e41c19e Add ContactManifoldSet to allow several ContactManifolds per overlapping pair 2015-10-08 21:28:37 +02:00
Daniel Chappuis
fc91540a79 Add ContactManifoldSet class 2015-10-02 07:04:05 +02:00
Daniel Chappuis
aab1413f4d Continue working of triangular meshes 2015-09-13 13:02:05 +02:00
Daniel Chappuis
a37f00c41c Use a CollisionShapeInfo instead of a ProxyShape in the collision detection algorithms 2015-09-10 07:30:50 +02:00
Daniel Chappuis
cd808fcf62 Modify the way the collision shapes are created (we don't make an internal copy anymore) 2015-09-04 19:56:27 +02:00
Daniel Chappuis
ae122f07d6 Add ConcaveShape et ConvexShape classes 2015-08-31 17:33:34 +02:00
Daniel Chappuis
16617fef8e Merge branch 'develop' of https://github.com/ColinGilbert/reactphysics3d into ColinGilbert-develop 2015-08-27 22:32:18 +02:00
Daniel Chappuis
0ddec3f842 Start working on triangular meshes collision detection 2015-08-27 22:31:05 +02:00
Colin
22d90659bb Final fix :) 2015-08-26 04:30:07 -06:00
Colin
494f866357 Fix merge mess 2015-08-26 04:23:44 -06:00
Colin
87b88fc953 Merge branch 'develop' of https://www.github.com/DanielChappuis/reactphysics3d into develop 2015-08-26 04:01:18 -06:00
Colin
1468f8f13c Replace dynamic_cast with static_cast 2015-08-24 13:36:30 -06:00
Daniel Chappuis
c76e5247aa Allow the user to use custom collision detection algorithm 2015-08-19 18:48:08 +02:00
Daniel Chappuis
7ce44f9775 Fix warnings 2015-08-17 06:44:26 +02:00
Daniel Chappuis
345afc1a1d Destroy bodies and joints in the destructor of CollisionWorld and DynamicsWorld 2015-08-13 07:19:15 +02:00
Daniel Chappuis
a4e28ddcf1 Add getContactsList() method to DynamicsWorld 2015-08-11 18:32:06 +02:00
Daniel Chappuis
2a3fe8f8d1 Handle division by zero in a better way in Vector2, Vector3 getUnit() and normalize() 2015-08-11 06:58:55 +02:00
Daniel Chappuis
39b7883462 Add methods to query number of solver iterations in DynamicsWorld 2015-07-11 18:34:37 +02:00
Daniel Chappuis
82f6bf2dbb Work on the GUI 2015-06-30 19:50:17 +02:00
Daniel Chappuis
80cf65ccf2 Allow to change the gravity vector of the DynamicsWorld 2015-06-29 23:35:50 +02:00
Daniel Chappuis
f376e2043f Modify the CollisionBody::setTransform() and Body::setIsSleeping() methods 2015-06-25 22:27:20 +02:00
Daniel Chappuis
6279867964 Remove the use of the old transform variable in CollisionBody 2015-06-16 22:46:43 +02:00
Daniel Chappuis
b8192db3ef Fix compilation error in DynamicsWorld 2015-04-20 23:22:22 +02:00
Daniel Chappuis
fb90eac003 The time accumulator and frame interpolation should now be done outside the physics engine 2015-04-18 18:33:25 +02:00
Daniel Chappuis
3aaac820e0 Fix compilation error on Visual Studio 2013 2015-04-08 22:10:34 +02:00
Daniel Chappuis
6679bb27bc Changes for the next release 2015-02-15 21:56:45 +01:00
Daniel Chappuis
3a8e69654f Add Doxygen documentation 2015-02-12 22:31:26 +01:00
Daniel Chappuis
c56557898f Small modifications 2015-02-09 22:37:36 +01:00
Daniel Chappuis
0b3abacb3c Fix possible memory leaks 2015-02-07 14:15:05 +01:00
Daniel Chappuis
bb0da781a7 Fix compilation warnings 2015-02-01 01:09:58 +01:00
Daniel Chappuis
c057e88983 Small changes in collision detection 2015-01-27 22:40:31 +01:00
Daniel Chappuis
e3719b32e5 Fix issue that prevented us from compiling with double precision with CMake 2015-01-22 21:56:30 +01:00
Daniel Chappuis
68958d0ed1 Add internal physics tick callback methods in EventListener class 2015-01-20 22:17:40 +01:00
Daniel Chappuis
9f4e63361f Small optimization in EPA algorithm 2015-01-19 21:55:18 +01:00
Daniel Chappuis
54d8b8518e Fix two issues in EPA Algorithm 2015-01-18 21:25:15 +01:00
Daniel Chappuis
c8a83768d5 Only compute narrow collisition test if at least one body is awake and not static 2014-12-31 01:47:50 +01:00
Daniel Chappuis
c15b83db4a Add collision and raycast filtering using bits mask 2014-12-31 01:19:14 +01:00
Daniel Chappuis
aae4da54d0 Add methods to test collision and AABB overlap in physics world 2014-12-28 00:54:34 +01:00
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