
/* @(#) ImageManipulator.java 1.1 99/01/11
 * Copyright (c) 1999 Lawrence Rodrigues
 */
package com.vistech.imageviewer;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.beans.*;

/** Specifies methods to implement a canvas for manipulating images.
  * @version 1.0  1 Nov 1999
  * @author Lawrence Rodrigues
  **/
public interface ImageManipulator extends ImageDisplay {
    /** Gets the panOffset property.
      * @param panOffset the offset by which the currently displayed image is moved
      * from the previous position.
      */
    public void setPanOffset(Point panOffset);

    /** Returns the panOffset property.
      * @return the panOffset.
      */
    public Point getPanOffset();

    /** Sets the magFactor property.
      * @param magFactor the magnification factor.
      */
    public void setMagFactor(double magFactor);

    /** Gets the magFactor property.
      * @return the magFactor.
      */
    public double getMagFactor();
    /** Sets the rotationAngle property.
      * @param rotationAngle the rotation angle
      */
    public void setRotationAngle(double theta);

    /** Gets the rotation angle property.
      * @return the rotation angle.
      */
    public double getRotationAngle();

    /** Sets the shearFactor property.
      * @param shearFactor the shearFactor property.
      */
    public void setShearFactor(double shear);

    /** @return the shearFactor. */
    public double getShearFactor();

    /** Gets the transform property.
      * @return the current transform object.
      */
    public AffineTransform getTransform();

    /** Sets the transform property.
      * @param the transform.
      */
    public void setTransform(AffineTransform at);

    /** Applies the transform
     * @param the transform.
      */
    public void applyTransform(AffineTransform atx);

    /** Sets the interpolationType property.
      * @param the interpolation type
      */
    public void setInterpolationType(int interType);

    /* @return the interpolation type */
    public int getInterpolationType();

    /**  Resets manipulation.*/
    public void resetManipulation();
}
