D3PD::ICollectionGetterTool Node1 D3PD::ICollectionGetterTool + DeclareInterfaceID() + reset() + sizeHint() + next() + configureD3PD() + nextTypeinfo() + configureElementTypeinfo() + releaseElement() + releaseElementTypeinfo() Node2 D3PD::IObjGetterTool + DeclareInterfaceID() + typeinfo() + getUntyped() + get() + releaseObjectUntyped() + releaseObject() + configureD3PD() + getTypeinfo() + releaseObjectTypeinfo() + configureTypeinfo() Node2->Node1 Node3 IAlgTool Node3->Node2 Node4 D3PD::IIteration + ~IIteration() + elementTypeinfo() + nextUntyped() + releaseElementUntyped() Node4->Node1