Commit Graph
52 Commits
Author SHA1 Message Date
ejcoumans 804d99e392 fixed bug in PolyhedralConvexShape supportmapping, and better description for GJK max iteration exit 2006-09-24 04:21:11 +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 7c61399313 fixed two recently introduced bugs, that cause crashes when removing objects.
one related to UnionFind optimization, the other to broadphase optimizations. Should do better unittesting next time!
2006-09-23 02:00:33 +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 7faf84d784 accidental typo 2006-09-19 18:07:27 +00:00
ejcoumans eb6664f7c2 issue with OS X and std::set, erase doesn't return an iterator. todo: check this 2006-09-19 07:06:23 +00:00
ejcoumans d375a474b3 fixed broadphases after performance optimizations 2006-09-19 06:08:54 +00:00
ejcoumans 163948e351 strange, stl::set<>::iterator is a const iterator under Apple... 2006-09-19 05:14:11 +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 60fe5affd7 island management bug 2006-09-15 00:01:19 +00:00
ejcoumans 0607bfe9de optimized the island management. It was unoptimized, and becomes a bottleneck for large amounts of objects. 2006-09-14 23:43:50 +00:00
ejcoumans 1a6333e709 2006-09-11 05:31:56 +00:00
ejcoumans 7b5da11662 dispatcher was missing actual implementation for user-registration function 2006-09-08 02:41:47 +00:00
ejcoumans 4365199a47 added optional striding to ConvexHullShape 2006-09-07 22:58:29 +00:00
ejcoumans fa4fd1369c Added support for SHORT/WORD indices
Removed references to m_userPointer (in CollisionObject), called it m_userObjectPointer
increased view distance in glut demo file
2006-09-06 22:21:12 +00:00
ejcoumans 400376289c 2006-09-06 00:38:12 +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 a0c157ed85 fixed memoryleak,
added RayTestSingle to CollisionWorld
prepared to add VehicleDemo
2006-09-04 21:28:32 +00:00
ejcoumans 1048793061 fixed collision bug involving meshes/compounds: always keep point with deepest penetration
increased default number of objects/overlaps in broadphase to 20k/60k
2006-09-04 18:54:36 +00:00
ejcoumans b76e642506 fixed one performance problem with sleeping objects 2006-09-02 01:50:16 +00:00
ejcoumans d36abec2a9 updated projectfiles for ColladaConverter, and added Cmake mention in doxygen frontpage 2006-09-02 00:01:26 +00:00
ejcoumans e1b85d1969 Got a license from Intel for vtune. The first performance analysis showed an unexpected bottleneck:
apparently the UnionFind / island management had unexpected overhead. Added path compression to the UnionFind::find operation, and iterative over the actual islands, rather then over all number of objects.
2006-08-29 23:37:32 +00:00
ejcoumans 4cdcee8871 updated CMakeLists.txt to include LibXML and LibColladaDom, and use better naming for libs. This should allow autogeneration of visual studio projectfiles, and Apple XCode projectfiles for COLLADA_DOM demo. 2006-08-28 01:26:31 +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 16781831dc added initial support for per-triangle material properties in a non-convex mesh. needs testing. 2006-08-10 08:18:05 +00:00
ejcoumans 3a27e8b1bf Added preliminary CMake buildsystem support, it can autogenerate projectfiles/makefiles etc. Including Mac OS X Xcode.
This provides a better maintainable alternative to jam/msvcgen
2006-08-09 19:38:21 +00:00
ejcoumans 8bf47140fe prepare for AABB tree traversal for compound objects 2006-07-25 00:30:15 +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 faa1dc90be debug drawing for ParallelPhysicsEnvironment 2006-07-05 05:22:09 +00:00
ejcoumans d2570694a9 added debug drawing for concave objects (draws overlapping triangles) 2006-07-05 05:03: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 a359212fb3 more work on parallel dispatching of simulation islands 2006-07-01 03:33:05 +00:00
ejcoumans 57e8bd87d1 updated version/projectfiles with new files 2006-07-01 00:34:43 +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 3a85557c29 Refactoring for parallel processing of islands, collision detection and constraint solving. 2006-06-30 00:41:09 +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 7e9aa9d5f8 added notice that CompoundShape is placeholder, not implemented yet 2006-06-25 21:27:31 +00:00
ejcoumans 35c2da987e preparation for compound collision shapes 2006-06-25 19:53:07 +00:00
ejcoumans 93fda830d4 accidently made CollisionGroup filter/mask int, instead of short int 2006-06-25 19:40:59 +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
ejcoumans 09aeefe029 Allow multiple meshes to be used in the TriangleIndexVertexArray (this name is bad, is should be 'MeshArray'.
Renamed some 'box' into 'convex' in ConvexConcaveCollisionAlgorithm (it is generic for all convex objects, not for boxes).
2006-06-25 14:50:38 +00:00
ejcoumans 2eed545a70 enable to suspend and restore dynamics. also, catched the case where failed dynamics (resulting in infinite AABB sizes) doesn't mess up the entire simulation, it just get's deactivated (with a message that a simulation error happened) 2006-06-22 03:00:43 +00:00
ejcoumans c5fdd98330 printf for debugging requires stdio.h 2006-06-21 21:04:01 +00:00
ejcoumans 94e94e995f enabled early exit for GJK 2006-06-21 05:35:16 +00:00
ejcoumans 51a645bb4a constraints between bodies merge constraint simulations (this fixes problems with deactivation/sleeping) 2006-06-17 15:22:06 +00:00
ejcoumans b4df21acb5 added cylinder support in ColladaDemo, rendering of Cylinder, updated .dae files. 2006-06-09 00:17:20 +00:00
ejcoumans e31711a4d9 try to catch a rare failure case (debugmode-printf) 2006-05-26 20:25:18 +00:00
ejcoumans 2529aebc79 this should not be necessary, but it happened. todo: why doesn't gjk terminate. there are 2 rare cases, one with 'nan'/undefined separating axis/distance, and another with rather big distances. 2006-05-26 19:47:46 +00:00