Class Morphing2D

  • All Implemented Interfaces:
    Shape

    public class Morphing2D
    extends Object
    implements 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 Detail

      • Morphing2D

        public Morphing2D​(Shape startShape,
                          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:
        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()
      • contains

        public boolean contains​(double x,
                                double y)
        Specified by:
        contains in interface Shape
      • intersects

        public boolean intersects​(double x,
                                  double y,
                                  double w,
                                  double h)
        Specified by:
        intersects in interface Shape
      • contains

        public boolean contains​(double x,
                                double y,
                                double w,
                                double h)
        Specified by:
        contains in interface Shape