Commit Graph
100 Commits
Author SHA1 Message Date
erwin.coumans bb379bd84c fix one of the btCompoundShape scaling issues, this fix breaks the API (need to add warning at the next release)
fixes https://code.google.com/p/bullet/issues/detail?id=374 and
https://code.google.com/p/bullet/issues/detail?id=444
2013-09-10 23:34:23 +00:00
erwin.coumans 7195b54d13 Fix Issue 712, related to NVIDIA CUDA check in CMakeLists.txt
Enable btGImpact raycast optimization, thanks to C0DEFACE, see Issue 664
Cull triangle/AABB for concave/heightfield shapes, thanks to Danny Chapman
fix btGetCpuCapabilities, thanks to Ian Ollman! See https://code.google.com/p/bullet/issues/detail?id=738
2013-09-10 23:09:24 +00:00
erwin.coumans 7633dc8b13 use __int64 for 64bit uint64_t for 64bit Visual Studio
See https://code.google.com/p/bullet/issues/detail?id=717
allow parallel constraint solver in double precision
See https://code.google.com/p/bullet/issues/detail?id=728
2013-09-10 21:26:19 +00:00
erwin.coumans c160bfe74c applied Character controller patch #20 from Issue 198
See https://code.google.com/p/bullet/issues/detail?id=198
2013-09-10 20:40:42 +00:00
erwin.coumans d50be40f8e Fix Issue 2644, compile error due to use of removed stack alloc 2013-09-10 20:15:52 +00:00
erwin.coumans 0779a274de fix Clang issue
https://code.google.com/p/bullet/issues/detail?id=736
2013-09-10 20:06:24 +00:00
erwin.coumans 771ae1ce41 fix usage of internal API for Apple iOS devices
Thanks to nharishankar for the report, see Issue 738
2013-09-10 19:59:33 +00:00
erwin.coumans 6b3828d74b removed the early out, it was not general 2013-09-10 19:52:58 +00:00
erwin.coumans 197e17780a replace 'float' by 'double' in btHingeConstraintDoubleData. See Issue 734 2013-09-03 16:46:18 +00:00
erwin.coumans 92eed617cd fix SSE issue with XCode 3 2013-05-14 12:38:06 +00:00
erwin.coumans 33688fc011 removed name from source code 2013-04-02 18:33:00 +00:00
erwin.coumans 976cd0028a Add a missing header file btCollisionObjectWrapper.h
Thanks to  Alexander Meissner

Fixes Issue 684
2013-01-03 18:51:20 +00:00
erwin.coumans 74c028ebae remove some quicksort test that breaks the build under MSVC 2005 SP1
Fixes Issue 680 together with this commit:
https://code.google.com/p/bullet/source/detail?r=2632
2012-12-20 22:47:54 +00:00
erwin.coumans 02a22f6329 Avoid using SSE in API when BT_USE_SSE_IN_API is not defined
Fixes Issue 683.
2012-12-20 22:09:59 +00:00
erwin.coumans 0c555a5afe just use 16-byte aligned data for solverbody, not 64byte
fixes Issue 659
2012-12-17 21:29:20 +00:00
erwin.coumans 7e14e79da0 Fix Issue 680, compilation error using Visual Studio 2005, service pack 1, quicksort compare function needs to be in a class.
Toggle between GJK and SAT (initializePolyhedralFeatures) in convexDecomposition at easch restart of the demo (spacebar)
2012-12-17 20:38:31 +00:00
erwin.coumans c4548ec746 Add a helper method that creates a btCompoundShape from a btGimpactMeshShape, for more robust collision detection.
The idea is to create tetrahedra from each surface triangle, by moving its centroid inwards along the collision normal using depth.
If the centroid hits an internal triangle, it will stop there.

The commit also includes part of the gimpact raycast performance improvement, except for the actual btCollisionWorld part
(that file was out-of-date and needs manual patching)
2012-12-14 23:14:09 +00:00
erwin.coumans 27fd8ea0d7 make it more obvious that btBvhTriangleMeshShape cannot be used for moving objects. 2012-12-14 20:31:03 +00:00
erwin.coumans 1d4a5d950d Usually m_contactNormal2 == -m_contactNormal1, but not always, so
use a separate contactNormal1/contactNormal2 for each body in btSolverConstraint.

Thanks to Richard McDaniel for the patch.
2012-12-12 23:21:51 +00:00
erwin.coumans fe92502332 fix build issue with GImpact, Issue 681
Thanks to Oskar Nordquist for the patch/report.
2012-12-12 20:33:51 +00:00
erwin.coumans 7c610ec045 use unsigned int indices in btGImpactMeshShape
See Issue 663
2012-12-07 19:20:06 +00:00
erwin.coumans 17ca9eb7e7 Fix compile error when defining DEBUG, include memset header
See Issue 678, thanks to Max for the report!
2012-12-07 18:21:14 +00:00
erwin.coumans d54423f9c0 Fix compile error in Visual Studio 2005 build: only enable SSE/SIMD intrinsics for btVector3 for Visual Studio 2008 and higher 2012-12-07 18:16:04 +00:00
erwin.coumans b4022e0f23 enable SSE by default in premake (SSE was already enabled for the cmake build system)
Thanks to Pierre for the report, see http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=8650
2012-12-05 23:24:03 +00:00
erwin.coumans f5704d5981 Fix issue with btQuaternion::slerp, thanks to Martin Heistermann.
Fixes Issue 665
2012-11-25 17:19:17 +00:00
erwin.coumans 6964612e8c Remove #end in btScalar.h
Fixes Issue 674
2012-11-24 22:14:13 +00:00
erwin.coumans 9eddd42347 fix win32 (non-glut) cmake build.
add partId/index to btCollisionObjectWrapper to be able to recognize recursive shape indices (a btCompoundShape with a btGimpactShape child shape etc)
2012-11-10 01:42:35 +00:00
erwin.coumans c4db79791c Improve the loading of serialized Bullet files, so that
after 'loadFileFromMemory' you can save the existing memory back to disk converted to native architecture endianness.
Fixed a bug that prevented big endian machines to load cloth data (due to wrong endian swap of pointer array)
Also improved the 'preswap' so that you can swap endianness on big endian machines (to little endian)
2012-11-10 00:51:51 +00:00
erwin.coumans 595dab2337 allow the Bullet world importer to save a copy with swapped endianness
See http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=8191
2012-10-31 07:25:54 +00:00
erwin.coumans ff38230704 use the right m_bvhAabbMax/m_bvhAabbMin to adjust quantization 2012-10-11 16:36:16 +00:00
erwin.coumans fe3cfe56b6 fix unaligned data issue, see Issue 657 2012-10-10 06:35:32 +00:00
erwin.coumans 79989a8d3d Force spuNodeCallback to be 16-byte aligned, so that we can use SIMD. Related to Issue 657
Recompute the quantization values in case the maximum/minimum extends roundtrip using quantize/unQuantize are out-of-range
(alternatively, pass in a larger quantizationMargin)
2012-10-10 04:21:36 +00:00
erwin.coumans a32efa48c1 add BulletQuickstart.pdf and a reference to it from the old Bullet_User_Manual.pdf
add HelloWorld demo to premake
2012-10-08 19:01:47 +00:00
erwin.coumans 30b88f2f8e more work on the new Bullet manual/quickstart guide, and cross reference to HelloWorld.cpp source code 2012-10-06 20:56:44 +00:00
erwin.coumans 48e932c8d6 fix build 2012-10-05 22:12:41 +00:00
erwin.coumans eaabf1a2c8 Expose btManifoldResult::calculateCombinedRestitution and btManifoldResult::calculateCombinedFriction as static member functions, so it can be reused for speculative contacts
Add speculative contact restitution, but disabled by default, not well tested (btDiscreteDynamicsWorld::setApplySpeculativeContactRestitution)
Add --with-double-precision option to premake build system
2012-10-05 21:15:11 +00:00
erwin.coumans 6be2689f01 add joint feedback (applied force and applied torque for a constraint) 2012-10-05 05:37:12 +00:00
erwin.coumans 394bb103f0 Fix src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp
See Issue 643, thanks to Laurent at liquiddragon for the patch.
Fix warning, See Issue 655
2012-10-04 20:32:04 +00:00
erwin.coumans 416b8477b3 start to rewrite the Bullet manual and check-in the Latex source 2012-10-03 19:34:43 +00:00
erwin.coumans 74db95d827 disable sphere-box again, it seems broken
http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=8456

fix some warnings
2012-10-02 02:26:37 +00:00
erwin.coumans 6284ded4a1 remove intptr_t, it breaks the build and it was not necessary 2012-09-29 05:00:46 +00:00
erwin.coumans cfb609f9d1 tweak CcdPhysicsDemo
remove wrong cp.m_lateralFrictionInitialized = false;
See http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=28851#p28851
2012-09-29 01:52:27 +00:00
erwin.coumans 79a792913d Add the option BUILD_MULTITHREADING to CMAKE, only enabled on APPLE and MSVC platforms. This controls multi-core (BulletMultiThreaded), MiniCL, DX11 and OpenCL acceleration.
On other platforms (Linux) it might work, but it is unsupported.
Fix some warnings in btBulletWorldImprter
2012-09-28 19:32:30 +00:00
erwin.coumans 60bf599246 perform GrahamScanConvexHull2D around an arbitrary oriented 2D plane in 3D, to fix some convex hull face merging problems
add compound shape support to BulletXmlWorldImporter and fix some compile issue under Debian (hopefully)
object picking change in the demos: create a ball-socket picking constraint when holding shift while mouse dragging, otherwise a fixed (6dof) constraint
add assert in constraint solver, when both objects have their inertia tensor rows set to zero
btPolyhedralContactClipping: add edge-edge contact point in  findSeparatingAxis (similar to the default GJK case)
2012-09-28 07:14:48 +00:00
erwin.coumans 837e5cb5e0 serialize rolling friction 2012-09-27 16:20:29 +00:00
erwin.coumans 4442a826ed add commandline arguments to serialize demo for xml export and Bullet import file name
update AntTweakBar version in CDTestFramework
add btCompoundShape support in BulletXmlWorldImporter (this importer is still premature/work-in-progress)
2012-09-26 19:47:18 +00:00
erwin.coumans 60c1b1918a fix bug for convex-convex polyhedral contact clipping, where the origin of the object is not located inside the convex hull of the vertices. 2012-09-23 18:35:19 +00:00
erwin.coumans 182c3034de fixes in btBulletXmlWorldImporter, and add premake4 support for the related demo 2012-09-22 05:27:35 +00:00
erwin.coumans 0fa444e851 fix Mac OSX build 2012-09-22 04:26:14 +00:00
erwin.coumans 6f60a388c6 add missing Demos/BulletXmlImportDemo
serialize DynamicsWorldInfo
2012-09-22 02:06:09 +00:00
erwin.coumans f2c9cdfb11 add m_rollingFriction to serialization structures
add btContactSolverInfo and gravity to serialization structures
(actual serialization code will follow soon)
2012-09-21 23:37:24 +00:00
erwin.coumans 214579ec60 Allow btBulletWorldImporter to convert/export a .bullet file to XML
Add first version of btBulletXmlWorldImporter, still incomplete but it can read some files
Fix false assert in btSequentialImpulseConstraintSolver
2012-09-21 22:47:11 +00:00
erwin.coumans 7494463be8 reset the companion Id back to -1, because of a bug related to kinematic objects
Thanks to Francois for the report. See Issue 652
2012-09-20 11:32:27 +00:00
erwin.coumans 5bba00dea4 improve control over rolling friction, use the same m_rollingFriction for both linear factor and absolute clamping value. 2012-09-20 04:18:29 +00:00
erwin.coumans 59a29b1859 fix kinematic objects, see Issue 652
add m_rollingFriction to btRigidBody::btRigidBodyConstructionInfo
2012-09-20 03:32:52 +00:00
erwin.coumans 19583868a9 fix AllBulletDemosOSX, 16-byte alignment and Xcode project 2012-09-17 17:02:33 +00:00
erwin.coumans a76e38eff0 fix link order so that the premake build works under Linux 2012-09-17 16:55:47 +00:00
erwin.coumans 8be5172df5 fix issue in the recent SSE implementation of setInterpolate3
align class
2012-09-17 16:03:47 +00:00
erwin.coumans 90643bec75 fix problem with btCylinderShape creation in RollingFrictionDemo 2012-09-16 19:26:27 +00:00
erwin.coumans 4934ce61fa tweak rolling friction in RaytestDemo 2012-09-16 17:23:39 +00:00
erwin.coumans 22fb7d5c1e improve rolling friction using anisotropic direction, to avoid resting in an instable position
(for implicit capsule, cylinder and cone shape)
See Bullet/Demos/RollingFrictionDemo for an example
2012-09-16 17:01:25 +00:00
erwin.coumans 26c713423f add RollingFrictionDemo 2012-09-15 07:03:23 +00:00
erwin.coumans 7eebb79ced implemented rolling friction, using a contact constraint. Useful to get rolling spheres to rest, even on a slightly sloped plane.
See http://www.youtube.com/watch?v=RV7sBAsKu4M and Bullet/Demos/RollingFrictionDemo
Fixes in FractureDemo (mouse picking constraint needs to be removed, otherwise constraint solver crashes/asserts)
2012-09-15 06:52:17 +00:00
erwin.coumans 54744b6ab9 added gyroscopic force option for btRigidBody, body->setFlags(BT_ENABLE_GYROPSCOPIC_FORCE);
Note that it can easily introduce instability at regular (60Hertz) simulation steps so it is generally best to not use the option.
If needed, use a very small internal step, such as 1000 Hertz (world->stepSimulation(dt,100,1./1000.f); or stepSimulation(1./1000.,0);
2012-09-14 21:39:48 +00:00
erwin.coumans 3e9f35c0fd Add btGearConstraint, with a demo in Bullet/Demos/ConstraintDemo
Thanks to Dimitris Papavasiliou for the idea.
2012-09-13 22:40:39 +00:00
erwin.coumans 2dfde77bac delete some unused projects 2012-09-13 00:25:44 +00:00
erwin.coumans 47cae15fe5 add missing file in AllBulletDemosOSX
fix RaytestDemo CMakeLists.txt
2012-09-13 00:14:30 +00:00
erwin.coumans 737a2829bb remove rigid body gpu pipeline, the latest version is at https://github.com/erwincoumans/experiments 2012-09-13 00:07:58 +00:00
erwin.coumans c2f9d927c2 fix ray test kF_FilterBackfaces and kF_KeepUnflippedNormal flags
add Demos/RaytestDemo to show/test rayTest
fix premake batch files
2012-09-12 23:19:05 +00:00
erwin.coumans 73082e995c enable AMD OpenCL sdk for linux too
Fixes Issue 641
2012-09-12 16:42:03 +00:00
erwin.coumans 9a460942a9 register the gimpact collision algoritm in the SerializeDemo by default 2012-09-11 22:28:41 +00:00
erwin.coumans 2871a3d30f enable import/deserialization of optimizedBvh data in a .bullet file 2012-09-11 19:59:00 +00:00
erwin.coumans 4eb5240cbe Applied patch for character controller by bjorn.wesen. Fixes Issue 644.
Fixed some warnings in double-precision compile
2012-09-11 04:36:57 +00:00
erwin.coumans d99d9779a2 cast to char to avoid C++11 issue
Fixes Issue 716.
2012-09-11 03:58:11 +00:00
erwin.coumans 1b7642f0f5 Prepare for 2.81 release, increase version numbers
Fixed DNA serialization for C++11: avoid negative char values
Fixes 617. (needs to be tested)
2012-09-11 03:49:50 +00:00
erwin.coumans 8c56528a79 Avoid using restitution for ccd motion clamping. Restitution for fast moving objects should be handled by btDiscreteDynamicsWorld::createPredictiveContacts
(make sure to merge islands based on those predictive contacts too, added some check in the solver)
This fixes Issue 356.
Use same solver settings for AllBulletDemos
Make sure to embed the setCcdSweptSphereRadius inside the actual collision shape (for shoot box)
2012-09-11 03:12:32 +00:00
erwin.coumans 9612561113 add btDiscreteDynamicsWorld::createPredictiveContacts after discrete collision detection and add temporary contact manifolds, for the constraint solver.
This should improve 'ccd' handling when using world->getDispatchInfo().m_useContinuous = true;body->setCcdSquareMotionThreshold(...); body->setCcdSquareMotionThreshold(...)
shoot smaller boxes (test)
use yellow instead of orange for contact point normals
tweak default erp and erp2 values, now split impulse is on by default (need to check it)
2012-09-11 00:56:11 +00:00
erwin.coumans 9cfcabfc4c disable all demos for premake4 iOS build (it only compiles HelloWorld, Benchmark and UnitTest for now)
add btAlignedFree to deleteCriticalSection
2012-09-10 16:02:30 +00:00
erwin.coumans 77b662d5fe fix a few more warnings under Windows
fix linker issue due to unsigned/int variable
2012-09-10 04:46:39 +00:00
erwin.coumans 5417bae113 add zigzag heightfield for Ogre compatibility.
Fixes Issue 625. Thanks to KLLoyd!
2012-09-09 22:48:20 +00:00
erwin.coumans f50cf5585a fix MinGW compilation, use size_t instead of unsigned long
add missing virtual methods in SequentialThreadSupport
2012-09-09 22:19:54 +00:00
erwin.coumans e2522c6f9b re-enable debug drawing of box, instead of using the generic convex path.
Fixes Issue 622. Thanks for the report!
2012-09-09 22:08:23 +00:00
erwin.coumans 2fb970ce33 disable debug drawing in btCompoundCollisionAlgorithm
Fixes Issue 600.
Thanks to Stuart for the report.
2012-09-09 21:31:02 +00:00
erwin.coumans 6b8a571438 better fix for memory issue of BulletMultiThreaded
See Issue 271 and
http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=9&t=4043
2012-09-09 21:25:00 +00:00
erwin.coumans ccfbb9fd79 revert memory deletions, should be done properly 2012-09-09 20:57:41 +00:00
erwin.coumans 491c91f486 fix memory leak in BulletMultiThreaded
Fixes Issue 271.
2012-09-09 20:53:55 +00:00
erwin.coumans 7bb4e0e1bd fix ForkLiftDemo update (previous commit)
implement preallocate{Vertices,Indices} in btTriangleMesh. Fixes Issue 647.
2012-09-09 17:59:02 +00:00
erwin.coumans ff72d64ffa fix memory leak in Box2dDemo. Fixes Issue 619. Thanks to Joshua Downer for the report. 2012-09-09 17:31:10 +00:00
erwin.coumans 3b83428a7f Applied polar decomposition patch. Fixes Issue 621. Thanks to Christian for the report, Joshua for the fix, Dongsoo for checking the fix.
Applied picking cloth patch. Fixes Issue 646. Thanks to Dongsoo.
Applied patch Softbody updateConstraints. Fixes Issue 503. Thanks to Dave Bruce Phillips and Dongsoo.
Fix various warnigns under Mac OSX.
2012-09-09 17:22:30 +00:00
erwin.coumans 2700ba17c0 fix memory leak when calling initializePolyhedralFeatures
Fixes Issue 623, thanks for the report/patch!
2012-09-08 19:43:24 +00:00
erwin.coumans b69c6ac3f5 fix padding in btSolverConstraint, see Issue 650
fix some warnings
2012-09-08 19:21:14 +00:00
erwin.coumans 196aa20329 add m_splitImpulseTurnErp solver setting, initialized to 0.1: more stable recovery from deeper penetrations by reducing the angular effect (if split impulse is enabled)
Set it to 1.0 to disable the effect.
removed broken/not maintained heightfield fluid demo
add some API methods to btPersistentManifold
2012-09-03 04:38:08 +00:00
erwin.coumans c1138535f9 use btAssert instead of assert
use __debugbreak for Windows MSVC asserts and asm volatile ("int3");\ on Mac OSX (__i386__ / __x86_64__)
2012-09-02 17:54:30 +00:00
erwin.coumans c28f413e50 remove obsolete IBM Cell SDK makefiles 2012-09-02 17:38:51 +00:00
erwin.coumans 48966ec247 remove the need for ARM_NEON_GCC_COMPATIBILITY definition (arm/Apple/iOS) 2012-08-31 22:41:05 +00:00
erwin.coumans 84b1774dda improve handling of restitution by using the velocity (linear/angular) before applying forces: this is done by re-introducing the btSolverBody and only apply the forces to solver body, and use the original rigid body velocity for restitution computation.
warmstarting for contact points was broken, fix in btPersistentManifold
enable split impulse by default (at the cost of some performance)
add  the option for zero-length friction (instead of recomputing friction directions using btPlaneSpace), use the solver mode flag SOLVER_ALLOW_ZERO_LENGTH_FRICTION_DIRECTIONS
precompute lateral friction directions (in btManifoldResult)
remove the mConstraintRow[3] from btManifoldPoint, it just took a lot of memory with no benefits: fixed it in btParallelConstraintSolver
2012-08-31 19:46:24 +00:00
erwin.coumans 37ebcc3aa6 fix and re-enable sphere-box collision algorithm, Issue 643
Thanks to Laurent for the fix and Thomas for adapting the fix to latest trunk revision!
2012-07-31 17:17:51 +00:00
erwin.coumans 7f6131f0cc fix soft body friction value, Issue 613
Thanks to Jarno for the report and fix.
2012-07-31 17:02:40 +00:00
erwin.coumans 1a3cbb0177 fix unit test under Ubuntu
fixes Issue 629, thanks to joshua.downer for the report and fix
2012-07-31 16:53:44 +00:00
erwin.coumans a734e86453 fix autotools/autoconf see also
http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=8300&p=28416#p28416
2012-07-31 04:40:16 +00:00