GO++ Diagram Support
GO++ is an excellent choice for applications that must display
diagrams. We support creating nodes as simple or complicated as
your application requires, and a variety means of connecting those
nodes.
Groups: GO++ is a hierarchical display list system, and our groups
(CGoArea) are the container objects. GO is very flexible in its
definition of groups. Groups are the way to create "Nodes"
in GO++. Nodes are groups of CGoText, CGoMetafiles, CGoRectangles,
etc to give the appearance of the node, combined with the appropriate
number and type of CGoPorts for providing "Linking"
capability between nodes.
Ports: provide 3 things:
Links: A Link (sometimes called an edge or arc) is a set of points
that define a path between two ports. They can have any number
of points, and the "routing" algorithm is overridable.
We provide 2 instances of routing, both quite simple.
Links also support arrowheads, popular in the classic CASE tool,
or UML diagrams.
Ports and Links can conspire during a Link creation to make sure
that you are making a valid connection (all via overridable virtual
methods).