Commit Graph

765 Commits

Author SHA1 Message Date
Daniel Chappuis
cc63f7c0a1 Fix issue 179 in FixedJoint 2020-11-25 22:20:40 +01:00
Daniel Chappuis
d4a58b7228 Do not recompute triangle normal during triangle raycasting 2020-11-15 11:56:44 +01:00
Daniel Chappuis
9d645bdca7 Use faster ray vs ABBB intersection algorithm in raycasting DynamicAABBTree broad-phase 2020-11-08 15:13:17 +01:00
Daniel Chappuis
2b052969a9 Compute the half-edge structure of TriangleShape and BoxShape only once at the beginning 2020-10-29 23:09:15 +01:00
Daniel Chappuis
ec5350bb5f Make AABB methods inline 2020-10-20 22:46:20 +02:00
Daniel Chappuis
1bc1f0621e Optimizations 2020-10-15 22:23:32 +02:00
Daniel Chappuis
fcf7def577 Small optimizations 2020-10-14 20:41:05 +02:00
Daniel Chappuis
8c7a709ebe Fix compilation issues 2020-10-14 20:40:41 +02:00
Daniel Chappuis
8f5a7a12cb Fix issue in position solver of joints (constrained orientations must be used instead of previous orientation when computing inertia tensor) 2020-10-14 19:42:40 +02:00
Daniel Chappuis
9be56213e0 Optimization in NarrowPhaseInfoBatch 2020-10-14 18:30:21 +02:00
Daniel Chappuis
2078971331 Optimization of joints solver 2020-10-12 23:56:33 +02:00
Daniel Chappuis
916cefa96d Optimization of joints 2020-10-12 23:01:57 +02:00
Daniel Chappuis
44e1b12aaf Fix robustness issue with SphereShape vs SphereShape collision detection 2020-10-10 00:10:05 +02:00
Daniel Chappuis
7071213617 Optimizations and small modifications 2020-10-04 16:08:12 +02:00
Daniel Chappuis
85103f7027 Small optimizations 2020-10-02 21:26:14 +02:00
Daniel Chappuis
d4be363e7c Optimization of face vs face clipping in SAT algorithm 2020-09-30 00:22:16 +02:00
Daniel Chappuis
21f9b39bc4 Small optimizations 2020-09-26 15:07:20 +02:00
Daniel Chappuis
fa722c129d Better optimization to allocate correct amount of memory for potential manifolds and contact points 2020-09-26 14:57:00 +02:00
Daniel Chappuis
71f7980fdf Log an error when convex mesh is created with duplicated vertices and add in user manual that this is not supported 2020-09-21 13:59:23 +02:00
Daniel Chappuis
e7b951b8e4 Refactor the mathematics_functions.h file 2020-09-08 19:03:22 +02:00
Daniel Chappuis
b55626df67 Cache the size of lists before loops 2020-09-06 18:42:05 +02:00
Daniel Chappuis
cd4bc7573f Rename the List class into Array 2020-09-05 15:06:51 +02:00
Daniel Chappuis
f17941b708 Optimization 2020-09-02 23:33:12 +02:00
Daniel Chappuis
18924135e0 Remove some code 2020-09-02 23:00:15 +02:00
Daniel Chappuis
7774b6f0cd Merge master into optimization and fix conflicts 2020-09-02 22:53:21 +02:00
Daniel Chappuis
98ba2f10e6 Fix issue with contact manifolds order in islands creation process 2020-09-02 21:59:19 +02:00
Daniel Chappuis
70d4aed3c1 Reduce the number of calls to List::reserve() 2020-08-30 08:32:49 +02:00
Daniel Chappuis
2b362b5098 Use uint32 type for size/capacity of List 2020-08-30 00:00:47 +02:00
Daniel Chappuis
de6630a03d Refactoring and optimization of List and Set containers 2020-08-28 23:10:19 +02:00
Daniel Chappuis
a1e0e0aa94 Refactor OverlappingPairs 2020-08-11 18:14:32 +02:00
SlavicPotato
b5a7454f4c Fix DebugRenderer contact point sphere radius 2020-08-11 09:14:18 +02:00
Daniel Chappuis
05e3b00689 Remove mIsActive variable from OverlappingPairs 2020-08-06 16:00:50 +02:00
Daniel Chappuis
eeb5b07f35 Remove rolling restistance constraint from contact solver. Angular damping has to be used instead 2020-07-29 22:49:19 +02:00
Daniel Chappuis
0126677808 Fix issue 2020-07-29 00:24:52 +02:00
Daniel Chappuis
7f219dd99c More materials into the ColliderComponents and more optimizations 2020-07-28 23:35:11 +02:00
Daniel Chappuis
aa6b228e10 Optimizations 2020-07-28 23:34:25 +02:00
Daniel Chappuis
fd09fcf660 Add force inline macro 2020-07-26 20:47:23 +02:00
Daniel Chappuis
92884e2486 Working on NarrowPhaseInfoBatch optimizations 2020-07-26 16:55:07 +02:00
Daniel Chappuis
a871bfdd6a More optimizations 2020-07-20 00:33:50 +02:00
Daniel Chappuis
3b2f973ffd Fix issue in Quaternion::Quaternion(Matrix3x3& matrix) constructor and add corresponding unit test 2020-07-19 01:02:02 +02:00
Daniel Chappuis
0032fef473 Working on optimizations in contacts creation 2020-07-18 17:03:44 +02:00
Daniel Chappuis
b410b26e23 Fix issues in PhysicsWorld::createIslands() method and add more optimization in CollisionDetectionSystem::computeNarrowPhase() method 2020-07-14 22:35:03 +02:00
Daniel Chappuis
8fd5c58986 Optimization of contacts processing 2020-07-11 14:06:39 +02:00
Daniel Chappuis
fa05e1561e Use const parameter in PhysicsWorld::setGravity() method 2020-07-07 18:27:01 +02:00
Daniel Chappuis
98ac47cbad Optimization of the islands computation 2020-07-07 18:21:41 +02:00
Daniel Chappuis
5cf8cb7445 Make PhysicsWorld::createIslands() method faster 2020-07-02 23:44:27 +02:00
Daniel Chappuis
8b9fdc15a7 Fix issue in SAT with edge-edge contact (wrong contact normal) and favor face contacts over edge-edge contacts in polyhedron vs polyhedron collision in SAT algorithm for better stability 2020-06-28 15:28:00 +02:00
Daniel Chappuis
4283e3f408 Fix issue in SAT with edge-edge contact (wrong contact normal) and favor face contacts over edge-edge contacts in polyhedron vs polyhedron collision in SAT algorithm for better stability 2020-06-27 23:48:19 +02:00
Daniel Chappuis
fc5ccdbe4d Rename PI constant 2020-06-24 22:24:54 +02:00
Daniel Chappuis
9fb1e39798 Add constructors with local-space anchor/axis to BallAndSocketJointInfo, HingeJointInfo, SliderJointInfo, FixedJointInfo 2020-06-24 22:21:54 +02:00
Daniel Chappuis
c952fcf8c3 Merge branch 'master' into develop 2020-06-17 13:19:03 +02:00
Daniel Chappuis
3d46add1d2 Fix issue with collision detection between convex and concave shape 2020-06-17 13:18:04 +02:00
Daniel Chappuis
bbd9182f7f Improve code documentation inside RigidBody class 2020-06-16 23:17:41 +02:00
Daniel Chappuis
2751bc5728 Add RigidBody::resetForce() and RigidBody::resetTorque() methods 2020-06-16 22:50:12 +02:00
Daniel Chappuis
a855a81d04 Fix issue with assert in PhysicsWorld destructor 2020-06-14 23:18:13 +02:00
Daniel Chappuis
6d75edd782 Merge branch 'develop' into 'master' 2020-05-29 00:03:44 +02:00
Daniel Chappuis
875064c851 Check that the initial transforms when creating a body or a collider are valid 2020-05-27 23:09:23 +02:00
Daniel Chappuis
09dc35f635 Update dates and version numbers in files 2020-05-27 16:15:35 +02:00
Daniel Chappuis
4351081189 Make smooth triangle normal computation more robust 2020-05-26 18:22:17 +02:00
Daniel Chappuis
834de3254b Add again Timer.h and Timer.cpp 2020-05-25 21:54:36 +02:00
Daniel Chappuis
fa4eb297bf Add logs, remove warnings, ... 2020-05-25 21:40:44 +02:00
Daniel Chappuis
8893f22e70 Remove the Timer class which is not needed anymore 2020-05-25 10:55:04 +02:00
Daniel Chappuis
9d35d5d7d2 Log errors in PhysicsCommon when destroying a collision shape that is still used by some colliders 2020-05-25 10:48:25 +02:00
Daniel Chappuis
a81a2f5393 Improve Doxygen API Reference documentation 2020-05-25 10:36:36 +02:00
Daniel Chappuis
23041d474b Make memory allocators thread safe 2020-05-25 10:10:40 +02:00
Daniel Chappuis
cfdab52573 Improve Doxygen API Reference documentation 2020-05-25 00:27:13 +02:00
Daniel Chappuis
ab86620412 Small modifications 2020-05-24 16:52:44 +02:00
Daniel Chappuis
bd4a26d5c7 Small modifications 2020-05-24 16:13:44 +02:00
Daniel Chappuis
39bbd6ec6d Refactor CMakeLists.txt files to use more modern CMAKE 2020-05-11 12:38:59 +02:00
Daniel Chappuis
3df602edfa Refactor the way to create a logger and a profiler 2020-05-11 11:13:26 +02:00
Daniel Chappuis
e04565fb48 Rename RigidBody::applyForce() to RigidBody::applyForceAtWorldPosition() and add RigidBody::applyForceAtLocalPosition() method 2020-05-09 00:09:38 +02:00
Daniel Chappuis
dfc6710dc0 Merge and fix conflicts 2020-05-08 23:54:28 +02:00
Daniel Chappuis
c1f40ac456 Fix issue with limits of HingeJoint and SliderJoint 2020-05-08 15:10:49 +02:00
Daniel Chappuis
67e89e081b Working on debug renderer 2020-05-07 15:12:59 +02:00
Daniel Chappuis
0321cf4f89 Working on debug renderer 2020-05-06 15:21:25 +02:00
Daniel Chappuis
56077bba6b Working on debug renderer 2020-05-06 00:34:56 +02:00
Daniel Chappuis
92aa06ac35 Fix compilation error 2020-04-27 18:16:46 +02:00
Daniel Chappuis
2efe9d65da Fix issue with overlap callback 2020-04-27 15:54:57 +02:00
Daniel Chappuis
e03ee08462 Rename Logger class to DefaultLogger and create abstract Logger class 2020-04-26 18:41:59 +02:00
Daniel Chappuis
dcd71ef103 Improve EventListener: add onTrigger() method, add event types, add triggers, ... 2020-04-18 20:43:13 +02:00
Daniel Chappuis
a190bba8c0 Refactor where the headers are store for better installation of the library 2020-03-18 07:28:34 +01:00
Daniel Chappuis
7dde393fa5 Use Vector3 instead of Matrix3x3 for the local inertia tensor of a rigid body 2020-03-10 07:23:51 +01:00
Daniel Chappuis
cda466f9da Refactor the way to set/update the center of mass, mass and inertia tensor of a rigid body 2020-03-01 16:39:16 +01:00
Daniel Chappuis
28560d034e Add methods for the user to retrieve Colliders, CollisionBodies and RigidBodies 2020-02-17 17:36:44 +01:00
Daniel Chappuis
0ec26f5184 Compute the fat AABB by adding a percentage of the size of the initial AABB instead of using a constant offset. Do not use linear displacement anymore in inflate the AABB in direction of the motion in the broad-phase 2020-02-14 17:08:02 +01:00
Daniel Chappuis
7477460e4f Make possible to resize the collision shapes after their creation 2020-02-11 21:56:42 +01:00
Daniel Chappuis
9d776e32dc Make possible to change the size of the collision shapes after their creation 2020-02-06 07:21:13 +01:00
Daniel Chappuis
c5873dbc6b The Material is now part of the Collider instead of the RigidBody, fixes compilation errors with Logger and Profiler. 2020-02-01 13:41:30 +01:00
Daniel Chappuis
d36edcdb6e Rename DynamicsWorld class to PhysicsWorld 2020-01-27 17:46:00 +01:00
Daniel Chappuis
b0fde22678 Rename ProxyShape to Collider 2020-01-20 21:22:46 +01:00
Daniel Chappuis
eb270af309 Fix issue and make sure we use the correct memory allocators 2020-01-15 20:18:11 +01:00
Daniel Chappuis
77940a43f7 Add new memory allocator HeapAllocator 2020-01-13 17:02:59 +01:00
Daniel Chappuis
581f642280 Remove the MemoryManager::setBaseAllocator() method 2019-12-13 11:20:17 +01:00
Daniel Chappuis
45b02abaec Add PhysicsCommon class and use it as a factory for other library objects and add pile demo in testbed application 2019-12-12 18:50:18 +01:00
Daniel Chappuis
2dfe254c86 Use memory allocators from ecs branch 2019-11-27 22:41:38 +01:00
Daniel Chappuis
815182aae9 Merge ecs into develop and fix conflicts 2019-11-27 22:14:29 +01:00
Daniel Chappuis
b94fbf7874 Some optimizations and fix issues in collision detection 2019-11-25 21:22:25 +01:00
Daniel Chappuis
acb5e0e51e Remove TODO 2019-11-25 17:33:46 +01:00
Daniel Chappuis
58df6cdaff Optimizations 2019-11-22 21:31:51 +01:00
Daniel Chappuis
46d19bf550 Some optimizations 2019-11-21 23:23:03 +01:00