/*
* 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 3, 2005
*/
package edu.uci.ics.jung.visualization.transform;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import edu.uci.ics.jung.visualization.transform.shape.ShapeTransformer;
import edu.uci.ics.jung.visualization.util.ChangeEventSupport;
/**
* Provides an API for the mutation of a transformer
* and for adding listeners for changes on the transformer
*
* @author Tom Nelson
*
*
*/
public interface MutableTransformer extends ShapeTransformer, ChangeEventSupport {
void translate(double dx, double dy);
void setTranslate(double dx, double dy);
void scale(double sx, double sy, Point2D point);
void setScale(double sx, double sy, Point2D point);
void rotate(double radians, Point2D point);
void rotate(double radians, double x, double y);
void shear(double shx, double shy, Point2D from);
void concatenate(AffineTransform transform);
void preConcatenate(AffineTransform transform);
double getScaleX();
double getScaleY();
double getScale();
double getTranslateX();
double getTranslateY();
double getShearX();
double getShearY();
AffineTransform getTransform();
void setToIdentity();
double getRotation();
}