Commit Graph

284 Commits

Author SHA1 Message Date
erwin.coumans
34685cb631 Fixes for Linux compilation,
Thanks to Ole: http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=3590
Add option to select EPA or Minkowski sampling method in btDefaultCollisionConfiguration
2009-05-11 20:35:26 +00:00
erwin.coumans
33029ad996 updated demos -> ALT + mouse uses Maya-style controls, replaced BMF_Fonts by GLDebugFont
fix debug drawing of btMultiSphereShape
added box2d demo
added experimental gpu 2d demo
2009-05-09 19:27:14 +00:00
erwin.coumans
d9c4529a26 + bugfix in btAlignedObjectArray, not calling destructors on resize to smaller array.
Thanks Benoit for pointing this out, and bugfix: http://code.google.com/p/bullet/issues/detail?id=218

+ Added point to point, hinge, slider and generic 6dof constraints to Maya Dynamica plugin
Thanks to Herbert Law for the constribution: http://code.google.com/p/bullet/issues/detail?id=221
2009-05-06 19:55:05 +00:00
erwin.coumans
f3c3d2f156 + disable perturbation for btConvexPlaneCollisionAlgorithm, it introduces artifacts (additional points cause spheres/cylinders and other curved objects to move)
+ applied patch to mix double/single precision meshes independent from double/single precision Bullet build
Thanks to Ole for the patch, http://code.google.com/p/bullet/issues/detail?id=213
+ re-enable warming starting in constraint solver, it was disabled by accident
+ fix btConvexHullShape constructor, so accept vertices with non-16-byte striding
Thanks Shawn Baird for report and fix: http://code.google.com/p/bullet/issues/detail?id=204
2009-05-06 19:13:11 +00:00
erwin.coumans
7ae29bd13e add plSetOpenGLMatrix to Bullet-C-API 2009-03-10 00:13:18 +00:00
erwin.coumans
0cd0529c4a the component of the up axis needs to be scaled, to reduce roll. 2009-03-09 03:53:16 +00:00
erwin.coumans
700db838b1 Add 1D and 2D support for Bullet: using rigidbody->angularFactor(const btVector3& factor) and body->setLinearFactor(const btVector3& linearFactor);
For example, to only allow linear motion in the X-Z plane, and only rotation around Y axis use:
	body->setLinearFactor(btVector3(1,0,1));
	body->setAngularFactor(btVector3(0,1,0));
Fix build issues with CodeBlocks, when generating projectfiles using CMake 2.6:
${OPENGL_glU_LIBRARY} should be ${OPENGL_glu_LIBRARY}
Fix build issue with CodeBlocks, comment out xmlfree in Extras/COLLADA_DOM/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp (will leak memory)
2009-03-08 04:14:17 +00:00
erwin.coumans
0905002e3f make sure to be backwards compatible with spubullet 2.73 sp1 (PLAYSTATION 3 version) 2009-03-03 20:30:31 +00:00
erwin.coumans
90f96aec27 Introduced btActionInterface. This makes it easier to extend user-defined actions, such as vehicles and characters.
btRaycastVehicle and btKinematicCharacterController are derived from btActionInterface now.
Some cosmetic cleanup: changed sourceforce/sf.net url to bulletphysics.com.
2009-03-03 16:18:23 +00:00
erwin.coumans
459c22e7cb Synchronized changes of Bullet, from Blender.
Added optional flag btSoftBody::appendAnchor(	int node,btRigidBody* body, bool disableCollisionBetweenLinkedBodies=false), to disable collision between soft body and rigid body, when pinned
Added btCollisionObject::setAnisotropicFriction, to scale friction in x,y,z direction.
Added btCollisionObject::setContactProcessingThreshold(float threshold), to avoid collision resolution of contact above a certain distance.
Avoid collisions between static objects (causes the CharacterDemo to assert, when a dynamic object hits character)
2009-03-03 06:47:52 +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
a95d0e638e fixes in btConeTwistConstraint, check for btFuzzyZero instead of zero to avoid instability. 2009-02-20 00:53:24 +00:00
erwin.coumans
8acadeb711 minor tweaks to demos: enable constraint debug drawing in AllBulletDemos, default constraint debugging size set to 0.3,
set svn:eol-style native for folder files
http://code.google.com/p/bullet/issues/detail?id=191
2009-02-18 22:52:03 +00:00
rponom
8295114c68 Some improvements for the btConeTwistConstraint:
- member m_fixThresh was added;
- one of two swing rotations become fixed if the corresponding limit is less than m_fixThresh value;
2009-02-18 19:46:42 +00:00
erwin.coumans
4236764cfb enable 'getAngularFactor' again
add getAppliedImpulse accessor to btManifoldPoint
2009-02-17 20:38:54 +00:00
erwin.coumans
d886c06fa5 Add the option for the btSimulationIslandManager to avoid splitting islands (for constraint solving)
Move the convertContact inside constraint solver to its own method
2009-02-13 02:34:46 +00:00
erwin.coumans
7a2a98078a Fixes for broadphase/paircache determinism.
Revert definition for ATTRIBUTE_ALIGNED16, and try to force sizeof(btSolverConstraint) by using unions with btScalar, for non-btScalar data types.
Use btAssert and not assert.
Don't access btAlignedObjectArray elements, for zero sets
2009-02-10 23:50:21 +00:00
john.mccutchan
be3260280a Fix for issue #192
Also: Avoid divide by zero before OpenGL window is up
2009-02-10 22:10:21 +00:00
erwin.coumans
d0572bdef7 revert to use non-obsolete implementation, thanks to Kate for bringing this up.
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=3191
2009-02-10 17:22:05 +00:00
rponom
c94cad8cba Added a possibility for btHingeConstraint to use frame of rigid body A as a reference frame at construction time.
It is off by default, so the existing code should work as before
2009-02-10 02:42:54 +00:00
erwin.coumans
5593a23417 upgrade version of projectfiles, cmake
fix build for msvc 6.0
2009-02-06 05:37:37 +00:00
erwin.coumans
f7092c0767 version update to 2.74 2009-02-06 05:02:33 +00:00
erwin.coumans
2162f6663d disable help text by default in AllBulletDemos (text slows down many graphics cards)
improve CollisionDemo.cpp, show multi-contact generation using perturbation
improve ColladaConverter: add hinge/point 2 point constraint conversion support, add btScaledTriangleMeshShape support
Fix Dynamica MayaPlygin: remove 'active' flag, it has to be replaced by mass=0 for active, mass<>0 for passive
Added missing projectfiles
Fixed single-shot contact generation. it is disabled by default to improve performance
Bugfixes for character controller, thanks to John McCutchan for reporting
Constraint solver: better default settings
btDefaultAllocator: aligned allocator uses non-aligned allocator (instead of directly malloc/free)
disable memalign by default, use Bullet's aligned allocator
2009-02-06 03:20:43 +00:00
rponom
2766d19d65 Bug in 6DOF constraint fixed
Twist is now locked when twistSpan == 0 for btConeTwistConstraint
Hinge axis for rigidBodyB is no longer flipped
2009-02-06 00:04:32 +00:00
erwin.coumans
f4ad4b9d00 add generic btConeTwistConstraint::setLimit, and change defaults for limit drawing 2009-02-04 02:41:16 +00:00
rponom
2f23237185 Improved and more stable btConeTwistConstraint (thanks to Edy Boxerman) 2009-02-04 02:11:45 +00:00
erwin.coumans
0754876d77 Calculate multiple contact points (for convex-convex and convex-plane) when less then 3 points exist in the persistent manifold.
Uses the normal pertubation method, described by Gino van den Bergen:  http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=4&t=288&p=888#p888
Made btRigidBody::getInvInertiaDiagLocal const, thanks to abhikp (http://code.google.com/p/bullet/issues/detail?id=183 )
2009-02-03 00:54:01 +00:00
erwin.coumans
57fb21879b Expose various advanced friction options to the developer, and use a higher-quality friction model by default, to match ODE quickstep constraint solver.
Thanks to Martijn Reuvers for bringing this up, and reproduction case.
See issue here: http://code.google.com/p/bullet/issues/detail?id=177
2009-01-20 01:21:48 +00:00
erwin.coumans
d1263be23f Fix compile error: invalid initialization of non-const reference of type ‘btVector3&’ from a temporary of type ‘btVector3’ 2009-01-16 05:21:54 +00:00
rponom
e7ca0e6a9c Bug in Generic 6DOF joint fixed
Debug visualization of joint constraints was added
2009-01-16 03:04:07 +00:00
rponom
33fe793bcd a bug in the btHingeConstraint motor for SIMD solver fixed 2009-01-13 20:23:29 +00:00
john.mccutchan
ff274a2e77 Allow setting up axis on kinematic character controller 2009-01-12 17:11:35 +00:00
rponom
682dd3262b Bug in the sign of linear motor force for btSliderConstraint fixed 2009-01-09 00:32:06 +00:00
john.mccutchan
a8ec916af0 Added Height Field Fluid Demo to Bullet. All code stored in the Demos/HeightFieldFluidDemo directory for now.
Please see HfFluidDemo.cpp for examples of how to use the height field fluid along with buoyant collision shapes.

The implementation is still lacking in my ways:
1) Need to complete more collision algorithms for buoyant collision shapes
2) Support compound buoyant shapes
3) The buoyancy model isn't that great
4) Fluid volume can be lost over time
2009-01-08 22:53:23 +00:00
rponom
1991bf3013 Added getInfo1()/ getInfo2() code for joints to support the new SIMD constraint solver 2008-12-25 02:13:46 +00:00
erwin.coumans
8ed2db9b42 finally applied this 'getGravity' patch, so getGravity matches setGravity.
Thanks to Evgeny for the report/patch:
http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=1852
http://code.google.com/p/bullet/issues/detail?id=23
2008-12-09 02:16:05 +00:00
erwin.coumans
b89b71b38d improving the SSE constraint solver performance: avoid a FPU/minus operation, by replacing a _mm_add_ps(-normal,X) by _mm_sub_ps(X,normal) 2008-12-03 17:40:01 +00:00
erwin.coumans
452fd24501 use 0.2 for erp, 0.4 makes stacks very spungy 2008-12-03 06:09:25 +00:00
erwin.coumans
a064fd2052 Use the opposite constraint axis inside the constraint solver for the second object (-normal).
This makes it easier to port existing constraints and makes it 100% compatible with ODE quickstep constraint layout (getInfo2)
2008-12-03 04:52:23 +00:00
erwin.coumans
76b3e44117 Enable contact constraint in the obsolete/experimental SpuParallellSolverTask. It will be replaced by a better parallel constraint solver. 2008-12-02 07:39:13 +00:00
erwin.coumans
5383ed4930 + need to reset rigid body using 'setCenterOfMassTransform' to reset world inertia tensor
+ fixes in compound algorithm -> recompute contact points
+ add debug drawing to some demos.
+ revert btJacobianEntry change
+ replace dCROSSMAT by btVector3::getSkewSymmetricMatrix
2008-12-02 04:01:56 +00:00
erwin.coumans
bfa8ebfbd8 fixes to keep compiler and unix/libspe developers happy 2008-12-01 16:22:43 +00:00
erwin.coumans
dd21959709 Minor fixes to keep trunk compiling, while doing the refactoring. 2008-12-01 07:24:39 +00:00
erwin.coumans
7341c6ee7e Minor fixes to keep trunk compiling, while doing the refactoring. 2008-12-01 06:55:27 +00:00
erwin.coumans
e80feca36b Big work-in-progress refactoring of the constraint solver:
1) Add fast branchless SIMD support for constraint solver (Windows only until we get other contributions).
See resolveSingleConstraintRowGenericSIMD in Bullet/src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp
resolveSingleConstraintRowGenericSIMD can be used for all constraints, including contact, point 2 point, hinge, generic etc.

2) During this refactoring, all constraints support the obsolete 'solveConstraintObsolete' while we add 'getInfo1' and 'getInfo2' support.
This interface is almost identical interface to Open Dynamics Engine, to make it easier to port Dantzig LCP solver.

3) Some minor refactoring to reduce huge constructor overhead in math classes.
2008-12-01 06:41:25 +00:00
erwin.coumans
82047e601e updated Bullet sequential impulse constraint solver, so it matches 100% ODE PGS quickstep solver innerloop, mainly by renaming variables... 2008-11-26 00:27:35 +00:00
erwin.coumans
7dda192bfc duplicate class name causes crashes, thanks to Nado and mickey for the report
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?t=2884
2008-11-20 19:18:48 +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
686accab16 + repaired SpuParallellSolverTask: support for warmstarting and added btAssert for constraint sizes that exceed CONSTRAINT_MAX_SIZE
+ Share some more code between SpuParallelSolver and btSequentialImpulseConstraintSolver (both use btSolverBody now)
Lack of warmstarting reported here: http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2858
+ allow btBoxBoxDetector to execute on SPU.
2008-11-16 05:48:42 +00:00