Blender V4.3
Todo List
Member __pad0__
: 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 AnimationImporter::read_node_transform (COLLADAFW::Node *node, Object *ob)
refactor read_node_transform to not automatically apply anything, but rather return the transform matrix, so caller can do with it what is necessary. Same for get_node_mat
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)))
Module audaspace
add to doxygen
Member blender::bke::bNodeTreeRuntime::execdata
Move this out of the node tree to improve semantic/physical separation between the node tree execution instructions and its evaluation.
Member blender::bke::pbvh::mesh_topology_count_matches (const Mesh &a, const Mesh &b)
A deeper test of equality of topology array pointers would be better. This is kept for now to avoid changing logic during a refactor.
Member blender::bke::pbvh::MeshNode::vert_indices_
Find a way to disable the #VectorSet inline buffer.
Class blender::bke::pbvh::Node
Most data is public but should either be removed or become private in the future. The "_" suffix means that fields shouldn't be used by consumers of the bke::pbvh API.
Member blender::bke::pbvh::Node::debug_draw_gen_
Remove and store elsewhere.
Member blender::bke::pbvh::Node::pixels_
Move storage of image painting data to Tree or elsewhere.
Member blender::bke::pbvh::Node::tmin_
Remove and store elsewhere.
Class blender::bke::pbvh::Tree
Most data is public but should either be removed or become private in the future. The "_" suffix means that fields shouldn't be used by consumers of the bke::pbvh API.
Member blender::bke::pbvh::Tree::planes_ [6][4]
Remove and store elsewhere.
Member blender::compositor::Node::convert_to_operations (NodeConverter &converter, const CompositorContext &context) const =0
this must be described further
Class blender::compositor::RenderLayersProg
Rename to operation.
Class blender::compositor::TextureBaseOperation
Rename to operation.
Member blender::ed::sculpt_paint::apply_crazyspace_to_translations (Span< float3x3 > deform_imats, Span< int > verts, MutableSpan< float3 > translations)
Don't invert deform_imats on object evaluation. Instead just invert them on-demand in brush implementations. This would be better because only the inversions required for affected vertices would be necessary.
Member blender::ed::sculpt_paint::auto_mask::Cache::occlusion
Ideally the "unknown" state would be stored per node rather than per vertex, with a lock-protected Map<const bke::pbvh::Node , BitVector<>> for example. Currently complications with face domain auto-masking prevent this though. This array can't be a bitmap because it's written to from multiple threads at the same time.
Member blender::ed::sculpt_paint::islands::calc_topology_islands_grids (const Object &object)
Take grid face visibility into account.
Member blender::ed::sculpt_paint::undo::Node::corner_indices
Storing corners rather than faces is unnecessary.
Module blenloader
check if blo and Blend file IO 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 btCollisionWorld::debugDrawObject (const btTransform &worldTransform, const btCollisionShape *shape, const btVector3 &color)
pass camera, for some culling? no -> we are not a graphics lib
Member btConnectivityProcessor::processTriangle (btVector3 *triangle, int partId, int triangleIndex)
: check if we need some epsilon, due to floating point imprecision
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.
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 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 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 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 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 (const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
: tighter bounds
Member btTriangleMesh::findOrAddVertex (const btVector3 &vertex, bool removeDuplicateVertices)
: could use acceleration structure for this
Member 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 getAngularMotionDisc () const
cache this value, to improve performance
Member getContactBreakingThreshold () const
: get this margin from the current physics / collision environment
Page GHOST
write WIP section
Class GIM_CONTACT
: remove and replace GIM_CONTACT by btManifoldPoint.
Member GPU_indexbuf_build_in_place_from_memory (IndexBuf *ibo, const GPUPrimType prim_type, const uint32_t *data, const int32_t data_len, const int32_t index_min, const int32_t index_max, const bool uses_restart_indices)
The optimization to avoid the local copy currently isn't implemented.
Member ID_TAG_DOIT
Make it a RESET_AFTER_USE too.
File IMB_imbuf_types.hh
Clean up includes.
Member quantize (unsigned short *out, const btVector3 &point, int isMax) const
: double-check this
Member 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 synchronizeSingleMotionState (btRigidBody *body)
: add 'dirty' flag
Member uiTemplateLayers (uiLayout *layout, PointerRNA *ptr, const char *propname, PointerRNA *used_ptr, const char *used_propname, int active_layer)
for now, grouping of layers is determined by dividing up the length of the array of layer bitflags
Member VPaintData::vert_positions
Look into replacing this with just using the evaluated/deform positions.
Page windowmanager
document