Bullet Collision Detection & Physics Library
Todo List
Member
btSimpleDynamicsWorld::clearForces
()
: iterate over awake simulation islands!
Member
btTriangleMesh::findOrAddVertex
(const
btVector3
&vertex, bool removeDuplicateVertices)
: could use acceleration structure for this
Class
GIM_CONTACT
: remove and replace
GIM_CONTACT
by
btManifoldPoint
.
Member
btPersistentManifold::getContactBreakingThreshold
() const
: get this margin from the current physics / collision environment
Class
btKinematicClosestNotMeRayResultCallback
Interact with dynamic objects, Ride kinematicly animated platforms properly More realistic (or maybe just a config option) falling -> Should integrate falling velocity manually and use that in stepDown() Support jumping Support ducking
Member
btRotationalLimitMotor::solveAngularLimits
(btScalar timeStep,
btVector3
&axis, btScalar jacDiagABInv,
btRigidBody
*body0,
btRigidBody
*body1)
: should clip against accumulated impulse
Member
btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySetup
(
btCollisionObject
**bodies, int numBodies,
btPersistentManifold
**manifoldPtr, int numManifolds,
btTypedConstraint
**constraints, int numConstraints, const
btContactSolverInfo
&infoGlobal,
btIDebugDraw
*debugDrawer)
: use stack allocator for such temporarily memory, same for solver bodies/constraints
Member
btDiscreteDynamicsWorld::clearForces
()
: iterate over awake simulation islands!
Member
btDiscreteDynamicsWorld::applyGravity
()
: iterate over awake simulation islands!
Member
btDiscreteDynamicsWorld::synchronizeSingleMotionState
(
btRigidBody
*body)
: add 'dirty' flag
Member
btMinkowskiSumShape::batchedUnitVectorGetSupportingVertexWithoutMargin
(const
btVector3
*vectors,
btVector3
*supportVerticesOut, int numVectors) const
: could make recursive use of batching. probably this shape is not used frequently.
Member
btSimpleDynamicsWorld::synchronizeMotionStates
()
: iterate over awake simulation islands!
Member
btSimulationIslandManagerMt::addManifoldsToIslands
(
btDispatcher
*dispatcher)
: check sleeping conditions!
Member
btSimulationIslandManagerMt::buildAndProcessIslands
(
btDispatcher
*dispatcher,
btCollisionWorld
*collisionWorld,
btAlignedObjectArray< btTypedConstraint * >
&constraints, const
SolverParams
&solverParams)
: this is random access, it can be walked 'cache friendly'!
: check sleeping conditions!
Member
btRaycastVehicle::rayCast
(
btWheelInfo
&wheel)
for driving on dynamic/movable objects!;
Member
btSoftBody::setCollisionShape
(
btCollisionShape
*collisionShape)
: avoid internal softbody shape hack and move collision code to collision library
Member
btSparseSdf< CELLSIZE >::GarbageCollect
(int lifetime=256)
: Reset puid's when int range limit is reached */
Member
bParse::bFile::parseInternal
(int verboseMode, char *memDna, int memDnaLength)
we need a better version check, add version/sub version info from FileGlobal into memory DNA/header files
Member
btConnectivityProcessor::processTriangle
(
btVector3
*triangle, int partId, int triangleIndex)
: check if we need some epsilon, due to floating point imprecision
Member
btQuaternion::farthest
(const
btQuaternion
&qd) const
document this and it's use
Member
btQuaternion::nearest
(const
btQuaternion
&qd) const
document this and it's use
Member
btAxisSweep3Internal< BP_FP_INT_TYPE >::removeHandle
(BP_FP_INT_TYPE handle,
btDispatcher
*dispatcher)
: compare performance
Member
btQuantizedBvh::quantize
(unsigned short *out, const
btVector3
&point, int isMax) const
: double-check this
Class
btCollisionConfiguration
: describe the meaning
Member
btCollisionWorld::debugDrawObject
(const
btTransform
&worldTransform, const
btCollisionShape
*shape, const
btVector3
&color)
pass camera, for some culling? no -> we are not a graphics lib
Class
btDefaultCollisionConfiguration
: describe the meaning
Member
btDefaultCollisionConfiguration::setConvexConvexMultipointIterations
(int numPerturbationIterations=3, int minimumPointsPerturbationThreshold=3)
we could add a per-object setting of those parameters, for level-of-detail collision detection.
Member
btMatrix3x3::setEulerZYX
(btScalar eulerX, btScalar eulerY, btScalar eulerZ)
proposed to reverse this since it's labeled zyx but takes arguments xyz and it will match all other parts of the code
Member
btManifoldResult::addContactPoint
(const
btVector3
&normalOnBInWorld, const
btVector3
&pointInWorld, btScalar depth)
, check this for any side effects
Member
btSimulationIslandManager::buildIslands
(
btDispatcher
*dispatcher,
btCollisionWorld
*colWorld)
: check sleeping conditions!
Member
btSimulationIslandManager::buildAndProcessIslands
(
btDispatcher
*dispatcher,
btCollisionWorld
*collisionWorld,
IslandCallback
*callback)
: this is random access, it can be walked 'cache friendly'!
Member
btSphereTriangleCollisionAlgorithm::processCollision
(const
btCollisionObjectWrapper
*body0Wrap, const
btCollisionObjectWrapper
*body1Wrap, const
btDispatcherInfo
&dispatchInfo,
btManifoldResult
*resultOut)
: tighter bounds
Member
btCollisionShape::getAngularMotionDisc
() const
cache this value, to improve performance
Member
btCollisionShape::calculateTemporalAabb
(const
btTransform
&curTrans, const
btVector3
&linvel, const
btVector3
&angvel, btScalar timeStep,
btVector3
&temporalAabbMin,
btVector3
&temporalAabbMax) const
: simd would have a vector max/min operation, instead of per-element access
Class
btCompoundShape
: This aabb tree can also be use to speed up ray tests on
btCompoundShape
, see
http://code.google.com/p/bullet/issues/detail?id=25
Currently, removal of child shapes is only supported when disabling the aabb tree (pass 'false' in the constructor of
btCompoundShape
)
Member
btConvexTriangleMeshShape::batchedUnitVectorGetSupportingVertexWithoutMargin
(const
btVector3
*vectors,
btVector3
*supportVerticesOut, int numVectors) const
: could do the batch inside the callback!
Generated by
1.8.18