com.jhlabs.image
Class KaleidoscopeFilter

java.lang.Object
  extended by com.jhlabs.image.AbstractBufferedImageOp
      extended by com.jhlabs.image.TransformFilter
          extended by com.jhlabs.image.KaleidoscopeFilter
All Implemented Interfaces:
java.awt.image.BufferedImageOp, java.lang.Cloneable

public class KaleidoscopeFilter
extends TransformFilter

A Filter which produces the effect of looking into a kaleidoscope.


Field Summary
 
Fields inherited from class com.jhlabs.image.TransformFilter
BILINEAR, CLAMP, edgeAction, interpolation, NEAREST_NEIGHBOUR, originalSpace, RGB_CLAMP, transformedSpace, WRAP, ZERO
 
Constructor Summary
KaleidoscopeFilter()
          Construct a KaleidoscopeFilter with no distortion.
 
Method Summary
 java.awt.image.BufferedImage filter(java.awt.image.BufferedImage src, java.awt.image.BufferedImage dst)
           
 float getAngle()
          Get the angle of the kaleidoscope.
 float getAngle2()
          Get the secondary angle of the kaleidoscope.
 java.awt.geom.Point2D getCentre()
          Get the centre of the effect as a proportion of the image size.
 float getCentreX()
          Get the centre of the effect in the X direction as a proportion of the image size.
 float getCentreY()
          Get the centre of the effect in the Y direction as a proportion of the image size.
 float getRadius()
          Get the radius of the effect.
 int getSides()
          Get the number of sides of the kaleidoscope.
 void setAngle(float angle)
          Set the angle of the kaleidoscope.
 void setAngle2(float angle2)
          Set the secondary angle of the kaleidoscope.
 void setCentre(java.awt.geom.Point2D centre)
          Set the centre of the effect as a proportion of the image size.
 void setCentreX(float centreX)
          Set the centre of the effect in the X direction as a proportion of the image size.
 void setCentreY(float centreY)
          Set the centre of the effect in the Y direction as a proportion of the image size.
 void setRadius(float radius)
          Set the radius of the effect.
 void setSides(int sides)
          Set the number of sides of the kaleidoscope.
 java.lang.String toString()
           
protected  void transformInverse(int x, int y, float[] out)
          Inverse transform a point.
 
Methods inherited from class com.jhlabs.image.TransformFilter
filterPixelsNN, getEdgeAction, getInterpolation, setEdgeAction, setInterpolation, transformSpace
 
Methods inherited from class com.jhlabs.image.AbstractBufferedImageOp
clone, createCompatibleDestImage, getBounds2D, getPoint2D, getRenderingHints, getRGB, setRGB
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

KaleidoscopeFilter

public KaleidoscopeFilter()
Construct a KaleidoscopeFilter with no distortion.

Method Detail

setSides

public void setSides(int sides)
Set the number of sides of the kaleidoscope.

Parameters:
sides - the number of sides
See Also:
getSides()

getSides

public int getSides()
Get the number of sides of the kaleidoscope.

Returns:
the number of sides
See Also:
setSides(int)

setAngle

public void setAngle(float angle)
Set the angle of the kaleidoscope.

Parameters:
angle - the angle of the kaleidoscope.
See Also:
getAngle()

getAngle

public float getAngle()
Get the angle of the kaleidoscope.

Returns:
the angle of the kaleidoscope.
See Also:
setAngle(float)

setAngle2

public void setAngle2(float angle2)
Set the secondary angle of the kaleidoscope.

Parameters:
angle2 - the angle
See Also:
getAngle2()

getAngle2

public float getAngle2()
Get the secondary angle of the kaleidoscope.

Returns:
the angle
See Also:
setAngle2(float)

setCentreX

public void setCentreX(float centreX)
Set the centre of the effect in the X direction as a proportion of the image size.

Parameters:
centreX - the center
See Also:
getCentreX()

getCentreX

public float getCentreX()
Get the centre of the effect in the X direction as a proportion of the image size.

Returns:
the center
See Also:
setCentreX(float)

setCentreY

public void setCentreY(float centreY)
Set the centre of the effect in the Y direction as a proportion of the image size.

Parameters:
centreY - the center
See Also:
getCentreY()

getCentreY

public float getCentreY()
Get the centre of the effect in the Y direction as a proportion of the image size.

Returns:
the center
See Also:
setCentreY(float)

setCentre

public void setCentre(java.awt.geom.Point2D centre)
Set the centre of the effect as a proportion of the image size.

Parameters:
centre - the center
See Also:
getCentre()

getCentre

public java.awt.geom.Point2D getCentre()
Get the centre of the effect as a proportion of the image size.

Returns:
the center
See Also:
setCentre(java.awt.geom.Point2D)

setRadius

public void setRadius(float radius)
Set the radius of the effect.

Parameters:
radius - the radius
See Also:
getRadius()

getRadius

public float getRadius()
Get the radius of the effect.

Returns:
the radius
See Also:
setRadius(float)

filter

public java.awt.image.BufferedImage filter(java.awt.image.BufferedImage src,
                                           java.awt.image.BufferedImage dst)
Specified by:
filter in interface java.awt.image.BufferedImageOp
Overrides:
filter in class TransformFilter

transformInverse

protected void transformInverse(int x,
                                int y,
                                float[] out)
Description copied from class: TransformFilter
Inverse transform a point. This method needs to be overriden by all subclasses.

Specified by:
transformInverse in class TransformFilter
Parameters:
x - the X position of the pixel in the output image
y - the Y position of the pixel in the output image
out - the position of the pixel in the input image

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object