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

Constructors
Constructor and Description
`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

Methods
`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.