Blender Git Commits

Blender Git "depsgraph_refactor" branch commits.

Page: 33 / 59

March 20, 2014, 13:39 (GMT)
Ported over the various operation nodes to c++ classes.
March 20, 2014, 13:39 (GMT)
Make use of boost for some utility types (hash tables).

This could be replaced by own classes if we want to avoid boost
dependency (boost is included centrally in a util header).
March 20, 2014, 13:39 (GMT)
Removed unused GHash includes.
March 20, 2014, 13:39 (GMT)
Constructor/Destructor for Depsgraph struct.
March 20, 2014, 13:39 (GMT)
Register the main node and component types, fixed a few syntax errors.
March 20, 2014, 13:39 (GMT)
Replaced op_hash in component nodes by unordered_map.
March 20, 2014, 13:39 (GMT)
Replaced bone_hash by unordered_map in PoseComponentDepsNode.
March 20, 2014, 13:39 (GMT)
Replaced id_hash container in Depsgraph with a unordered_map.

NOTE: had to disable the subgraph registration in the id_hash, since
this is not a proper IDDepsNode. Not sure how this is supposed to work.
March 20, 2014, 13:39 (GMT)
Replaced the component hash table in IDDepsNode with unordered_map.

We can't use GHash reliably because it only stores void * and all
dynamic type info (vtable) gets lost. This means we cannot retrieve a
node from such hash tables and then call a virtual function on it.
March 20, 2014, 13:39 (GMT)
Pose and Bone component classes.
March 20, 2014, 13:39 (GMT)
Fix for invalid template arguments: const char * cannot be used for
templates.

Instead made a little helper struct TypeInfo inside DepsNode, which
can be created statically using simple macros (just to avoid repetitive
syntax). This typeinfo is then copied by factories and used to
initialize nodes.
March 20, 2014, 13:39 (GMT)
Default constructor/destructor for DepsNode.
March 20, 2014, 13:39 (GMT)
Implemented a factory method 'create_node' to replace the current
DEG_create_node function.
March 20, 2014, 13:39 (GMT)
Virtual copy function for DepsNode.
This must be implemented by subclasses to replace the copy_data callback.
March 20, 2014, 13:39 (GMT)
Added component subtypes, which use the plain ComponentDepsNode base
without further modification.
March 20, 2014, 13:39 (GMT)
Changed the 2 constructor variants of nodes to a virtual init and copy
function.

This has the advantage of being inheritable by subclasses, other than
constructors which have to be redefined every time and then do nested
constructor calls for base classes (constructor inheritance has actually
been added in C++11, but is not widely available).
March 20, 2014, 13:39 (GMT)
Replaced the free_node callback in typeinfo with calls to 'delete'.
March 20, 2014, 13:39 (GMT)
add_to_graph/remove_from_graph virtual methods for DepsNode and a
Root node implementation for testing.
March 20, 2014, 13:39 (GMT)
Reimplemented methods for ID and Subgraph deps nodes.
March 20, 2014, 13:39 (GMT)
Porting to C++:
* Redeclared source files as cpp sources
* Added explicit void* to type conversions (C++ requirement)
* Wrapped C includes in extern "C"
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021