Rotate extends AbstractSymbolizerNode implements Transformation { @Override public AffineTransform getAffineTransform(Map<String,Object> map, Uom uom, MapTransform mt, Double width, Double height) throws ParameterException { double ox = 0.0; if (x != null) { ox = Uom.toPixel(x.getValue(map), uom, mt.getDpi(), mt.getScaleDenominator(), width); } double oy = 0.0; if (y != null) { oy = Uom.toPixel(y.getValue(map), uom, mt.getDpi(), mt.getScaleDenominator(), height); } double theta = 0.0; if (rotation != null) { theta = rotation.getValue(map) * Math.PI / 180.0; } return AffineTransform.getRotateInstance(theta, ox, oy); } Rotate(RealParameter rotation);  Rotate(RealParameter rotation, RealParameter ox, RealParameter oy);   Rotate(RotateType r); RealParameter getRotation(); void setRotation(RealParameter rotation); RealParameter getX(); void setX(RealParameter x); RealParameter getY(); void setY(RealParameter y); @Override boolean allowedForGeometries(); @Override List<SymbolizerNode> getChildren(); @Override AffineTransform getAffineTransform(Map<String,Object> map, Uom uom,
                        MapTransform mt, Double width, Double height); @Override JAXBElement<?> getJAXBElement(); @Override RotateType getJAXBType(); @Override String toString();  }
@Test public void testRotateToAffine() throws ParameterException { Rotate r = new Rotate(new RealLiteral(45), new RealLiteral(8), new RealLiteral(7)); AffineTransform af = r.getAffineTransform(null, Uom.PX, new MapTransform(), 0.0, 0.0); assertTrue((af.getType() & AffineTransform.TYPE_GENERAL_ROTATION) != 0); assertFalse((af.getType() & AffineTransform.TYPE_FLIP) != 0); }