Commit Graph

828 Commits

Author SHA1 Message Date
Erwin Coumans
bbefc8fe7e Apply temporary stack-memory optimization, thanks to Jim Tillander
(old pull request 316 https://github.com/bulletphysics/bullet3/pull/316)
You can disable this in the build system, by adding preprocessor define 'BT_DISABLE_STACK_TEMP_MEMORY'
2017-03-13 22:27:37 -07:00
erwincoumans
11975ec60b Merge pull request #259 from AlexanderPolyakov/master
Fix for use of uninitialized variables.
2017-03-13 21:57:03 -07:00
erwincoumans
644e510c83 Fix Issue 997 2017-03-08 12:38:27 -08:00
erwincoumans
88fdffba04 pybullet/shared memory API: add some more check for out-of-bounds indices when setting up a command.
avoid many run-time memory allocations in btCompoundCompoundCollisionAlgorithm
2017-02-04 12:32:42 -08:00
erwincoumans
72dd8285e8 fix 'safeNormalize' (probably should remove it)
Fix for Issue 953: cull degenerate triangles
https://github.com/bulletphysics/bullet3/issues/935
Thanks to Oleg Klimov for the report and reproduction case.
2017-01-30 18:12:09 -08:00
Erwin Coumans
980908bdee add optimized version of sphere-capsule and capsule-sphere, re-using the capsule-capsule code with zero height for a sphere. 2017-01-25 10:45:55 -08:00
Erwin Coumans
1b2db1ff09 more btCapsuleShape fixes
use hello_mjcf.xml for MJCF importer
2017-01-23 22:22:02 -08:00
Erwin Coumans
a25a5e523c drop non-uniform local scaling support for btCapsuleShape 2017-01-23 21:10:32 -08:00
Erwin Coumans
0060c42ae8 more fixes for btCapsuleShape: its entire radius is collision margin, don't let the user override it (similar to a btSphereShape) 2017-01-23 19:38:14 -08:00
Erwin Coumans
d465e1eea5 add capsule support in urdf parser (non-standard extension), capsule.urdf
fix btCapsuleShape (X,Y,Z) margin issue
fix uninitialized variables in TinyRenderer: m_hasLightDistance, m_hasLightAmbientCoeff, m_hasLightDiffuseCoeff, m_hasLightSpecularCoeff
pybullet/shared memory API 'getClosestPoints' / b3InitClosestDistanceQuery, only report contacts equal/smaller distance than given
2017-01-23 16:45:18 -08:00
Erwin Coumans
93471a1c31 cmake Win32 fixes
fixed some more warnings
added alignment macros to some classes
btPersistentManifold from 128 to 16 bytes aligned
prepare command to select collision filter mode (SIM_PARAM_UPDATE_COLLISION_FILTER_MODE)
2017-01-16 13:05:26 -08:00
Erwin Coumans
8e9181f85c [MJCF import] add custom broadphase collision filter, for MJCF/MuJoCo compatibility
[MJCF import] improve MuJoCo importer, support collision filters
fixed a few more warnings
2017-01-16 08:23:49 -08:00
Erwin Coumans
c0c4c8ba3f fix many warnings
remove btMultiSapBroadphase.*
make collisionFilterGroup/collisionFilterMark int (instead of short int)
2017-01-15 22:26:11 -08:00
Erwin Coumans
4c06fd27b3 Example Browser: add option (keypress 'p') to dump json timing profile trace, that you can open using Chrome about://tracing
Make btQuickprof thread safe
Add option in btQuickprof to override custom timing profile (btSetCustomEnterProfileZoneFunc, btSetCustomLeaveProfileZoneFunc)
remove b3Printf in a user/physics thread (those added added, while drawing the GUI running in the main thread)
2016-12-23 15:20:04 -08:00
Erwin Coumans
e0c46f4b1a Fix contact normal issue if disabling/using small margins, See Issue #889
See Issue #889 : GJK/EPA: use smaller tolerances in BT_USE_DOUBLE_PRECISION mode
2016-12-18 18:37:53 -08:00
Erwin Coumans
dcd02a1e15 add option to terminate PGS constraint solvers based on a least square residual threshold
(for example solverInfo().m_leastSquaresResidualThreshold = 1e-7 and use large m_numSolverIterations
disable sphere-sphere contact cache, it is buggy (some contact point stay in the cache, when sphere penetrates more than total margins)
tweak some gpu demo settings
2016-12-16 18:09:52 -08:00
erwincoumans
0516d2ecaa allow getClosestPoints for btCompoundCollisionAlgorithm and btSphereTriangleCollisionAlgorithm
add optional 'lightColor' arg to testrender.py script
2016-11-22 10:11:04 -08:00
erwincoumans
0d5dcb3cc5 setDebugObjectColor 2016-11-21 07:42:11 -08:00
erwincoumans
9ee1c4ec24 regular OR wireframe rendering, not both
add option to perform filtering of 'getClosestPoints' using linkA/linkB.
don't use 'realtimesimulation' as default
add/remove debug items within same thread
pybullet, report contact points and normal as [x,y,z] triplet/vector, not 3 scalars
separate 'getClosestPointsAlgorithm': box-box doesn't report closest points with positive distance, and the query shouldn't impact regular 'closesst points'
2016-11-19 17:13:56 -08:00
Lunkhound
2f4ec4f8c9 collisionObject: renamed uniqueId to worldArrayIndex; removed linear search in removeCollisionObject 2016-11-12 12:41:55 -08:00
Erwin Coumans
3b5d0f444b various fixes
move btSimulationIslandManagerMt.cpp from BulletCollision to BulletDynamics
2016-11-10 16:18:20 -08:00
erwincoumans
4c2c2bf74b Merge pull request #858 from erwincoumans/master
pybullet getClosestPoints collision query. center gripper (1 version)
2016-11-10 12:08:17 -08:00
erwincoumans
b16d9abddd center the gripper
fix collision issue, introduced in previous commit (uninitialized new variable)
2016-11-09 22:14:04 -08:00
erwincoumans
0d47d61007 pybullet getClosestPoints 2016-11-09 21:01:04 -08:00
erwincoumans
dced3521a2 Merge pull request #848 from Kotolegokot/master
Fix a little typo
2016-11-06 13:45:13 -08:00
Kotik Andreev
bc34d0129e Fix a little typo 2016-10-31 01:45:44 +03:00
Lunkhound
1c3686ca51 MultiThreaded Demo:
- fixing various race conditions throughout (usage of static vars, etc)
 - addition of a few lightweight mutexes (which are compiled out by default)
 - slight code rearrangement in discreteDynamicsWorld to facilitate multithreading
 - PoolAllocator::allocate() can now be called when pool is full without
     crashing (null pointer returned)
 - PoolAllocator allocate and freeMemory, are OPTIONALLY threadsafe
     (default is un-threadsafe)
 - CollisionDispatcher no longer checks if the pool allocator is full
     before calling allocate(), instead it just calls allocate() and
     checks if the return is null -- this avoids a race condition
 - SequentialImpulseConstraintSolver OPTIONALLY uses different logic in
     getOrInitSolverBody() to avoid a race condition with kinematic bodies
 - addition of 2 classes which together allow simulation islands to be run
   in parallel:
    - btSimulationIslandManagerMt
    - btDiscreteDynamicsWorldMt
 - MultiThreadedDemo example in the example browser demonstrating use of
   OpenMP, Microsoft PPL, and Intel TBB
 - use multithreading for other demos
 - benchmark demo: add parallel raycasting
2016-10-30 12:47:27 -07:00
erwin coumans
0a628f06cc decrease some gjk/epa tolerance to improve collision detection using very small collision margins (0.001/1mm)
tweak pr2 gripper.
2016-09-20 12:37:13 -07:00
erwin coumans
db3122233f remove that odd triangle in the origin of samurai castle (VR)
add rolling/spinning friction to cube, remove it from plane/samurai.urdf
URDF2Bullet: support joint limits for revolute and prismatic, only if defined (if upper < lower, disable limit)
add some profiling markers to improve performance
2016-09-19 07:02:43 -07:00
Erwin Coumans
567b003654 separate spinning and rolling friction coefficients, exposed in URDF as spinning_friction / m_rolling_friction
improvements in VR demo, add grasper etc.
2016-09-16 00:57:00 +01:00
Erwin Coumans
1d88cf71e4 separate spinning friction (torsional friction around contact normal) from
rolling friction (orthogonal to contact normal)
2016-09-16 00:04:33 +01:00
erwincoumans
e5a8eb2425 rolling friction -> combine using rolling*normal friction, add for both objects.
rolling friction -> only along the normal, until we have separate rolling friction coefficients on normal and non-normal directions
Don't teleport with grasping controller (VR)
Tune VR grasping a bit.
2016-09-12 19:10:20 +01:00
Erwin Coumans
ecd814c9c5 export contact friction/damping through URDF and API
convert from contact friction/damping to cfm/erp
btCollisionObject::setContactFrictionAndDamping
2016-09-02 16:40:56 -07:00
erwincoumans
85fd7f560c add first draft of contact point query in shared memory API
b3SharedMemoryCommandHandle b3InitRequestContactPointInformation(b3PhysicsClientHandle physClient);
void b3SetContactFilterBodyA(b3SharedMemoryCommandHandle commandHandle, int bodyUniqueIdA);
void b3SetContactFilterBodyB(b3SharedMemoryCommandHandle commandHandle, int bodyUniqueIdB);
void b3GetContactPointInformation(b3PhysicsClientHandle physClient, struct b3ContactInformation* contactPointData);
Implemented for PhysicsClientSharedMemory, not for PhysicsDirect yet.
Add btCollisionObject::setUserIndex2
2016-09-01 13:30:07 -07:00
Erwin Coumans
fcc9d4ebcb fix SIMD/16-byte alignment issue causing issue in one of the old benchmarks 2016-07-16 22:33:15 -07:00
Erwin Coumans
f9096c2e30 typo/case sensitivity BroadphaseCollision vs NarrowPhaseCollision, aargh 2016-07-16 21:47:07 -07:00
Erwin Coumans
e2bdd7dbb1 fix more memory leaks, ImportURDFExample is now leak-free
eliminate all run-time memory allocation (except for mouse-pick/ray-intersection) in ImportURDFExample
2016-07-16 17:40:44 -07:00
Erwin Coumans
471d3652e4 (finally) applied patch to fix 'setLocalScaling' of btMultiSphereShape
See https://code.google.com/archive/p/bullet/issues/636
http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=8237 and
https://github.com/bulletphysics/bullet3/issues/125
2016-07-02 10:07:13 -07:00
erwincoumans
a5fa8712ec Merge pull request #385 from lordloki/btCone
New btConeshape member functions setHeight and setRadius
2016-06-09 08:58:25 -07:00
Erwin Coumans
372c4ef9c1 Add btConvexHullShape::optimizeConvexHull method,
it automatically removes vertices that are not on the convex hull.
It uses the btConvexHullComputer for this.
2016-05-04 13:01:06 -07:00
erwincoumans
5351b20f9d Merge pull request #609 from AndrewMeadows/ccd-fix-4
optimize CCD against btCompoundShapes with dynamicAabbTree
2016-04-30 11:22:36 -07:00
Andrew Meadows
8d970e5c04 minor cleanup 2016-04-27 13:41:42 -07:00
Ryan Huffman
76d39d4439 Fix build error on OSX + Linux 2016-04-27 12:10:28 -07:00
Ryan Huffman
7f0877339e Replace spaces with tabs 2016-04-27 12:10:28 -07:00
Ryan Huffman
b135699325 Fix errors in ccd against compound objects 2016-04-27 12:10:28 -07:00
Ryan Huffman
25ee137390 Fix missing colObjWrap 2016-04-27 12:10:28 -07:00
Ryan Huffman
af442778a6 Add early rejection tests during CCD against compound objects 2016-04-27 12:10:28 -07:00
Erwin Coumans
87e5128ba8 fix some typos (need to merge into a single implementation later!) 2016-03-11 17:47:00 -08:00
Erwin Coumans
625ea96a3e accidently moved line in wrong place 2016-03-10 23:28:02 -08:00
Erwin Coumans
ea6ecd3579 Use higher precision GJK/EPA collision tolerances in BT_USE_DOUBLE_PRECISION
See https://raw.githubusercontent.com/billhoffman/bullet-pod/ac6aae3e3ee8137de484471094a65bfe166898b4/bullet_gjk_accuracy_patch.diff
2016-03-10 23:12:22 -08:00