# Class MarkForm

java.lang.Object
uk.ac.starlink.ttools.plot2.layer.MarkForm

All Implemented Interfaces:
  `ModePlotter.Form, ShapeForm`

public abstract class MarkForm extends Object implements ShapeForm
ShapeForm implementation that just draws a fixed-size marker for each position. One or more positions per tuple may be marked.

Since:
  18 Feb 2013
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`MIN_LEGEND_SIZE`
Minimum size of marker in legend, even if plot size is smaller.
`static final MarkForm`
`PAIR`
MarkForm instance for two points per tuple.
`static final MarkForm`
`QUAD`
MarkForm instance for four points per tuple.
`static final MarkForm`
`SINGLE`
MarkForm instance for a single point per tuple.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`MarkForm(int npos, String name, Icon icon)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`DataGeom`
`adjustGeom(DataGeom geom, DataSpec dataSpec, ShapeStyle style)`
Provides a DataGeom to be used by the layer this form makes, given a DataGeom that characterises the plotting environment.
`static Icon`
`createLegendIcon(MarkerShape shape, int size)`
Returns a legend icon suitable for a single marker.
`static MarkForm`
`createMarkForm(int npos)`
Factory method to create an instance of this class.
`static Glyph`
`createMarkGlyph(MarkerShape shape, int size, boolean isMultipix)`
Creates a Glyph representing a marker.
`static Outliner`
`createMarkOutliner(MarkerShape shape, int size)`
Returns an outliner for use with single points.
`static MarkerStyle`
`createMarkStyle(MarkerShape shape, int size)`
Creates a MarkStyle with a given size.
`static Outliner`
`createMultiMarkOutliner(MarkerShape shape, int size, int npos)`
Returns an outliner for use with multiple points.
`boolean`
`equals(Object o)`
`int`
`getBasicPositionCount()`
Returns the number of basic data positions per tuple used by this form.
`Coord[]`
`getExtraCoords()`
Returns data coordinates additional to the basic position which are required to plot a point.
`int`
`getExtraPositionCount()`
Returns the number of extra coordinates that can be interpreted as positions.
`String`
`getFormDescription()`
Returns a description of this mode as an XML string.
`Icon`
`getFormIcon()`
Returns an icon to identify this form in the GUI.
`String`
`getFormName()`
Returns the user-directed name for this form.
`int`
`hashCode()`

### Methods inherited from class Object

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

### Methods inherited from interface ShapeForm

`createOutliner, getConfigKeys`

## Field Details

### MIN_LEGEND_SIZE

public static final int MIN_LEGEND_SIZE
Minimum size of marker in legend, even if plot size is smaller.

See Also:
  - Constant Field Values

### SINGLE

public static final MarkForm SINGLE
MarkForm instance for a single point per tuple.

### PAIR

public static final MarkForm PAIR
MarkForm instance for two points per tuple.

### QUAD

public static final MarkForm QUAD
MarkForm instance for four points per tuple.

## Constructor Details

### MarkForm

protected MarkForm(int npos, String name, Icon icon)
Constructor.

Parameters:
  `npos` - number of points to mark per tuple
  `name` - form name
  `icon` - form icon

## Method Details

### getBasicPositionCount

public int getBasicPositionCount()
Description copied from interface: `ShapeForm`
Returns the number of basic data positions per tuple used by this form.

Specified by:
  `getBasicPositionCount` in interface `ShapeForm`
Returns:
  number of basic sets of positional coordinates

### getFormName

public String getFormName()
Description copied from interface: `ModePlotter.Form`
Returns the user-directed name for this form.

Specified by:
  `getFormName` in interface `ModePlotter.Form`
Returns:
  form name

### getFormIcon

public Icon getFormIcon()
Description copied from interface: `ModePlotter.Form`
Returns an icon to identify this form in the GUI.

Specified by:
  `getFormIcon` in interface `ModePlotter.Form`
Returns:
  form icon

### getFormDescription

public String getFormDescription()
Description copied from interface: `ShapeForm`
Returns a description of this mode as an XML string. The return value should be one or more <p> elements.

Specified by:
  `getFormDescription` in interface `ShapeForm`
Returns:
  XML description of form

### getExtraCoords

public Coord[] getExtraCoords()
Description copied from interface: `ShapeForm`
Returns data coordinates additional to the basic position which are required to plot a point.

Specified by:
  `getExtraCoords` in interface `ShapeForm`
Returns:
  additional plot coordinates

### getExtraPositionCount

public int getExtraPositionCount()
Description copied from interface: `ShapeForm`
Returns the number of extra coordinates that can be interpreted as positions.

Specified by:
  `getExtraPositionCount` in interface `ShapeForm`
Returns:
  number of positional extra coordinates

### adjustGeom

public DataGeom adjustGeom(DataGeom geom, DataSpec dataSpec, ShapeStyle style)
Description copied from interface: `ShapeForm`
Provides a DataGeom to be used by the layer this form makes, given a DataGeom that characterises the plotting environment. The output should be similar to the input, for instance implementing the same plotType-specific DataGeom subtype.

In most cases the supplied DataGeom instance can be returned unchanged, but instances with special requirements may want to adjust how the data is interpreted.

Specified by:
  `adjustGeom` in interface `ShapeForm`
Parameters:
  `geom` - context geom
  `dataSpec` - data specification with which the geom will be used
  `style` - style with which the geom will be used
Returns:
  geom to use for data interpretation, the same or similar to the input

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### equals

public boolean equals(Object o)

Overrides:
  `equals` in class `Object`

### createMarkForm

public static MarkForm createMarkForm(int npos)
Factory method to create an instance of this class.

Parameters:
  `npos` - number of positions per tuple
Returns:
  form instance

### createMarkOutliner

public static Outliner createMarkOutliner(MarkerShape shape, int size)
Returns an outliner for use with single points.

Parameters:
  `shape` - marker shape
  `size` - marker size
Returns:
  single-point outliner

### createMultiMarkOutliner

public static Outliner createMultiMarkOutliner(MarkerShape shape, int size, int npos)
Returns an outliner for use with multiple points.

Parameters:
  `shape` - marker shape
  `size` - marker size
  `npos` - number of positions per tuple
Returns:
  multi-point outliner

### createMarkStyle

public static MarkerStyle createMarkStyle(MarkerShape shape, int size)
Creates a MarkStyle with a given size.

Parameters:
  `shape` - marker shape
  `size` - marker size in pixels
Returns:
  marker style

### createMarkGlyph

public static Glyph createMarkGlyph(MarkerShape shape, int size, boolean isMultipix)
Creates a Glyph representing a marker.

Parameters:
  `shape` - marker shape
  `size` - marker size
  `isMultipix` - if true, optimise for an instance that may have createPixer called multiple times
Returns:
  marker glyph

### createLegendIcon

public static Icon createLegendIcon(MarkerShape shape, int size)
Returns a legend icon suitable for a single marker.

Parameters:
  `shape` - marker shape
  `size` - marker size
Returns:
  legend icon