Class RMMorphShape.Morphing2D

  • All Implemented Interfaces:
    java.awt.Shape
    Enclosing class:
    RMMorphShape

    public static class RMMorphShape.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.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int WIND_EVEN_ODD  
      static int WIND_NON_ZERO
      A non-zero winding rule for determining the interior of a path.
    • Constructor Summary

      Constructors 
      Constructor Description
      Morphing2D​(java.awt.Shape startShape, java.awt.Shape endShape)
      Creates a new morphing shape.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • WIND_NON_ZERO

        public static final int WIND_NON_ZERO
        A non-zero winding rule for determining the interior of a path.
        See Also:
        Constant Field Values
    • 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 shap. 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