Package uk.ac.starlink.ttools.plot2
Class AuxScale
- java.lang.Object
-
- uk.ac.starlink.ttools.plot2.AuxScale
-
public class AuxScale extends java.lang.Object
Represents a ranged value that can differ according to the content of a plot. To calculate the range of an AuxScale it is not necessary to have detailed information about the geometry of the plot surface (the Surface object required for final plotting). That means it is not required to generate the actual plot surface geometry. However, an approximate plot surface may be required for range calculations.- Since:
- 4 Feb 2013
- Author:
- Mark Taylor
-
-
Constructor Summary
Constructors Constructor Description AuxScale(java.lang.String name)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.util.Map<AuxScale,Span>
calculateAuxSpans(AuxScale[] scales, PlotLayer[] layers, Surface surface, java.lang.Object[] knownPlans, DataStore dataStore)
Fills in range information for a submitted list of AuxScale objects from the data in a given list of layers.static AuxScale[]
getAuxScales(PlotLayer[] layers)
Utility method to acquire all the scales that are used in an array of layers.static java.util.Map<AuxScale,Span>
getClippedSpans(AuxScale[] scales, java.util.Map<AuxScale,Span> dataSpans, java.util.Map<AuxScale,Span> fixSpans, java.util.Map<AuxScale,Subrange> subranges, java.util.Map<AuxScale,java.lang.Boolean> logFlags)
Amalgamates range requirements for a set of scales to return actual ranges to be used.static AuxScale[]
getMissingScales(PlotLayer[] layers, java.util.Map<AuxScale,Span> dataSpans, java.util.Map<AuxScale,Span> fixSpans)
Returns a list of scale objects for which calculations are required.java.lang.String
getName()
Returns the scale name.java.lang.String
toString()
-
-
-
Field Detail
-
COLOR
public static AuxScale COLOR
AuxScale object used for the standard colour scaling axis.
-
-
Method Detail
-
getName
public java.lang.String getName()
Returns the scale name.- Returns:
- name
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getAuxScales
public static AuxScale[] getAuxScales(PlotLayer[] layers)
Utility method to acquire all the scales that are used in an array of layers. The result is unordered and contains each scale only once (like a Set).- Parameters:
layers
- layers that may reference scales- Returns:
- array of uses scales
-
calculateAuxSpans
public static java.util.Map<AuxScale,Span> calculateAuxSpans(AuxScale[] scales, PlotLayer[] layers, Surface surface, java.lang.Object[] knownPlans, DataStore dataStore)
Fills in range information for a submitted list of AuxScale objects from the data in a given list of layers. The supplied plot surface may be used to assess marker shape etc. It should have approximately the same behaviour as the surface on which the plot will take place, but it is usually not critical that it behaves identically.- Parameters:
scales
- scales to calculate ranges forlayers
- plot layerssurface
- approximate plot surfaceknownPlans
- array of available plan objects; may be emptydataStore
- data repository- Returns:
- map with a range entry for each of the
scales
-
getClippedSpans
public static java.util.Map<AuxScale,Span> getClippedSpans(AuxScale[] scales, java.util.Map<AuxScale,Span> dataSpans, java.util.Map<AuxScale,Span> fixSpans, java.util.Map<AuxScale,Subrange> subranges, java.util.Map<AuxScale,java.lang.Boolean> logFlags)
Amalgamates range requirements for a set of scales to return actual ranges to be used. An array of input scales is supplied, along with several maps of optional range constraints, each of which may contain entries for zero or more of the input scales. It is not required to supply entries to any of these maps for each given scale. The returned map has one entry for each scales element.- Parameters:
scales
- list of scales for which output ranges are requireddataSpans
- actual data ranges acquired by scanning the data, keyed by scale (optional per scale)fixSpans
- single- or double-ended fixed data ranges, keyed by scale (optional per scale)subranges
- subrange keyed by scale; optional per scale, if absent 0-1 is assumedlogFlags
- flags indicating logarithmic scale; optional per scale, absent equivalent to false indicates linear scaling- Returns:
- map with one entry for each input scale giving definite ranges to use in the plot
-
getMissingScales
public static AuxScale[] getMissingScales(PlotLayer[] layers, java.util.Map<AuxScale,Span> dataSpans, java.util.Map<AuxScale,Span> fixSpans)
Returns a list of scale objects for which calculations are required. A list of scale objects for which ranges are required is supplied, along with optional associated data and fixed value ranges. A list of those scales for which data scans are necessary, on the assumption that they are to be fed to thecalculateAuxSpans
method, is returned.- Parameters:
layers
- layers to be plotteddataSpans
- ranges acquired by scanning data keyed by scale, (optional per scale)fixSpans
- single- or double-ended fixed data ranges, keyed by scale (optional per scale)- Returns:
- list of scales for which data scans are required
-
-