Commit Graph

332 Commits

Author SHA1 Message Date
Daniel Chappuis
bcf305b118 Refactor contact points creation 2018-09-09 21:59:02 +02:00
Daniel Chappuis
7b14e13fe6 Fix bug with assert with joints 2018-08-22 18:35:53 +02:00
Daniel Chappuis
14491c7eb3 Make comment more clear 2018-07-01 17:24:24 +02:00
Daniel Chappuis
15d9c29dd8 Fix linker error because of inline keyword 2018-05-31 20:06:33 +02:00
Daniel Chappuis
d15a41f0cc Fix issue with the list of contact manifolds of a CollisionBody that was not cleared 2018-05-30 11:08:34 +02:00
Daniel Chappuis
1c12ffe287 Fix compilation issue on Windows 10 with MINGW64 2018-05-29 21:53:59 +02:00
Daniel Chappuis
6732a8119c Fix issue with collision between a CollisionBody and a RigidBody in a DynamicsWorld 2018-05-29 21:44:56 +02:00
Daniel Chappuis
681ebeba6b Update copyright date in license 2018-04-30 22:15:53 +02:00
Daniel Chappuis
d5322ad745 Add comments in the code 2018-04-21 19:47:35 +02:00
Daniel Chappuis
d14e42be70 Refactor the way headers are included and use more forward declarations for faster compilation time 2018-04-20 07:13:39 +02:00
Daniel Chappuis
491702c05c Fix tests and fix compilation warnings 2018-04-16 18:52:02 +02:00
Daniel Chappuis
96c581ae9b Fix compilation warnings 2018-04-16 07:54:46 +02:00
Daniel Chappuis
cd897f1151 Fix compilation errors when logs or profiling is disabled 2018-03-29 07:16:50 +02:00
Daniel Chappuis
100cdbc64a Working on logger 2018-03-28 22:55:02 +02:00
Daniel Chappuis
1bc50de2c9 Working on logger 2018-03-19 23:02:13 +01:00
Daniel Chappuis
2e28b5ad8f Refactor profiler and add logger 2018-03-15 23:11:26 +01:00
Daniel Chappuis
393bb0ed88 Refactor profiler and start working on logger 2018-03-14 07:33:28 +01:00
Daniel Chappuis
cd2bc9665e Add WorldSettings class for world configuration settings 2018-03-04 19:10:32 +01:00
Daniel Chappuis
0f4d41e8fc Merge branch 'optimization' into develop 2018-02-26 07:33:58 +01:00
Daniel Chappuis
1a787453e8 Replace std::pair by rp3d::Pair 2018-02-05 07:41:02 +01:00
Daniel Chappuis
b3e771838d Replace std::set by Set and fix issues with List and Map 2018-02-03 20:48:08 +01:00
Daniel Chappuis
220057a587 Remove the use of std::map and fix issues in Map class 2018-01-26 17:34:26 +01:00
Konstantinos Chatzilygeroudis
a82bd12383 Fix for compilation issues 2018-01-25 19:00:09 +01:00
Daniel Chappuis
624de80453 Merge branch 'optimization' into sat 2018-01-21 13:11:57 +01:00
Daniel Chappuis
301823729d Remove the use of std::vector 2018-01-20 17:30:36 +01:00
Daniel Chappuis
c7f7a169f8 Refactor the getter/setter for inertia tensor of a RigidBody 2018-01-15 07:18:00 +01:00
Daniel Chappuis
261ffef616 Refactor memory allocation 2018-01-01 18:35:57 +01:00
Daniel Chappuis
8f126a75d6 Use List in HalfEdgeStructure with some changes in memory allocation 2017-12-27 20:53:09 +01:00
Daniel Chappuis
7d20a746e9 Do not std::map to store mapping from rigid body to index in array 2017-12-14 15:09:56 +01:00
Daniel Chappuis
9066264189 Remove commented code 2017-12-12 22:36:19 +01:00
Daniel Chappuis
cf42e9f04c Optimizations in contact solver 2017-12-12 07:29:29 +01:00
Daniel Chappuis
4cc024b85e Rename fields and methods in ContactPoint class 2017-11-29 23:43:55 +01:00
Daniel Chappuis
f403a6e804 Add temporal coherence for convex vs triangle collision detection 2017-11-22 22:43:27 +01:00
Daniel Chappuis
e9709c3db5 Refactor the Profiler. Now there is one profiler instance per CollisionWorld/DynamicsWorld instance instead of a static one 2017-11-10 19:57:50 +01:00
Daniel Chappuis
b39bb3ba37 Initialize the timestep in the DynamicsWorld constructor 2017-11-08 21:14:21 +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
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
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
709bed3cec Fix issues with GJK algorithm 2017-09-09 15:37:55 +02:00
Daniel Chappuis
dd91f6dcbf Fix typo 2017-09-04 22:23:29 +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
319cc72cde Fix issues in collision detection 2017-08-18 17:50:27 +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
730b687877 Working on temporal coherence in SAT (polyhedron vs polyhedron) 2017-05-29 08:32:10 +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
b21a6bb59b Refactor contact manifold and contact point creation 2017-02-26 13:48:50 +02:00
Daniel Chappuis
e9f2f94f64 Continue working on SAT, remove Cone and Cylinder shapes 2017-02-02 22:58:40 +01:00
Daniel Chappuis
4a97c2ca97 Refactor collision detection 2017-01-08 19:56:59 +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
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
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
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
2f195c6106 Fix compilation error on gcc 2016-08-21 20:44:29 +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
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
2640fbd48a Start replacing NULL constant by nullptr 2016-05-15 19:25:58 +02:00
Daniel Chappuis
8a75c867a5 Change version number of the library 2016-04-11 20:15:20 +02:00
Daniel Chappuis
235b1db90c Fix warnings 2016-03-30 22:39:47 +02:00
Daniel Chappuis
3e98ab2282 Add support for rolling resistance in the contact solver 2016-03-20 23:01:38 +01:00
Daniel Chappuis
63fb6261a3 Fix issue with linear/angular damping 2016-03-20 22:53:05 +01:00
Daniel Chappuis
d6580f94aa Fix conflicts when merging triangularmeshes into develop 2016-02-15 20:14:30 +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
c3c9a5c38c Remove contact manifolds that do not have contact points anymore after manifold update 2015-10-19 06:55:35 +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
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
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
16617fef8e Merge branch 'develop' of https://github.com/ColinGilbert/reactphysics3d into ColinGilbert-develop 2015-08-27 22:32:18 +02: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
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
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
68958d0ed1 Add internal physics tick callback methods in EventListener class 2015-01-20 22:17:40 +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
5f7af61593 -Remove unnecessary contact manifold
-Delete the BroadPhasePair class
2014-11-21 21:27:09 +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
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
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
1415bad00e Small modifications 2014-07-09 23:45:19 +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
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
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
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
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
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
25b6b015b8 Add some private copy-constructors and private assignment operators 2013-07-10 00:21:31 +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
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
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