Blender Git Commit Log

Git Commits -> Revision 2aa9f5e

Revision 2aa9f5e by Lukas Toenne (depsgraph_refactor)
May 26, 2014, 10:32 (GMT)
Removed the bone_hash and associated methods from the pose component.

Instead for storing bones in a separate hash table, which adds
complexity and ambiguity, they are now stored as regular components in
the ID node component map as well, with a string identifier to
distinguish them.

Looking up bones from the pose component by name can be done just as
well on the ID level, by using a combined key of
(DEPSNODE_TYPE_BONE, bone name)
This key extension (subdata) can be a general optional feature of
components, useful e.g. for modifiers, constraints, particle systems.
It saves us the work of implementing and maintaining individual hashes
for all these sub-component types and streamlines the API quite a bit.

Looping/filtering bones can work just as easily by looping over an ID
block's components instead of the bone hash table of the pose component.
The overhead is negligible, the number of other components in a single
ID block would not scale as much as the number of ID blocks in general.
Such loops would be an exception anyway.

Commit Details:

Full Hash: 2aa9f5eaaec4d454e6baa5b2071ab91fa700c63f
Parent Commit: 31782f7
Lines Changed: +11, -137

4 Modified Paths:

/source/blender/depsgraph/intern/depsgraph_debug.cpp (+8, -23) (Diff)
/source/blender/depsgraph/intern/depsgraph_query.cpp (+3, -34) (Diff)
/source/blender/depsgraph/intern/depsnode_component.cpp (+0, -65) (Diff)
/source/blender/depsgraph/intern/depsnode_component.h (+0, -15) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021