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;
 }