# Class BitSetPixellator

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

All Implemented Interfaces:
  `Pixellator`

public class BitSetPixellator extends Object implements Pixellator
Pixellator built on a bit vector.

Since:
  23 Aug 2007
Author:
  Mark Taylor

## Constructor Summary

Constructors
Constructor
Description
`BitSetPixellator(Rectangle bounds, BitSet mask)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`static BitSetPixellator`
`copy(Pixellator pixer)`
Creates a new pixellator with the same content as an existing one.
`Rectangle`
`getBounds()`
Returns a copy of the bounding rectangle for this pixellator.
`int`
`getX()`
Returns the X value for the current point.
`int`
`getY()`
Returns the Y value for the current point.
`boolean`
`next()`
Moves to the next point in the sequence.
`void`
`start()`
Makes this object ready to iterate.

### Methods inherited from class Object

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

## Constructor Details

### BitSetPixellator

public BitSetPixellator(Rectangle bounds, BitSet mask)
Constructor. Point `(x,y)` of the pixellator is represented by mask index `(x-bounds.x) + bounds.width * (y-bounds.y)`.

Parameters:
  `bounds` - bounds of this pixellator
  `mask` - bit vector with a point set for each filled in pixel

## Method Details

### getBounds

public Rectangle getBounds()
Description copied from interface: `Pixellator`
Returns a copy of the bounding rectangle for this pixellator. All points iterated over by this object will fall within this rectangle. If this object has no points, `null` may be returned.

Specified by:
  `getBounds` in interface `Pixellator`
Returns:
  bounds

### start

public void start()
Description copied from interface: `Pixellator`
Makes this object ready to iterate. Should be called before any call to `Pixellator.next()`.

Specified by:
  `start` in interface `Pixellator`

### next

public boolean next()
Description copied from interface: `Pixellator`
Moves to the next point in the sequence. Must be called before any call to `Pixellator.getX()`/`Pixellator.getY()`. Returns value indicates whether there is a next point.

Specified by:
  `next` in interface `Pixellator`
Returns:
  next true iff there are more points

### getX

public int getX()
Description copied from interface: `Pixellator`
Returns the X value for the current point.

Specified by:
  `getX` in interface `Pixellator`
Returns:
  x

### getY

public int getY()
Description copied from interface: `Pixellator`
Returns the Y value for the current point.

Specified by:
  `getY` in interface `Pixellator`
Returns:
  y

### copy

public static BitSetPixellator copy(Pixellator pixer)
Creates a new pixellator with the same content as an existing one. The bounds of the new one are derived from the actual limits of the pixels in the input, so may differ from those reported by the `getBounds` method of the input.

Parameters:
  `pixer` - pixellator to copy
Returns:
  clone