|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuk.ac.starlink.ttools.plot2.geom.TimeSurface
public class TimeSurface
Surface implementation for time-series plotting.
Constructor Summary | |
---|---|
TimeSurface(int gxlo,
int gxhi,
int gylo,
int gyhi,
double dtlo,
double dthi,
double dylo,
double dyhi,
boolean ylog,
boolean yflip,
Tick[] tticks,
Tick[] yticks,
String tlabel,
String ylabel,
Captioner captioner,
boolean grid,
TimeFormat tformat)
Constructor. |
Method Summary | |
---|---|
static TimeSurface |
createSurface(Rectangle plotBounds,
TimeAspect aspect,
boolean ylog,
boolean yflip,
String tlabel,
String ylabel,
Captioner captioner,
boolean grid,
TimeFormat tformat,
double tcrowd,
double ycrowd,
boolean minor)
Utility method to create a TimeSurface from available requirements. |
boolean |
dataToGraphics(double[] dpos,
boolean visibleOnly,
Point2D.Double gp)
Converts a data space position to a graphics position. |
boolean |
dataToGraphicsOffset(double[] dpos0,
Point2D.Double gpos0,
double[] dpos1,
boolean visibleOnly,
Point2D.Double gpos1)
Converts an offset data space position to a graphics position. |
boolean |
equals(Object o)
|
String |
formatPosition(double[] dpos)
Formats the given data space position as a coordinate string. |
Captioner |
getCaptioner()
Returns a captioner suitable for drawing general purpose labels annotating the plot. |
int |
getDataDimCount()
Returns 2. |
Rectangle |
getPlotBounds()
Returns the rectangle within which all of the plot data will appear. |
Insets |
getPlotInsets(boolean withScroll)
Returns the insets that this surface would like to reserve outside the plot bounds. |
double[] |
graphicsToData(Point2D gp,
Iterable<double[]> dposIt)
Attempst to turn a graphics position into a data position. |
int |
hashCode()
|
void |
paintBackground(Graphics g)
Paints the plot surface background. |
void |
paintForeground(Graphics g)
Paints the plot surface foreground. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public TimeSurface(int gxlo, int gxhi, int gylo, int gyhi, double dtlo, double dthi, double dylo, double dyhi, boolean ylog, boolean yflip, Tick[] tticks, Tick[] yticks, String tlabel, String ylabel, Captioner captioner, boolean grid, TimeFormat tformat)
gxlo
- graphics X coordinate lower boundgxhi
- graphics X coordinate upper boundgylo
- graphics Y coordinate lower boundgyhi
- graphics Y coordinate upper bounddtlo
- data time coordinate lower bound in unix secondsdthi
- data time coordinate upper bound in unix secondsdylo
- data Y coordinate lower bounddyhi
- data Y coordinate upper boundylog
- whether to use logarithmic scaling on Y axisyflip
- whether to invert direction of Y axistticks
- array of tickmark objects for time axisyticks
- array of tickmark objects for Y axistlabel
- text for labelling time axisylabel
- text for labelling Y axiscaptioner
- text renderer for axis labels etcgrid
- whether to draw grid linestformat
- time labelling formatMethod Detail |
---|
public Rectangle getPlotBounds()
Surface
getPlotBounds
in interface Surface
public Insets getPlotInsets(boolean withScroll)
Surface
Surface.getPlotBounds()
to be used for axis labels etc.
If the withScroll
parameter is set, then an attempt
will be made to return insets that will not alter if the current
plot is scrolled around a moderate amount.
For a one-time plot that's not important, but for an interactive
plot it prevents the actual plot position jumping around to
accommodate more or less space on the axes according to exactly
where ticks happen to fall on the axes.
getPlotInsets
in interface Surface
withScroll
- true to reserve space for nicer scrolling
public int getDataDimCount()
getDataDimCount
in interface Surface
public boolean dataToGraphics(double[] dpos, boolean visibleOnly, Point2D.Double gp)
Surface
visibleOnly
is true, then if the return value
is true, the exit value of gPos
is guaranteed
to be within the plot bounds of this surface.
If visibleOnly
is false, there are no guarantees
about the exit value of gPos
, and its coordinates
could be infinite or NaN. In this case you might want to perform
additional checking, for instance with the utility methods
PlotUtil.isPointFinite
or
isPointReal
.
dataToGraphics
in interface Surface
dpos
- dataDimCount-element array containing data space
coordinatesvisibleOnly
- if true, then the conversion will only succeed
when the result falls within the plot bounds
of this surfacegp
- point object into which the graphics position will
be written on success
public boolean dataToGraphicsOffset(double[] dpos0, Point2D.Double gpos0, double[] dpos1, boolean visibleOnly, Point2D.Double gpos1)
Surface
This (somewhat hacky) method is required for surfaces in which a
data position may map to more than one position in graphics space,
for instance sky surfaces with discontinuous longitude.
The result does not need to be the same as the result of
calling Surface.dataToGraphics(double[], boolean, java.awt.geom.Point2D.Double)
, and is not required to be a legal
graphics position, but it must make visual sense, for instance
when plotting error bars.
The semantics of a "nearby point" is not very well defined.
There are probably situations in which calling this will not
give the result that's wanted, but they will probably be rare.
dataToGraphicsOffset
in interface Surface
dpos0
- context position in data spacegpos0
- context position in graphics space
(result of calling dataToGraphics on dpos0)dpos1
- query position in data spacevisibleOnly
- if true, the call only succeeds if the result is
within the plot bounds of this surfacegpos1
- point object to which the graphics position of
dpos1 will be written on success
public double[] graphicsToData(Point2D gp, Iterable<double[]> dposIt)
Surface
dposIt
argument can optionally
be supplied to cope with such instances. If a data pos cannot be
determined, null is returned. If dposIt
is absent,
the method will run quickly. If it's present, it may or may
not run slowly.
graphicsToData
in interface Surface
gp
- graphics pointdposIt
- iterable over dataDimCount-element arrays
representing all the data space positions plotted,
or null
gPos
, or null if it cannot be determinedpublic String formatPosition(double[] dpos)
Surface
formatPosition
in interface Surface
dpos
- dataDimCount-element array giving data space position
public void paintBackground(Graphics g)
Surface
paintBackground
in interface Surface
g
- graphics contextpublic void paintForeground(Graphics g)
Surface
paintForeground
in interface Surface
g
- graphics contextpublic Captioner getCaptioner()
Surface
getCaptioner
in interface Surface
public int hashCode()
hashCode
in class Object
public boolean equals(Object o)
equals
in class Object
public static TimeSurface createSurface(Rectangle plotBounds, TimeAspect aspect, boolean ylog, boolean yflip, String tlabel, String ylabel, Captioner captioner, boolean grid, TimeFormat tformat, double tcrowd, double ycrowd, boolean minor)
plotBounds
- rectangle which the plot data should occupyaspect
- surface view configurationylog
- whether to use logarithmic scaling on Y axisyflip
- whether to invert direction of Y axistlabel
- text for labelling time axisylabel
- text for labelling Y axiscaptioner
- text renderer for axis labels etcgrid
- whether to draw grid linestformat
- time labelling formattcrowd
- crowding factor for tick marks on time axis;
1 is normalycrowd
- crowding factor for tick marks on Y axis;
1 is normalminor
- whether to paint minor tick marks on axes
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |