org.jdesktop.swingx.geom
Class Morphing2D

java.lang.Object
  extended by org.jdesktop.swingx.geom.Morphing2D
All Implemented Interfaces:
java.awt.Shape

public class Morphing2D
extends java.lang.Object
implements java.awt.Shape

A morphing shape is a shape which geometry is constructed from two other shapes: a start shape and an end shape.

The morphing property of a morphing shape defines the amount of transformation applied to the start shape to turn it into the end shape.

Both shapes must have the same winding rule.

Author:
Jim Graham, Romain Guy (Maintainer)

Constructor Summary
Morphing2D(java.awt.Shape startShape, java.awt.Shape endShape)
          Creates a new morphing shape.
 
Method Summary
 boolean contains(double x, double y)
          
 boolean contains(double x, double y, double w, double h)
          
 boolean contains(java.awt.geom.Point2D p)
          
 boolean contains(java.awt.geom.Rectangle2D r)
          
 java.awt.Rectangle getBounds()
          
 java.awt.geom.Rectangle2D getBounds2D()
          
 double getMorphing()
          Returns the morphing value between the two shapes.
 java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at)
          
 java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at, double flatness)
          
 boolean intersects(double x, double y, double w, double h)
          
 boolean intersects(java.awt.geom.Rectangle2D r)
          
 void setMorphing(double morph)
          Sets the morphing value between the two shapes.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Morphing2D

public Morphing2D(java.awt.Shape startShape,
                  java.awt.Shape endShape)

Creates a new morphing shape. A morphing shape can be used to turn one shape into another one. The transformation can be controlled by the morph property.

Parameters:
startShape - the shape to morph from
endShape - the shape to morph to
Throws:
java.awt.geom.IllegalPathStateException - if the shapes do not have the same winding rule
See Also:
getMorphing(), setMorphing(double)
Method Detail

getMorphing

public double getMorphing()

Returns the morphing value between the two shapes.

Returns:
the morphing value between the two shapes
See Also:
setMorphing(double)

setMorphing

public void setMorphing(double morph)

Sets the morphing value between the two shapes. This value controls the transformation from the start shape to the end shape. A value of 0.0 is the start shape. A value of 1.0 is the end shape. A value of 0.5 is a new shape, morphed half way from the start shape to the end shape.

The specified value should be between 0.0 and 1.0. If not, the value is clamped in the appropriate range.

Parameters:
morph - the morphing value between the two shapes
See Also:
getMorphing()

getBounds

public java.awt.Rectangle getBounds()

Specified by:
getBounds in interface java.awt.Shape

getBounds2D

public java.awt.geom.Rectangle2D getBounds2D()

Specified by:
getBounds2D in interface java.awt.Shape

contains

public boolean contains(double x,
                        double y)

Specified by:
contains in interface java.awt.Shape

contains

public boolean contains(java.awt.geom.Point2D p)

Specified by:
contains in interface java.awt.Shape

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)

Specified by:
intersects in interface java.awt.Shape

intersects

public boolean intersects(java.awt.geom.Rectangle2D r)

Specified by:
intersects in interface java.awt.Shape

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)

Specified by:
contains in interface java.awt.Shape

contains

public boolean contains(java.awt.geom.Rectangle2D r)

Specified by:
contains in interface java.awt.Shape

getPathIterator

public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at)

Specified by:
getPathIterator in interface java.awt.Shape

getPathIterator

public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform at,
                                                  double flatness)

Specified by:
getPathIterator in interface java.awt.Shape