## org.jfree.chart.util
Class DefaultShadowGenerator

    java.lang.Object
      org.jfree.chart.util.DefaultShadowGenerator

All Implemented Interfaces:
  java.io.Serializable, ShadowGenerator

    public class DefaultShadowGenerator

extends java.lang.Object
implements ShadowGenerator, java.io.Serializable

A default implementation of the `ShadowGenerator` interface, based on code in a blog post by Romain Guy.

Since:
  1.0.14
See Also:
  Serialized Form

Constructor Summary
`DefaultShadowGenerator()` Creates a new instance with default attributes.
`DefaultShadowGenerator(int size, java.awt.Color color, float opacity, int distance, double angle)` Creates a new instance with the specified attributes.

Method Summary
`protected void` `applyShadow(java.awt.image.BufferedImage image)` Applies a shadow to the image.
`int` `calculateOffsetX()` Calculates the x-offset for drawing the shadow image relative to the source.
`int` `calculateOffsetY()` Calculates the y-offset for drawing the shadow image relative to the source.
`java.awt.image.BufferedImage` `createDropShadow(java.awt.image.BufferedImage source)` Creates and returns an image containing the drop shadow for the specified source image.
`boolean` `equals(java.lang.Object obj)` Tests this object for equality with an arbitrary object.
`double` `getAngle()` Returns the shadow offset angle (in radians).
`int` `getDistance()` Returns the shadow offset distance.
`java.awt.Color` `getShadowColor()` Returns the shadow color.
`float` `getShadowOpacity()` Returns the shadow opacity.
`int` `getShadowSize()` Returns the shadow size.
`int` `hashCode()` Returns a hash code for this instance.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DefaultShadowGenerator

    public DefaultShadowGenerator()

  Creates a new instance with default attributes.

### DefaultShadowGenerator

    public DefaultShadowGenerator(int size,
                                  java.awt.Color color,
                                  float opacity,
                                  int distance,
                                  double angle)

  Creates a new instance with the specified attributes.

  Parameters:
    `size` - the shadow size.
    `color` - the shadow color.
    `opacity` - the shadow opacity.
    `distance` - the shadow offset distance.
    `angle` - the shadow offset angle (in radians).

Method Detail

### getShadowSize

    public int getShadowSize()

  Returns the shadow size.

  Returns:
    The shadow size.

### getShadowColor

    public java.awt.Color getShadowColor()

  Returns the shadow color.

  Returns:
    The shadow color (never `null`).

### getShadowOpacity

    public float getShadowOpacity()

  Returns the shadow opacity.

  Returns:
    The shadow opacity.

### getDistance

    public int getDistance()

  Returns the shadow offset distance.

  Returns:
    The shadow offset distance (in Java2D units).

### getAngle

    public double getAngle()

  Returns the shadow offset angle (in radians).

  Returns:
    The angle (in radians).

### calculateOffsetX

    public int calculateOffsetX()

  Calculates the x-offset for drawing the shadow image relative to the source.

  Specified by:
    `calculateOffsetX` in interface `ShadowGenerator`
  Returns:
    The x-offset.

### calculateOffsetY

    public int calculateOffsetY()

  Calculates the y-offset for drawing the shadow image relative to the source.

  Specified by:
    `calculateOffsetY` in interface `ShadowGenerator`
  Returns:
    The y-offset.

### createDropShadow

    public java.awt.image.BufferedImage createDropShadow(java.awt.image.BufferedImage source)

  Creates and returns an image containing the drop shadow for the specified source image.

  Specified by:
    `createDropShadow` in interface `ShadowGenerator`
  Parameters:
    `source` - the source image.
  Returns:
    A new image containing the shadow.

### applyShadow

    protected void applyShadow(java.awt.image.BufferedImage image)

  Applies a shadow to the image.

  Parameters:
    `image` - the image.

### equals

    public boolean equals(java.lang.Object obj)

  Tests this object for equality with an arbitrary object.

  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    The object.

### hashCode

    public int hashCode()

  Returns a hash code for this instance.

  Overrides:
    `hashCode` in class `java.lang.Object`
  Returns:
    The hash code.