Holds the data which is necessary for creating the content of the Graph Window.
The class Graph_Window_Model holds the Node_Displays and Edge_Displays which represent the content of the Graph Window.
The Node_Displays are held in a double-linked list because we have to traverse the Node_List in both directions. This list reprensents a kind of Z-Buffer by ordering the Node_Displays in the list. If you select a Node_Display on in the Graph Window the Node_Display will be deleted from the list and added at the end of the list. The Graph Window is redrawn by traversing the Node_List from the front of the list. So the last selected node will be redrawn as last node and thus the node seems to be in front of the other Node_Displays.
The Edge_Displays are held in a single-linked list because we do not need a Z-Buffer for the edges.
The Graph_Window_Model also holds the root of the Quad-Tree which represents the access structure to the Node_Displays and Edge_Displays.
Selected Object_Displays will be hold in an object of the class Object_Display_Container. For this reason we can pass on the selected nodes in this container e.g. to the layout methods.