Commit Graph

280 Commits

Author SHA1 Message Date
erwin.coumans
99d9fddc42 add name for collision shape and constraint serialization (to objects, shapes and constaints can be mapped to user data)
updated serialization structures and header files (for new 'm_name' field, replacing user pointer)
fix issue with  btGeneric6DofConstraint::setParam in headerfile
2010-02-04 05:28:17 +00:00
rponom
af1dafc659 Fix for the slider constraint (case when useLinearReferenceFrameA == false) 2010-02-04 01:21:45 +00:00
erwin.coumans
1cd52f3d11 Removed empty constructors for constraints, I don't recall why we added them (possibly SPU) but if we really need them we have to revert this.
Moved static fixed body into a static function 'getFixedBody' to avoid issues when embedding Bullet in C#/CLI managed code.
2010-02-03 23:02:33 +00:00
erwin.coumans
d58081ce37 Provide easier access to CFM and ERP (and Stop ERP/Stop CFM) for constraints in a similar way to Open Dynamics Engine
virtual	void	btTypedConstraint::setParam(int num, btScalar value, int axis = -1) = 0;
virtual	btScalar btTypedConstraint::getParam(int num, int axis = -1) const = 0;
	
Parameter can be BT_CONSTRAINT_ERP,BT_CONSTRAINT_STOP_ERP,BT_CONSTRAINT_CFM,BT_CONSTRAINT_STOP_CFM
Axis is 0 .. 5, first 3 for linear degrees of freedom, last 3 for angular. If no axis is specified it will take the 'default' degree of freedom. For a btHingeConstraint this would be the hinge axis (5)
2010-02-03 22:16:09 +00:00
erwin.coumans
788f48643b remove all warnings on Mac OSX Snow Leopard 2010-01-30 22:31:56 +00:00
rponom
d5f5ddf2f1 Bullet debug draw added
It is off by default, see attributes of dSolverNode to turn it on
2010-01-30 04:21:12 +00:00
erwin.coumans
725411a1f3 added a warning to all serialization structures:
///do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
2010-01-27 02:41:38 +00:00
erwin.coumans
00f58e5a91 added basic serialization for several constraints including btPoint2PointConstraint, btHingeConstraint, btSliderConstraint, btConeTwistConstraint, btGeneric6DofConstraint
(no motor support or advanced settings yet)
added btStaticPlaneShape serialization
Added toggle in cmake for BenchmarksDemo to enable/disable graphics rendering
2010-01-27 02:13:56 +00:00
rponom
e459145b91 Crash bug when "mesh" applied twice fixed
Constraints reworked - all of them could now work with one or two bodies

Modification of constraint frames and initial positions of rigid bodies
now allowed at start frame only

Plugin version is set to 2.76
2010-01-23 03:15:43 +00:00
erwin.coumans
4280f54ccf Get rid of some warnings, mainly unused parameters/variables.
Thanks sparkprime for the patch, see http://code.google.com/p/bullet/issues/detail?id=330
2010-01-19 06:10:27 +00:00
erwin.coumans
63bb1bab94 fixes to make VC6 compiler (and its users) happy 2009-12-22 21:27:27 +00:00
rponom
0d80aa855e Improved math precision for btHingeConstraint and btSliderConstraint (btAtan2() used instead of btAtan2Fast()) 2009-12-02 00:53:53 +00:00
rponom
f919baf03d Improved Slider, Hinge and Generic6DOF constraint setup.
Turned on by default, use m_useOffsetForConstraintFrame = false to use old setup
Use "O" (capital 'o') button to toggle it in SliderConstraintDemo and ConstraintDemo

Total applied impulse copied back from btSolverConstraint to btTypedConstraint
2009-11-25 23:52:12 +00:00
rponom
da9937e06e Bug in btGeneric6DofSpringConstraint::setEquilibriumPoint(int index) fixed 2009-11-05 18:34:19 +00:00
erwin.coumans
703582f4fa apply fix for btAcosf/btAsinf (numerical issue causes values of X become slightly larger than 1 or smaller than -1, causing NaNs)
manually add some missing files to msvc projectfiles for now
fix in box-box collision detector, preventing it to fail in some rare cases
remove redundant line in btHingeConstraint, thanks to teravus
fix mouse drag camera rotation issue (modulo 360 instead of 180)
2009-10-09 23:35:00 +00:00
erwin.coumans
da4a1b14b5 Add support for target motion and slip/cfm for both friction directions.
It can be handy for effects such as powered conveyor belt effect or sideways slipping tyre friction.
2009-09-18 07:48:15 +00:00
erwin.coumans
d67aa861f2 Add support for childshape index for btCompoundShape during ContactAddedCallback,
see example in Bullet/Demos/ConvexDecompositionDemo
Removed some warnings
2009-08-11 00:30:41 +00:00
erwin.coumans
aef97d6015 Share btGjkPairDetector, btGjkEpa2, btVoronoiSimplexSolver with SPU/Multithreaded implementation (remove duplicate code)
Make btTypedConstraint and btPersistentManifold both derive from btTypedObject to make SPU-side generic constraint solver easier.

Note: all build systems need to be updated: remove SpuVoronoiSimplexSolver.cpp, SpuGjkPairDetector.cpp, SpuEpaPenetrationDepthSolver.cpp, SpuGjkEpa2.cpp
2009-08-07 08:57:56 +00:00
erwin.coumans
5d2cf447e4 Some more minor improvements for PS3 SPU version 2009-08-06 20:03:09 +00:00
erwin.coumans
709f981390 remove redundant methods
thanks ejtttje for the patch:
http://code.google.com/p/bullet/issues/detail?id=262
2009-08-06 03:48:01 +00:00
erwin.coumans
1808ec6a0e Some more minor improvements for PS3 SPU version 2009-08-05 23:25:44 +00:00
erwin.coumans
3e2529fcb5 Minor constraint refactoring, to allow SPU-side processing for PLAYSTATION 3 (added non-virtual methods)
Also comment-out some code for __SPU__ to reduce code size
Added btContactConstraint (only used on PS3 SPU right now, better to use btPersistentManifold directly for contact constraints)
Improved readblend utility library (see also usage in http://gamekit.googlecode.com with Irrlicht)

Fix for btConvexConvexAlgorithm, potential division by zero
Thanks linzner http://code.google.com/p/bullet/issues/detail?id=260
2009-08-05 22:14:46 +00:00
rponom
99f6ff7cf3 Some fixes to work with constraint angle limits close to -PI or PI 2009-06-12 01:23:47 +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
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
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
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
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
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
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
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