public LayoutInfo copyOfThisLayoutInfo() { LayoutInfo copyI = new LayoutInfo(); for (NodeLayout nl : nodes) { copyI.addNodeLayout(nl.processID, nl.nodeID, nl.cofactor, nl.x, nl.y); } for (EdgeLayout el : edges) { ArrayList<LayoutPoint> copyBends = new ArrayList<LayoutPoint>(); for (LayoutPoint lp : el.bends) { copyBends.add(new LayoutPoint(lp.x, lp.y)); } copyI.addEdgeLayout( el.sourcepid, el.sourceNode, el.scofactor, el.targetpid, el.targetNode, el.tcofactor, copyBends); } return copyI; }