+ Rectangle2D elementBounds = isConnection ? EMPTY_BOUNDS : NodeUtil.getLocalElementBounds(_node);
+ if (elementBounds == null) {
+ new Exception("Cannot get local element bounds for node " + _node.toString()).printStackTrace();
+ // This is here for checking why getLocalElementBounds failed in the debugger.
+ NodeUtil.getLocalElementBounds(_node);
+ return;
+ }
+
+ //System.err.println("elementBounds " + elementBounds);
+ //System.err.println("parentTransform " + result.getParentTransform());
+
+ AffineTransform at = style.getTransform(_node,result.getParentTransform(), elementBounds, row, result.getUp());
+ Vec2d offset = result.getOffset();
+
+ Point2D[] cellOffsets = style.getCellOffsets();
+
+ AffineTransform at1 = new AffineTransform(at);
+ at1.translate(cellOffsets[0].getX(),cellOffsets[0].getY());
+ AffineTransform at2 = new AffineTransform(at);
+ at2.translate(cellOffsets[1].getX()+spacing,cellOffsets[1].getY());
+ AffineTransform at3 = new AffineTransform(at);
+ at3.translate(cellOffsets[2].getX()+spacing,cellOffsets[2].getY());
+
+ at1.translate(offset.x, offset.y);
+ at2.translate(offset.x, offset.y);
+ at3.translate(offset.x, offset.y);
+
+ node.setTransform(1, row, at1);
+ node.setTransform(2, row, at2);
+ node.setTransform(3, row, at3);
+
+ Alignment[] alignments = result.getAlignments();
+ if(alignments != null) {
+ node.setHorizontalAlignment(1, row, (byte) alignments[0].ordinal());
+ node.setHorizontalAlignment(2, row, (byte) alignments[1].ordinal());
+ node.setHorizontalAlignment(3, row, (byte) alignments[2].ordinal());
+ } else {
+ node.setHorizontalAlignment(1, row, (byte) style.getAlignment(1).ordinal());
+ node.setHorizontalAlignment(2, row, (byte) style.getAlignment(2).ordinal());
+ node.setHorizontalAlignment(3, row, (byte) style.getAlignment(3).ordinal());
+ }