Commit Graph

297 Commits

Author SHA1 Message Date
erwin.coumans
f552a1dbbf Remove first argument from btMultiSphereShape, calculate local inertia approximation from aabb.
If user wants more accurate inertia tensor for multi-sphere shape, use btCompoundShape instead 
(amd btCompoundShape::calculatePrincipalAxisTransform)

Thanks rcharlton for bringing this up.
Erwin
2009-06-11 13:51:48 +00:00
erwin.coumans
6c80353556 Minor fix in friction: calculate second friction direction based on un-scaling first friction direction (issue if it was scaled to zero)
Force activation state of static objects to be ISLAND_SLEEPING, once they are added to the world
Add backwards compatibility option btDiscreteDynamicsWorld::setSynchronizeAllMotionStates, just in case only updating active objects broke someones code
Don't disable 3D box-box in box2ddemo
2009-06-11 12:22:41 +00:00
erwin.coumans
3e5fc86a6c Iterate only over non-static rigid bodies, instead of all collision objects
http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=18&t=3625
http://code.google.com/p/bullet/issues/detail?id=128

Attempt to fix issue in mesh striding, multiple-mesh-parts were broken.
2009-06-11 01:25:10 +00:00
erwin.coumans
acf8ed3de5 Re-enabled split impulse: avoids adding linear/angular momentum due to penetration recovery.
Both SIMD and scalar version is supported.
2009-06-10 22:04:06 +00:00
erwin.coumans
a9141d5daf Fix in generic 6dof constraint, when springs/limits/motors are combined
Added btGeneric6DofConstraint::getRelativePivotPosition to read relative linear position of the constraint frame (pivot)
2009-06-06 01:09:06 +00:00
rponom
ee664e7750 Damping for spring motors added
see btGeneric6DofSpringConstraint::setDamping()
2009-06-02 01:10:43 +00:00
rponom
dfa1f033da Bug fix : Instability of spring motor for the 6DOF constraint 2009-05-27 20:20:38 +00:00
erwin.coumans
258ef6e25a + Added joint feedback for constraints, needs testing/demo before 2.75 release.
See also http://www.bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=2677
and http://code.google.com/p/bullet/issues/detail?id=227

To enable, use constraint->enableFeedback(true);
And then either use
constraint->getAppliedImpulse() for an estimated applied impulse,
or constraint-> getAppliedLinearImpulse(), or constraint->getAppliedAngularImpulseA() or constraint->getAppliedAngularImpulseB().

+removed a few warnings.
2009-05-27 01:34:46 +00:00
rponom
056659d2af "Motor at limit" jitter fixed for btGeneric6Dof constraint
This also _should_ fix situation when 6DOF constraint with motor get stuck at limit 
(see forum topic at  http://bulletphysics.com/Bullet/phpBB3/viewtopic.php?f=9&t=3598&p=13603&hilit=ode*#p13603 )
2009-05-27 00:36:02 +00:00
erwin.coumans
0ada7cbb1e Fix in btGjkPairDetector, possibly causing a floating point overflow
Thanks Ole for the report and suggested fix:
http://code.google.com/p/bullet/issues/detail?id=220&can=1&start=200

Applied Character/btKinematicCharacterController.cpp patch:
Thanks Thomas for the patch!
http://code.google.com/p/bullet/issues/detail?id=196#makechanges

 - added a normalizedDirection member variable.  This is
     slightly more efficient than recalculating the normalized
     direction every simulation step.

 - I overloaded the m_walkDirection member variable to hold
     either the walkDirection or the Velocity, and used a boolean
     flag to determine which behavior was required.

 - The normalization behavior seemed custom, and I needed it
     twice, so I moved it to a static helper method.

 - I added the setVelocityForTimeInterval() method to the
     base interface class.  This to me is the scariest change
     since people inheriting from it will need to make changes
     (if only to add an empty function).
2009-05-23 02:28:58 +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
31d3bf7700 compile fixes for trunk on OSX 2009-05-23 01:40:27 +00:00
rponom
c680791ce9 3 new constraints added : btGeneric6DofSpringConstraint, btUniversalConstraint, btHinge2Constraint
Motors for btConeTwistConstraint added (for obsolete solver only)
appConstraintDemo changed to test new constraints
Several coding-style fixes
2009-05-21 22:10:13 +00:00
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