Most of the DiagramLayout classes (but not GridLayout) operate not on the Diagram’s Nodes and Links but on a separate structure that inherits from GenericNetwork that contains Edges and Vertexes. This allows layout-specific properties to be added to vertexes and to the edges without complicating the Node and Link classes. For those properties that do exist on Node or Link, such as the Bounds, it offers the ability to make temporary changes and computations without affecting the real Nodes or Links.
Perhaps more importantly, it allows the layout to work on a different graph structure than that given by the actual Diagram.Nodes and .Links. This allows layouts that make use of dummy nodes and links and allows ignoring some nodes or links. In the case of the sample VirtualizingTreeLayout, it even permits doing a layout without any Nodes or Links at all.