This class provides a framework for manipulating the state of nodes and links without modifying the structure of the diagram. Having a separate representation also permits adding or removing vertexes or edges from the network so that the graph that is laid out is not isomorphic to the diagram's graph.
This convenience method makes sure there is a LayoutEdge in this network corresponding to a Link. If findEdge returns null, this method creates a new LayoutEdge, makes sure the Link.fromNode and Link.toNode have corresponding LayoutVertexes in the network, and adds the edge itself to the network.
an edge in this network.
Creates a network of LayoutVertexes and LayoutEdges corresponding to the given Nodes and Links. This is usually more convenient than repeatedly calling addNode and addLink. This method ignores all instances of Parts that are not Nodes or Links. This will recurse through Groups that have no Group.layout.
whether to skip Parts in the given collection that are contained by Groups; default is false
optional predicate to apply to each Part -- if it returns false do not include Vertex or Edge in the network; default ignores link label nodes or links connecting with them
Deletes all vertexes and edges that have no Part associated with them.
Deletes all LayoutEdges whose "to vertex" and "from vertex" are the same vertex.
Modify this network by splitting it up into separate subnetworks, each of which has all of its vertexes connected to each other, but not to any vertexes in any other subnetworks.
This method will first delete from this network all artificial vertexes and all edges that do not connect two different vertexes. Afterwards, this original network may be empty or may contain all of the singleton vertexes, each of which had no edges connecting it to any other vertexes.
whether to delete artificial vertexes and edges, disconnected edges, and reflexive edges; default is true
a collection of LayoutNetworks, sorted in order of decreasing vertex count.