Class RMMorphShape.Morphing2D

java.lang.Object
com.inductiveautomation.rm.shape.RMMorphShape.Morphing2D
All Implemented Interfaces:
Shape
Enclosing class:
RMMorphShape

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

  • Field Details

    • WIND_EVEN_ODD

      public static final int WIND_EVEN_ODD
      See Also:
    • WIND_NON_ZERO

      public static final int WIND_NON_ZERO
      A non-zero winding rule for determining the interior of a path.
      See Also:
  • Constructor Details

    • 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:
  • Method Details

    • getMorphing

      public double getMorphing()

      Returns the morphing value between the two shapes.

      Returns:
      the morphing value between the two shapes
      See Also:
    • 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:
    • getBounds

      public Rectangle getBounds()
      Specified by:
      getBounds in interface Shape
    • getBounds2D

      public Rectangle2D getBounds2D()
      Specified by:
      getBounds2D in interface Shape
    • contains

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

      public boolean contains(Point2D p)
      Specified by:
      contains in interface Shape
    • intersects

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

      public boolean intersects(Rectangle2D r)
      Specified by:
      intersects in interface Shape
    • contains

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

      public boolean contains(Rectangle2D r)
      Specified by:
      contains in interface Shape
    • getPathIterator

      public PathIterator getPathIterator(AffineTransform at)
      Specified by:
      getPathIterator in interface Shape
    • getPathIterator

      public PathIterator getPathIterator(AffineTransform at, double flatness)
      Specified by:
      getPathIterator in interface Shape