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
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
22dc2ca6c3
fix for btGeneric6DofConstraint, when the btRotationalLimitMotor goes over PI or under -PI.
...
See http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=5046&p=27113#p27113
Thanks zlash for the fix/report and Flix for the reminder.
2012-02-18 09:21:16 +00:00
erwin.coumans
4e8596eef5
Added some helper methods for constraints and btMatrix3x3,
...
Thanks to francois, See Issue 466
Prevent crash in SoftBodyDemo, when picking constraints and demo-mode switches to next demo.
2011-02-27 03:28:53 +00:00
erwin.coumans
c49927b4ed
Use cylinder inertia tensor, instead of box, by default.
...
See Issue 427
Expose some internal data for constraints,
Thanks to Francois Sugny, see Issue 420
2010-11-17 23:55:39 +00:00
erwin.coumans
07f51390ea
Fix for the non-virtual implementation of btGeneric6DofConstraint (mainly for Cell SPU purposes):
...
Need to explicitly call testAngularLimitMotor(i);, because it cannot be called during 'getInfo1', because m_rbA and m_rbB is not available.
2010-04-05 20:18:53 +00:00
erwin.coumans
d4c3633405
Get rid of btSolverBody and use btRigidBody directly. btSolverBody didn't improve performance after all, due to random-access
...
Tweak the BenchmarkDemo a bit:
1) disable deactivation in graphical mode
2) add some settings that increase performance in the BenchmarkDemo2 (1000 stack) from 35ms to 15ms on this quad core (at the cost of a bit of quality)
2010-02-11 20:30:56 +00:00
erwin.coumans
2e094c62ac
remove a little bit of code duplication, small fix (nrow should be srow), and initialize return value to SIMD_INFINITY for nonvalid parameters/axis.
2010-02-04 23:06:25 +00:00
rponom
5eeb624585
Bug fixed (m_useOffsetForConstraintFrame initialization)
2010-02-04 21:24:47 +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
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
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
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
1808ec6a0e
Some more minor improvements for PS3 SPU version
2009-08-05 23:25:44 +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
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
dfa1f033da
Bug fix : Instability of spring motor for the 6DOF constraint
2009-05-27 20:20:38 +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
5593a23417
upgrade version of projectfiles, cmake
...
fix build for msvc 6.0
2009-02-06 05:37:37 +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
rponom
e7ca0e6a9c
Bug in Generic 6DOF joint fixed
...
Debug visualization of joint constraints was added
2009-01-16 03:04:07 +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
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
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
1996004b01
removed a few unused variables
2008-11-08 05:29:19 +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
rponom
6141a55f09
Added linear and angular motors for the slider constraint
2008-05-23 22:52:51 +00:00
erwin.coumans
bd97c5e569
Fixed warnings in Bullet/src core library
...
Thanks Martijn Reuvers from Two Tribes B.V. (www.twotribes.com) for the patch
To make this work more visible, suppress warnings in external libraries in Extras (COLLADA_DOM, libxml and glui contain many warnings)
Added PreprocessorDefinitions: _CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE to vcproj files
2008-05-10 18:00:21 +00:00
rponom
ce0075c96f
Accumulated impulse cleaning for the 6DOF constraint added
2008-03-27 22:31:11 +00:00
ejcoumans
811c105c24
align btQuadWord on 16byte boundary
...
slightly improved friction model
2007-09-25 06:58:53 +00:00
ejcoumans
0300e8fa12
Applied patch/contribution to improve btGeneric6DofConstraint. See also GenericJointDemo/Ragdoll.cpp
...
Thanks Francisco Leon/projectileman.
2007-09-13 07:22:40 +00:00
ejcoumans
ec22825e65
added parallel solver (work in progress) and made modifications to demo/constraints to allow for getting the type without using virtual functions (needed on CELL SPU processors)
2007-08-12 17:27:33 +00:00
ejcoumans
bba61c834c
applied some reported bugfixes, angular limit issue, limit scaled from -2.0 -> -1.0
2007-06-23 00:54:08 +00:00
ejcoumans
bc3f9535ad
cleaned up, removed warning under MSVC2005 (Level 4)
...
Mostly related to alignment and unused variables
2007-04-13 01:37:21 +00:00
ejcoumans
adfdea5ca6
replaced #include "new.h" to #include <new>
2007-03-06 23:40:06 +00:00
ejcoumans
054d672592
- removed STL from the Bullet library: replace std::vector by btAlignedObjectArray. Also removed the std::set for overlapping pair set, and turned it into an overlapping pair array. The SAP only adds objects, never removed. Removal is postponed for during traversal of overlapping pairs (duplicates and non-overlapping pairs are removed during that traversal).
...
- added heap sort and binary search/linear search to btAlignedObjectArray
- fixed wrong cast, thanks Hamstray, http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1015
2007-03-06 09:59:17 +00:00
ejcoumans
df9230327c
Contribution to add optional double precision floating point support. Define BT_USE_DOUBLE_PRECISION for all involved libraries/apps.
2006-12-16 05:51:30 +00:00
ejcoumans
6dff5a218e
process contact and non-contact constraints inside the same iteration loop
...
added first draft for hingeConstraint motor
2006-12-12 03:15:11 +00:00
ejcoumans
438230b95b
added proper clipping of angular limits in generic d6 ConstraintSolver/btGeneric6DofConstraint.cpp
...
added trianglebuffer (easier GIMPACT integration)
2006-11-10 22:56:45 +00:00
ejcoumans
56e135874b
added angular limits to the Generic D6 constraint. Works for small angles. Will add a check for different combinations, and use different extraction of ordering of rotation from the diff quaternion.
...
Improved vehicle interpolation of wheels, and added Z-up axis option for the Demo
made 'getWorldTransform' const method in btMotionState
added future 'deactivationCallback'(not used yet)
2006-11-10 04:00:16 +00:00
ejcoumans
db65601f9a
added LCP clamp for linear limit on the generic D6 joint
2006-11-07 22:11:15 +00:00
ejcoumans
c3ed55057c
- added linear limits to btGeneric6DofConstraint and made sure the linear axis are in local space of objectA
...
- use microseconds instead of milliseconds for deltatime
2006-11-07 02:32:52 +00:00
ejcoumans
bf847b839a
another large series of changes, related to the refactoring.
...
CompoundShapes are tricky to manage with respect to persistent contact points and swapped order of btCollisionObjects,
During dispatch, finding an algorith etc. order can be swapped.
fixed several other issues, related to SimpleBroadphase (removing a proxy was not working)
2006-10-06 05:22:13 +00:00
ejcoumans
2b1657b1dd
Refactoring: another huge number of changes, renamed methods to start with lower-case.
2006-09-28 01:11:16 +00:00