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
e610598d33
- Added compressed/quantized AABB tree, 16 bytes per node, while supporting 32-bit (triangle) indices. Should be faster and smaller then original version (quantized aabb check is done in integer space)
...
Original aabb nodes are 44 bytes (with full floating point precision and additional part index)
- added meter-unit scaling support in ColladaConverter.cpp
2007-02-25 06:11:23 +00:00
ejcoumans
a5bf6a1254
use solvermode 'randomized' and not warmstarting
2007-02-13 16:47:04 +00:00
ejcoumans
581468ceec
Added btCapsuleShape. This could already be simulated by simply adding 2 spheres to the btMultiSphereShape, but this was bad documented/unknown.
...
For tapered capsules, you can still use btMultiSphereShape, just pass 2 spheres with different radius.
2007-01-30 00:09:08 +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
b6d1b4c94e
Added btNearCallback. This is similar to Open Dynamics Engine (ODE) dNearCallback, but important differences:
...
- contact points are persistent (lifetime more then one frame, for warmstarting/incremental contact point management)
- continuous collision detection, time of impact
Added btRigidBody::isInWorld(), returns true if btRigidBody is inside a btCollisionWorld/btDynamicsWorld derived class
Added angularFactor to btRigidbody, this helps some character control (no angular impulse applied)
2006-12-04 15:42:03 +00:00
ejcoumans
8cbd721a1f
added some brute-force way to shrink convex polyhedra (to compensate collision margin)
...
made Extra/EPA compile again, updated Pierre's testbed to compile out-of-the-box
2006-11-11 03:22: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
23c64fb0db
more solver experiments, randomize the order of contact points, not just manifolds
...
use #defines for constants, rather then const btScalar
2006-11-04 05:22:36 +00:00
ejcoumans
07873854a4
more small refactoring: some methods were still upper-case.
2006-11-03 04:32:48 +00:00
ejcoumans
4050da0e2f
One of the last parts of the refactoring (hopefully), made most members of btCollisionObject protected.
...
Also did some work on improving the constraint solver.
2006-11-02 03:42:53 +00:00
ejcoumans
b14ccdaa57
rename treshold into thresold (spelling mistake)
...
added cr/linefeed at end of btDefaultMotionState.h
2006-10-30 05:06:46 +00:00
ejcoumans
caca3a1ca2
commented out some unused headerfile in the demo
2006-10-28 02:17:54 +00:00
ejcoumans
3fe3b11924
use Dispatcher in ConcaveConvexCollisionAlgorithm (so it uses the registered collision algorithm, not hardcoded convexconcave)
...
improved performance of constraint solver by precalculating the cross product/impulse arm
added collision comparison code: ODE box-box, also sphere-triangle
added safety check into GJK, and an assert for AABB's that are very large
write partid/triangle index outside of GJK
2006-10-28 02:06:19 +00:00
ejcoumans
289c5ca7fe
improvements/bugfixes related to kinematic(animated) objects, synchronizeMotionStates
2006-10-19 15:20:38 +00:00
ejcoumans
3a6942fb91
processed a lot of feedback: added 'realtime' simulation with fixed substeps (and clamping maximum number of substeps), this means that when stepSimulation is called with smaller timesteps then 'fixed substep' the motionstate is interpolated.
...
renamed m_ccdSweptSphereRadius,
enabled wireframe debugDrawObject (using debugDrawer)
2006-10-18 03:28:42 +00:00
ejcoumans
b476223c45
added/documented some options
2006-10-14 00:16:55 +00:00
ejcoumans
3db4afa4ec
disable comparison by default
2006-10-14 00:06:46 +00:00
ejcoumans
d878885db4
updated quickstep solver (for comparison), enabled GPU physics again (but WIN32 doesn't have the VertexTextureSupport enabled)
2006-10-13 23:58: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
323a1046fd
Cleaned up/simplified construction of a btRigidBody
...
Fixed memoryleak in btOptimizedBvh (delete []m_contiguousNodes;)
Changed DemoApplication::localCreateRigidBody, so it adds the rigidbody to the btDynamicsWorld.
Added check for duplicate objects in world when adding.
Added assert to prevent setLinearVelocity on static rigidbodies
Added btCollisionFilterGroups to btBroadphaseProxy
removed duplicate 'btBroadphaseProxy* m_broadphaseProxy;' in btRigidBody
2006-10-04 23:46:27 +00:00
ejcoumans
d38549aa54
more refactoring, removed PhysicsInterface, cleaned up demos to make use of btDynamicsWorld derived classes.
...
removed two cached optimizations, type in btTransform and cached inverse transform (todo: test performance impact)
committed fixes that make the code adhere to 'who creates it, also destroys it'
2006-09-30 01:36:39 +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
ejcoumans
eb23bb5c0c
merged most of the changes from the branch into trunk, except for COLLADA, libxml and glut glitches.
...
Still need to verify to make sure no unwanted renaming is introduced.
2006-09-27 20:43:51 +00:00
ejcoumans
0e04cfc806
First stage in refactoring Bullet: moved Bullet Collision and Dynamics and LinearMath into src folder, and all files in Collision Detection and Dynamics have bt prefix.
...
Made all buildsystems to work again (jam, msvc, cmake)
2006-09-25 08:58:57 +00:00
sjbaker
f1627677df
Fixed over 500 compile warnings. Mostly:
...
* Unused variables.
* Missing newlines at ends of #included files.
* signed int loop variables where the termination condition is an unsigned 'get number of' function.
* 'NULL' used inappropriately for an integer or character constant (NULL is a pointer)
* abstract base classes with no virtual destructor.
* Floating point constants used to initialise integer variables.
2006-09-23 14:51:54 +00:00
ejcoumans
5ed0cf5b7f
improved performance, and allowed custom friction and contact solver models. See CcdPhysicsDemo #define USER_DEFINED_FRICTION_MODEL
2006-09-20 00:49:33 +00:00
ejcoumans
d375a474b3
fixed broadphases after performance optimizations
2006-09-19 06:08:54 +00:00
ejcoumans
84afe40064
changed version number, moved SphereSphere algorithm and decreased default number of rigidbodies from 3250 back to 250.
2006-09-19 04:58:11 +00:00
ejcoumans
8c023e764c
started working on some serious performance improvements. now the union find is optimized, the broadphase add/remove overlapping pair was too slow. added a stl::set to keep track of overlapping pairs. this speeds up the set find/remove. work in progress.the SimpleBroadphase is broken. will be fixed tomorrow.
...
Did some tests with 3000 rigidbodies, works much smoother now :)
2006-09-19 02:59:30 +00:00
ejcoumans
43370aaa4f
first step in refactoring/cleaning up demos
2006-09-11 05:31:22 +00:00
ejcoumans
fa96109cd9
Exposed another glut method (the demos really require cleanup soon!)
...
First steps for a raycast-vehicle demo (far from finished)
2006-09-05 07:36:55 +00:00
ejcoumans
ee3ca06b20
added additional quickprof timer for rendering
2006-08-17 09:41:56 +00:00
ejcoumans
d931aae32f
added basic CCD calculations for Compounds and non-convex (convex-versus-concave).
2006-08-11 04:10:37 +00:00
ejcoumans
50a2694c5b
more compounds work, the basics work. now some stackless tree-tree traversal is needed to speedup compound versus compound.
2006-07-24 23:06:59 +00:00
ejcoumans
fdaa3a7abc
some work on compound collision shapes (not finished yet)
2006-07-24 05:22:56 +00:00
ejcoumans
ccad7b2f22
'Think Different': enabled some demos to compile for OS X -i386
2006-07-10 05:25:06 +00:00
ejcoumans
faa1dc90be
debug drawing for ParallelPhysicsEnvironment
2006-07-05 05:22:09 +00:00
ejcoumans
62593f8b99
refactoring of TriangleMeshShape, introduced ConcaveShape, which allows for StaticPlaneShape and future landscape/heightfield shape
2006-07-03 22:41:19 +00:00
ejcoumans
e190b3cb79
Added basic gather/scatter to simulation island (for ParallelIslandDispatcher/ParallelPhysicsEnvironment.
2006-07-02 05:33:35 +00:00
ejcoumans
a359212fb3
more work on parallel dispatching of simulation islands
2006-07-01 03:33:05 +00:00
ejcoumans
2d80bae6e3
fairly large refactoring of dispatcher/simulation island management, to allow for parallel simulation.
2006-07-01 00:22:15 +00:00
ejcoumans
8e91b0cd68
ParallelPhysicsEnvironment development started
2006-06-30 05:39:15 +00:00
ejcoumans
3a85557c29
Refactoring for parallel processing of islands, collision detection and constraint solving.
2006-06-30 00:41:09 +00:00
ejcoumans
9824a49f08
adjusted the default numbodies for CcdPhysicsDemo
2006-06-29 21:19:22 +00:00
ejcoumans
5d1c4ddd68
adjusted the default number of bodies in CcdPhysicsDemo
2006-06-29 21:16:05 +00:00
ejcoumans
54641d98f7
lowered the default number of objects
2006-06-29 21:13:29 +00:00
ejcoumans
9105c3af5a
Refactoring:
...
Moved optional code to Extras: AlgebraicCCD,EPA,quickstep
Moved SimpleBroadphase data to OverlappingPairCache, and derive both SimpleBroadphase and AxisSweep3 from OverlappingPairCache.
Added ParallelPhysicsEnvironment (prepair more parallel mainloop)
Upgraded hardcoded limit from 1024/8192 to 32766/65535 (max objects / max overlapping pairs)
2006-06-29 20:57:47 +00:00
ejcoumans
7a0a0941f9
moved filters in CcdConstructionInfo
2006-06-25 21:03:10 +00:00
ejcoumans
c8a0c95195
added basic collision filtering, in broadphase. more advanced collision filtering should happen in CollisionDispatch::NeedsCollision
...
fixed CcdPhysicsDemo: don't pick static objects, it create a point 2 point constraint, which assert in jacobian generation
2006-06-25 19:36:50 +00:00