# Interface MultiPointReader

@Equality public interface MultiPointReader
Defines data reading behaviour for use by a MultiPointForm.

Since:
  8 Feb 2023
Author:
  Mark Taylor

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static interface`
`MultiPointReader.ExtrasReader`
Reads the non-central data positions for a MultiPointCoordSet.

## Method Summary

Modifier and Type
Method
Description
`MultiPointReader.ExtrasReader`
`createExtrasReader(DataGeom geom, Span sizeSpan)`
Returns a reader for the non-central parts of the MultiPointCoordSet.
`AuxReader`
`createSizeReader(DataGeom geom)`
Returns an AuxReader that can obtain the characteristic size of the shapes to be plotted with the data from this reader.
`double`
`getBaseScale(Surface surface, Span sizeSpan)`
Returns the base size scaling value.
`MultiPointCoordSet`
`getExtraCoordSet()`
Returns the coord set defining the non-central coordinates used with this reader.
`boolean`
`isAutoscale()`
Indicates whether autoscaling should be applied.

## Method Details

### getExtraCoordSet

MultiPointCoordSet getExtraCoordSet()
Returns the coord set defining the non-central coordinates used with this reader.

Returns:
  extra positions coordSet

### isAutoscale

boolean isAutoscale()
Indicates whether autoscaling should be applied. If true, before plotting is carried out a scan of all the data values is performed to determine the range of values, and the supplied offsets are scaled accordingly, so that the largest ones are a reasonable size on the screen.

Returns:
  true for autoscaling, false to use raw values

### createExtrasReader

MultiPointReader.ExtrasReader createExtrasReader(DataGeom geom, Span sizeSpan)
Returns a reader for the non-central parts of the MultiPointCoordSet.

If `isAutoscale()` returns true, the `sizeSpan` argument will contain a characterisation of the sizes of the items to be plotted, as calculated by an earlier call to the `createSizeReader(DataGeom)` method.

Parameters:
  `geom` - data geometry used to interpret coordinate values
  `sizeSpan` - characteristic size in case of autoscaling, otherwise null
Returns:
  coordinate reader

### createSizeReader

AuxReader createSizeReader(DataGeom geom)
Returns an AuxReader that can obtain the characteristic size of the shapes to be plotted with the data from this reader. The returned AuxReader will be used iff `isAutoscale()` returns true.

Parameters:
  `geom` - data geometry used to interpret coordinate values
Returns:
  multipoint shape size reader

### getBaseScale

double getBaseScale(Surface surface, Span sizeSpan)
Returns the base size scaling value. Manual adjustment may be applied on top of this value.

Parameters:
  `surface` - plot surface
  `sizeSpan` - size range calculated from data by request, null if autoscale is not in effect