/*
* Copyright (c) 2005, the JUNG Project and the Regents of the University of
* California All rights reserved.
*
* This software is open-source under the BSD license; see either "license.txt"
* or http://jung.sourceforge.net/license.txt for a description.
*
* Created on Jul 11, 2005
*/
package edu.uci.ics.jung.visualization.transform.shape;
import java.awt.Graphics2D;
import java.awt.Shape;
import edu.uci.ics.jung.visualization.transform.BidirectionalTransformer;
import edu.uci.ics.jung.visualization.transform.HyperbolicTransformer;
/**
* subclassed to pass certain operations thru the transformer
* before the base class method is applied
* This is useful when you want to apply non-affine transformations
* to the Graphics2D used to draw elements of the graph.
*
* @author Tom Nelson
*
*
*/
public class TransformingFlatnessGraphics extends TransformingGraphics {
float flatness = 0;
public TransformingFlatnessGraphics(BidirectionalTransformer transformer) {
this(transformer, null);
}
public TransformingFlatnessGraphics(BidirectionalTransformer transformer, Graphics2D delegate) {
super(transformer, delegate);
}
public void draw(Shape s, float flatness) {
Shape shape = null;
if(transformer instanceof ShapeFlatnessTransformer) {
shape = ((ShapeFlatnessTransformer)transformer).transform(s, flatness);
} else {
shape = ((ShapeTransformer)transformer).transform(s);
}
delegate.draw(shape);
}
public void fill(Shape s, float flatness) {
Shape shape = null;
if(transformer instanceof HyperbolicTransformer) {
shape = ((HyperbolicShapeTransformer)transformer).transform(s, flatness);
} else {
shape = ((ShapeTransformer)transformer).transform(s);
}
delegate.fill(shape);
}
}