class 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; // convert to rad
                }
                return AffineTransform.getRotateInstance(theta, ox, oy);
        }

        public  Rotate(RealParameter rotation);
        public  Rotate(RealParameter rotation, RealParameter ox, RealParameter oy);
          Rotate(RotateType r);

}