# Class DensityStyle

java.lang.Object
uk.ac.starlink.ttools.plot.DensityStyle

All Implemented Interfaces:
  `Icon, Style`

public abstract class DensityStyle extends Object implements Style, Icon
Style for the way that a density map (2d histogram) is plotted.

Since:
  1 Dec 2005
Author:
  Mark Taylor

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`DensityStyle.Channel`
Enumeration class which describes a colour channel.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final DensityStyle.Channel`
`BLUE`
Blue colour channel.
`static final DensityStyle.Channel`
`GREEN`
Green colour channel.
`static final DensityStyle.Channel`
`RED`
Red colour channel.

## Constructor Summary

Constructors
Constructor
Description
`DensityStyle(DensityStyle.Channel channel)`
Constructs a new style which plots in a given colour channel.

## Method Summary

Modifier and Type
Method
Description
`int`
`getIconHeight()`
`int`
`getIconWidth()`
`Icon`
`getLegendIcon()`
Returns an icon suitable for displaying in a legend for this style.
`Shader`
`getShader()`
Returns the shader to use in indexed (non-RGB) mode.
`protected abstract boolean`
`isRGB()`
Indicates whether the plotting is currently to be treated as three-channel RGB plotting or as single-channel intensity plotting.
`int`
`levelBits(byte level)`
Defines how the style looks.
`void`
`paintIcon(Component c, Graphics g, int x, int y)`
`void`
`setShader(Shader shader)`
Sets the shader to use in indexed (non-RGB) mode.
`String`
`toString()`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### RED

public static final DensityStyle.Channel RED
Red colour channel.

### GREEN

public static final DensityStyle.Channel GREEN
Green colour channel.

### BLUE

public static final DensityStyle.Channel BLUE
Blue colour channel.

## Constructor Details

### DensityStyle

public DensityStyle(DensityStyle.Channel channel)
Constructs a new style which plots in a given colour channel.

Parameters:
  `channel` - colour channel

## Method Details

### setShader

public void setShader(Shader shader)
Sets the shader to use in indexed (non-RGB) mode. This should be an absolute shader.

Parameters:
  `shader` - shader

### getShader

public Shader getShader()
Returns the shader to use in indexed (non-RGB) mode. This should be an absolute shader.

Returns:
  shader

### levelBits

public int levelBits(byte level)
Defines how the style looks. This converts an unsigned byte value (that is a value in the range 0-255 got by doing `value=0x000000ff&level`) to a bitmask which can be OR-ed with an existing integer to give a 32-type ARGB colour value.

Parameters:
  `level` - unsigned byte value
Returns:
  ORable bit mask for modifying a colour value

### isRGB

protected abstract boolean isRGB()
Indicates whether the plotting is currently to be treated as three-channel RGB plotting or as single-channel intensity plotting.

Returns:
  true iff plotting is currently three-channel

### getLegendIcon

public Icon getLegendIcon()
Description copied from interface: `Style`
Returns an icon suitable for displaying in a legend for this style.

Specified by:
  `getLegendIcon` in interface `Style`

### getIconHeight

public int getIconHeight()

Specified by:
  `getIconHeight` in interface `Icon`

### getIconWidth

public int getIconWidth()

Specified by:
  `getIconWidth` in interface `Icon`

### paintIcon

public void paintIcon(Component c, Graphics g, int x, int y)

Specified by:
  `paintIcon` in interface `Icon`

### toString

public String toString()

Overrides:
  `toString` in class `Object`