Blender V2.61 - r43446

Todo List

Member ATTRIBUTE_ALIGNED128 (class) btPersistentManifold
: get this margin from the current physics / collision environment

Member ATTRIBUTE_ALIGNED16 (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 ATTRIBUTE_ALIGNED16 (class) btBvhSubtreeInfo
: double-check this

Member ATTRIBUTE_ALIGNED16 (a)
: check out alignment methods for other platforms/compilers define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16))) define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64))) define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128)))

Group audaspace
add to doxygen

File BKE_DerivedMesh.h
  • Make drawMapped* functions take a predicate function that determines whether to draw the edge (this predicate can also set color, etc). This will be slightly more general and allow some of the functions to be collapsed.
  • Once accessor functions are added then single element draw functions can be implemented using primitive accessors.
  • Add function to dispatch to renderer instead of using conversion to DLM.

Group blenloader
check if blo and .blend read and write functions groups can be merged in docs.

Member btAxisSweep3Internal< BP_FP_INT_TYPE >::removeHandle (BP_FP_INT_TYPE handle, btDispatcher *dispatcher)
: compare performance

Class btCollisionConfiguration
: describe the meaning

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

Member btCollisionShape::getAngularMotionDisc () const
cache this value, to improve performance

Member btCollisionWorld::debugDrawObject (const btTransform &worldTransform, const btCollisionShape *shape, const btVector3 &color)
pass camera, for some culling? no -> we are not a graphics lib

Member btCollisionWorld::objectQuerySingle (const btConvexShape *castShape, const btTransform &rayFromTrans, const btTransform &rayToTrans, btCollisionObject *collisionObject, const btCollisionShape *collisionShape, const btTransform &colObjWorldTransform, ConvexResultCallback &resultCallback, btScalar allowedPenetration)
: use AABB tree or other BVH acceleration structure!

Member btConnectivityProcessor::processTriangle (btVector3 *triangle, int partId, int triangleIndex)
: check if we need some epsilon, due to floating point imprecision

Member btConvexTriangleMeshShape::batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
: could do the batch inside the callback!

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 btDiscreteDynamicsWorld::applyGravity ()
: iterate over awake simulation islands!

Member btDiscreteDynamicsWorld::clearForces ()
: iterate over awake simulation islands!

Member btDiscreteDynamicsWorld::synchronizeSingleMotionState (btRigidBody *body)
: add 'dirty' flag

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 btManifoldResult::addContactPoint (const btVector3 &normalOnBInWorld, const btVector3 &pointInWorld, btScalar depth)
, check this for any side effects

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 btMinkowskiSumShape::batchedUnitVectorGetSupportingVertexWithoutMargin (const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
: could make recursive use of batching. probably this shape is not used frequently.

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 btRaycastVehicle::rayCast (btWheelInfo &wheel)
for driving on dynamic/movable objects!;

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, btStackAlloc *stackAlloc)
: use stack allocator for such temporarily memory, same for solver bodies/constraints

Member btSimpleDynamicsWorld::clearForces ()
: iterate over awake simulation islands!

Member btSimpleDynamicsWorld::synchronizeMotionStates ()
: iterate over awake simulation islands!

Member btSimulationIslandManager::buildAndProcessIslands (btDispatcher *dispatcher, btCollisionWorld *collisionWorld, IslandCallback *callback)
: this is random access, it can be walked 'cache friendly'!

Member btSimulationIslandManager::buildIslands (btDispatcher *dispatcher, btCollisionWorld *colWorld)
: check sleeping conditions!

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 btSphereTriangleCollisionAlgorithm::processCollision (btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
: tighter bounds

Member btTriangleMesh::findOrAddVertex (const btVector3 &vertex, bool removeDuplicateVertices)
: could use acceleration structure for this

Page GHOST
write WIP section

Class GIM_CONTACT
: remove and replace GIM_CONTACT by btManifoldPoint.

File IMB_imbuf_types.h
Clean up includes.

Group ketsji
check all headers and code files for proper licenses

File KX_PhysicsPropertiesobsolete.h
check if this file is still needed

Page windowmanager
document