Commit Graph

89 Commits

Author SHA1 Message Date
erwin.coumans
98d902b7c1 Propagate the allowed penetration through convex cast against a triangle mesh.
Thanks for the report and patch to Paul Dubois, Issue 451
2010-11-18 00:25:04 +00:00
erwin.coumans
9086c15e49 Applied patch to avoid "Assert in ClosestConvexResultCallback::addSingleResult",
Thanks to Paul Dubois for the report and patch, see Issue 396
Also Issue 415
2010-08-25 19:23:09 +00:00
erwin.coumans
f0ba00c010 prettify debug drawing of cone and cylinder,
thanks to francois.sugny
see also http://code.google.com/p/bullet/issues/detail?id=369
2010-03-31 21:12:59 +00:00
erwin.coumans
40dc18f604 remove Extras/obsolete/quickstep
improve serialization based on feedback: make it easier to serialize a single object, or single shape, or single bvh.
Modified Bullet/Demos/ConcaveDemo to use btSerializer to serialize the btOptimizedBvh (or optionally the trimesh+bvh)

You can also serialize trimesh without BVH, use:
serializer->setSerializationFlags(BT_SERIALIZE_NO_BVH);//	or BT_SERIALIZE_NO_TRIANGLEINFOMAP
2010-02-25 20:12:40 +00:00
erwin.coumans
bb8d1b11df Add btBroadphaseInterface::aabbTest. btDbvtBroadphase and btAxisSweep3 should perform well, as long as the raycast accelerator is enabled.
This should fix the btCollisionWorld::contactTest(btCollisionObject* colObj, ContactResultCallback& resultCallback);

Thanks to Ola for the report!
2010-02-11 18:25:50 +00:00
erwin.coumans
7a175fb65e Add pairwise collision test:
void	btCollisionWorld::contactPairTest(btCollisionObject* colObjA, btCollisionObject* colObjB, ContactResultCallback& resultCallback)

cmake: improve feedback for Maya Plugin handling if the Maya base path is not detected
2010-02-11 09:18:49 +00:00
erwin.coumans
5907f81774 Add void btCollisionWorld::contactTest(btCollisionObject* colObj, ContactResultCallback& resultCallback);
The user should derive its own class from ContactResultCallback and implement the following callback (similar to the gContactAddedCallback):

virtual	btScalar	addSingleResult(btManifoldPoint& cp,	const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1) = 0;
2010-02-11 08:45:41 +00:00
erwin.coumans
58c5630d7f Add new demos to cmake: SerializeDemo and InternalEdgeDemo
Fix in btShapeHull for previous commit
Add support to serialize name for objects
Updated serialization structures.
2010-02-04 01:07:07 +00:00
erwin.coumans
e311597a7b added InternalEdgeDemo and fixes for btInternalEdgeUtility 2010-01-30 03:48:57 +00:00
erwin.coumans
0f707603f1 more work on serialization, work-in-progress 2010-01-23 00:04:58 +00:00
erwin.coumans
76eccc39fc more work on serialization (work-in-progress) 2010-01-22 03:36:58 +00:00
erwin.coumans
26a056e629 More work on serialization and BulletFileLoader 2010-01-22 00:15:33 +00:00
erwin.coumans
6af9f9434f worked a bit more on the serialization, and added a preliminary SerializeDemo. 2010-01-21 00:17:18 +00:00
erwin.coumans
6b89f028bf add newlines to files, thanks to tasioga for the patch
http://code.google.com/p/bullet/issues/detail?id=334
2010-01-20 21:33:35 +00:00
erwin.coumans
099c36a71e Add a new flag btCollisionObject::CF_DISABLE_VISUALIZE_OBJECT to give control over what objects are drawn using the debug drawer
This solves Issue 238 , thanks to  Linzner for the suggestion
Remove some warnings from GL_DialogDynamicsWorld.
2010-01-20 19:38:04 +00:00
erwin.coumans
50a3c32a5f Added preliminary binary serialization code in btCollisionWorld.cpp, with example in Bullet/Demos/BasicDemo.cpp
(work-in-progress, some initial working version should be ready very soon, for Bullet 2.76)
2010-01-20 01:00:39 +00:00
erwin.coumans
96d73d642d fixes in debug drawer: always use rgba color with each component in range [0..1]
use sphere/box rendering of debug drawer
Thanks accodejockey for the report: See http://code.google.com/p/bullet/issues/detail?id=280
Also see http://code.google.com/p/bullet/issues/detail?id=279
2010-01-19 19:38:18 +00:00
erwin.coumans
086f80b206 Provide the index of the btCompoundShape child hit during a rayTest, available as "LocalShapeInfo.m_triangleIndex"
Thanks sparkprime for the patch. See http://code.google.com/p/bullet/issues/detail?id=332 and
http://code.google.com/p/bullet/issues/detail?id=214
2010-01-19 05:50:14 +00:00
erwin.coumans
fcd2b93a22 fix in box-box contact generation: choose better contact point location (along contact normal) when objects are swapped.
move debugDrawWorld to btCollisionWorld.
improved CollisionInterfaceDemo, show how to perform a closest point query for objects that are not in the collision world.
removed a bit of garbage from the debug drawer
2009-12-18 00:54:52 +00:00
erwin.coumans
49a0b479c6 Switch off an optimization by default, to avoid support burden: update all objects AABBs and not just the active objects.
Call world->setForceUpdateAllAabbs( false) to re-enable the optimization: it will only update active objects (skipping static geometry)
See also http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=4073
2009-09-11 19:18:37 +00:00
erwin.coumans
659b215a69 Override btCollisionWorld::addCollisionObject with flags more appropriate for btDynamicsWorld (StaticFilter)
Minor fixes (#ifndef SPU_COLLISION_OBJECT_WRAPPER_H block etc)
Only update 'setNumTasks' when necessary
Revert vectormath.h include (can't resolve conflicts with PS3 SDK, need additional #include path)
2009-09-09 22:49:43 +00:00
erwin.coumans
659272685b Applied patch to fix scaling on btCapsuleShape:
http://code.google.com/p/bullet/issues/detail?id=230
Thanks Chuck Spencer for report/fix!

Applied patch to fix triangle mesh embedded in a btCompoundShape:
http://code.google.com/p/bullet/issues/detail?id=229
Thanks Ola for reporting/fixing!
2009-06-11 00:23:49 +00:00
erwin.coumans
badf723257 Replace all hardcoded 1e30(f) by BT_LARGE_FLOAT, defined in btScalar.h as 1e18(f) so that its square still fits in FLT_MAX
Thanks to Ole K. for reporting! http://code.google.com/p/bullet/issues/detail?id=206
2009-05-23 02:15:54 +00:00
erwin.coumans
210fe36106 Add backface culling and option to keep unflipped hit normal in case a ray hits a back-facing triangle.
Usage: set RayResultCallback.m_flags to kF_FilterBackfaces, optionally combined with kF_KeepUnflippedNormal.
Thanks Andy O'Neil for the patch!

Remove the force_inline for some internal constraint solver methods, it makes re-use easier.
Workaround/avoid MSVC 2005 compiler error in LibXML/trionan.c
2009-02-28 01:25:23 +00:00
erwin.coumans
3548c01985 add btCollisionWorld::updateSingleAabb see http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=3262
Fix memory leak, see http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=3266
Change contact breaking threshold
Add 'needsResponse' test for CcdMotionClamping, see http://code.google.com/p/bullet/issues/detail?id=179
Updated user manual (needs lots more work)
Added autoexp.dat, enabled Microsoft Visual Studio debug visualization for btAlignedObjectArray and btVector3.
2009-02-27 02:33:48 +00:00
erwin.coumans
24d1fea8b2 applied patches against warnings, thanks a lot Ole K.
http://code.google.com/p/bullet/issues/detail?id=165
http://code.google.com/p/bullet/issues/detail?id=164
http://code.google.com/p/bullet/issues/detail?id=166
http://code.google.com/p/bullet/issues/detail?id=167
2009-02-06 06:09:57 +00:00
erwin.coumans
635e1a6aa0 set broadphase handle to zero when destructing a btCollisionWorld, just in case a collision object/ rigid body is re-used.
Thanks to Ole for reporting

Fix a bug , causing some deep penetrations to be missed. Not likely to have impacted many users, as such deep penetrations should have prevented in the first place.
Thanks a lot to Andy O'Neil for reporting and reproduction case.
2008-12-05 22:40:13 +00:00
erwin.coumans
decf91a34d Made btCollisionWorld::convexSweepTest and btGhostObject::convexSweepTest consistent. Both have an optional last argument for allowedCcdPenetration.
Bugfix due to recent change in friction in constraint solver.
2008-11-19 19:55:14 +00:00
erwin.coumans
50344c4a23 Add support for broadphase acceleration of convex cast (re-use rayTest implementation with an added aabb min/max, zero for rays)
Add Concave Convexcast demo back in AllBulletDemos, and tweaked it a bit.
Fix view frustum of ForkLiftDemo (caused picking to fail)
Removed innerloop profiling for ray and convex casts, it hurts performance.
Set default #aabb's in CDTestFramework to 8192
2008-11-19 00:38:29 +00:00
erwin.coumans
1381394dd8 reverted 'getActiveObjects', island management will be improved for Bullet 2.74 release.
The implementation was error-prone and could lead to crashes.

See http://code.google.com/p/bullet/issues/detail?id=128
2008-11-11 16:19:20 +00:00
erwin.coumans
86353f0ad8 add btActivationCollisionAlgoritm to fix deactivation problems, reported here:
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2616

provide access to active objects, requested here:
http://code.google.com/p/bullet/issues/detail?id=128
2008-11-07 03:37:14 +00:00
erwin.coumans
bcd0f48c28 some doxygen updates, added some comments to classes, fix broken links, rename some prefix some internal GIMPACT collision structures using (for example use GIM_AABB instead of BT_AAABB),
removed obsolete btGjkEpa (it was replaced by btGjkEpa2 ages ago)
2008-11-04 04:01:31 +00:00
erwin.coumans
6f28170422 Removed obsolete btPoint3: use btVector3 instead 2008-10-27 19:56:48 +00:00
erwin.coumans
947a44452d Removed ray-AABB slopes code again, we are not using it and it is archived in Subversion repo now. 2008-10-16 20:18:41 +00:00
erwin.coumans
675c45f42d some rayTest improvements in btDbvt::rayTestInternal, it avoids/reduces memory allocations during stack allocation (by sharing a persistent m_stack)
and rayTestInternal re-uses precomputed invRayDirection/signs.
also did some performance comparison with different ray-AABB test, from 
http://jgt.akpeters.com/papers/EisemannEtAl07/

In short: it is faster, but it is not clear how to cull ray segments using ray slopes: when rays starts inside the AABB, we get a negative t value, but negatives also get false t-values...
2008-10-16 20:00:47 +00:00
erwin.coumans
e6c850f13b Fix/improve raycast performance for btBvhTriangleMeshShape (btQuantizedBvh, btOptimizedBvh)
Add raycast acceleration for btAxisSweep3, using btDbvtBroadphase, providing large speedup. Can be disabled in constructor to safe memory.
2008-10-14 20:24:28 +00:00
erwin.coumans
fffca75e9f Make raycast benchmark default, to show improved raycasting performance.
Add rayTest to btBroadphaseInterface, and implement efficient version for btDbvtBroadphase to accelerate raycasting.
btAxisSweep3, btSimpleBroadphase and btMultiSapBroadphase implement brute-force method (as before). For now, it is recommended to use btDbvtBroadphase for fastest world raycast.
2008-10-14 06:23:45 +00:00
erwin.coumans
9ad17dda22 Add aabbMin/aabbMax to broadphase proxy, and improve rayTest performance.
Todo: use broadphase acceleration structure (btDbvtBroadphase etc) for ray test
2008-10-10 17:32:52 +00:00
erwin.coumans
3d2ce530d4 applied patch to make child shape of a compound shape available during ray testing.
Thanks to Benoit Bolsee for the patch: http://code.google.com/p/bullet/issues/detail?id=91
2008-09-13 06:46:53 +00:00
erwin.coumans
d8a5bf2c9c Calculation of bounding box: margins should be added before basis transform.
Disable btSphereBoxCollisionAlgorithm, it is broken.
More fixes for btSimpleBroadphase
Moved quickstep to Extras/quickstep folder, so developers don't get confused which constraint solver is default.
2008-09-04 22:53:24 +00:00
erwin.coumans
9cd83c004b + add dummy getcwd/getenv for PS3 compatibility
+ disable HAVE_SIGNAL_H 0 for LibXML
+ removed unused variable in btCollisionWorld
+ removed unused variable in btSequentialImpulseConstraintSolver
2008-07-28 23:15:43 +00:00
john.mccutchan
31dfbf55e1 Compile fixes
Added getOwnsBvh to btBvhTriangleMeshShape
2008-07-10 23:22:29 +00:00
erwin.coumans
b66e5350d0 rename HasHit method to hasHit
rename AddSingleResult to addSingleResult
moved collision filtering for btCollisionWorld::rayTest and btCollisionWorld::convexSweepTest from argument to the callback needsCollision
2008-07-09 23:30:21 +00:00
erwin.coumans
dcd57f333b + improved KinematicCharacterController
+ improved btSubsimplexConvexCast, btContinuousConvexCollision and btGjkConvexCast to support configuration that start in touching/penetration, required for 'sliding'.
+ added files to CMakeLists.txt for CharacterController
+ bump up version to 2.70 (preparation for beta)
2008-07-09 00:08:49 +00:00
erwin.coumans
52de9fee03 add profiling for 'calculateOverlappingPairs' 2008-06-25 01:26:02 +00:00
erwin.coumans
3d32cf7ddf add penetration depth solver for btCollisionWorld::convexSweepTest, to handle touching/penetrating contact (useful for character controller) 2008-05-24 05:22:41 +00:00
erwin.coumans
6a69fe7f3b use collision margin of btBvhTriangleMeshShape for convexTest.
Thanks to reltham for the contribution.
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2121&p=8454#p8454
2008-05-18 01:15:00 +00:00
erwin.coumans
65bb612598 - added quickSort to btAlignedObjectArray (has generally better performance then heapSort)
- replaced all usage of heapSort by quickSort
- finished btMultiSapBroadphase. Still some work to be done to increase performance (faster add/remove from child broadphases. 
  uses currently AABB tree to locate child broadphase (should use grid), and sorted array takes too much time.
2008-03-16 04:30:43 +00:00
johnmccutchan
1ac223ca2a Properly set normalInWorldSpace and don't doubly rotate normal for convex vs. convex cast.
Fixes this issue: http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1784
2008-02-11 19:16:04 +00:00
johnmccutchan
d70a25ff6d Apply lsgmasa's fix for convex cast against collision world. 2008-02-08 19:56:46 +00:00