USGS

Isis 3.0 Developer's Reference (API)

Home

Isis::CubePlotCurve Class Reference

This is a plot curve with information relating it to a particular cube or region of a cube. More...

#include <CubePlotCurve.h>

Inherits QObject, and Isis::PlotCurve.

List of all members.

Public Types

enum  Units {
  Unknown, Band, CubeDN, Elevation,
  Percentage, PixelNumber, Meters, Kilometers,
  Wavelength
}
 

These are all the possible units for the x or y data in a plot curve.

More...

Signals

void needsRepaint ()
 This is emitted when the curve is modified in such a way that it would paint a viewport differently.
void removing ()
 This is emitted just before the cube plot curve is deleted.

Public Member Functions

 CubePlotCurve (Units xUnits, Units yUnits)
 This constructs a CubePlotCurve.
 CubePlotCurve (const QByteArray &parentAndChildData)
 Construct the plot tool curve given the past results of toByteArray(.
bool eventFilter (QObject *o, QEvent *e)
 This will start the drag & drop operation for these curves.
void paint (CubeViewport *vp, QPainter *painter)
 Use information inside of the plot curve to paint onto a cube viewport.
QList< QList< QPointF > > sourceVertices () const
 This method returns a list of points which are the vertices of the selected area (by the rubberband) on the cvp.
virtual QWidgetlegendItem () const
 This method is necessary for getting the correct (event filter altered) legend item.
QStringList sourceCube () const
 This method returns the cube view port associated with the curve.
void enableAutoRenaming (bool)
 This enables/disables the plot curve from changing it's title when the source data changes.
void copySource (const CubePlotCurve &other)
 This copies the source data from another CubePlotCurve.
void setSource (CubeViewport *cvp, QList< QPoint > screenPoints, int band=-1)
 Tell this plot curve from where its data originated.
void setSource (QList< CubeViewport * > cvps, QList< QList< QPoint > > screenPoints, QList< int > band)
void attachMarkers ()
 After attaching this curve to a plot, due to an inheritance/implementation complication with qwt the markers will remain detached until they are recreated.
QColor color () const
 This method returns the color of the curve.
QwtSymbol markerSymbol () const
 This method returns the shape of the markers.
Units xUnits () const
 Get the units of the x-axis double data.
Units yUnits () const
 Get the units of the y-axis double data.
void setColor (const QColor &color)
 Set the color of this curve and it's markers.
void setData (QwtSeriesData< QPointF > *data)
 This method sets the data for the curve, then sets the value for the markers associated with the curve.
void setPen (const QPen &pen)
 Sets the plot pen to the passed-in pen.
void setMarkerSymbol (QwtSymbol symbol)
 This method sets the shape of the markers.
void setMarkerVisible (bool visible)
 This method sets the visibility states of the markers at each value point.

Protected Member Functions

QByteArray fromByteArray (const QByteArray &classData)
 Construct the plot curve given the past results of toByteArray(.

Detailed Description

This is a plot curve with information relating it to a particular cube or region of a cube.

This class was created specifically for use with the qview plot tools (AbstractPlotTool). This was formerly known as PlotToolCurve. With this class the programmer can set the cube view port that the curve is associated with along with the vertices on the viewport of which the curve gets it data. With this information, the plot curve can rename itself and paint its origin points onto cube viewports.

Author:
????-??-?? Stacy Alley

Member Enumeration Documentation

enum Isis::PlotCurve::Units [inherited]

These are all the possible units for the x or y data in a plot curve.

We want these in order to have type checking when moving curves around - it's theoretically possible to even utilize the right y axis automatically when you put mismatched plot curve y data into the same plot. All of this and more requires knowing your data's units.

Enumerator:
Unknown 

The data units are not yet known.

Please avoid using this if at all possible.

Band 

The data is a band number.

CubeDN 

The data is a Cube DN value.

Elevation 

The data is an elevation (in meters).

Percentage 

The data is a percentage (0-100).

PixelNumber 

The data is a pixel #.

For example, it's the nth pixel along a line.

Meters 

The data is in meters.

For example, it's the nth meter along a line.

Kilometers 

The data is in kilometers.

For example, it's the nth kilometer along a line.

Wavelength 

The data is a wavelength.

This is usually associated with a band and comes from the band bin group.


Constructor & Destructor Documentation

Isis::CubePlotCurve::CubePlotCurve ( Units  xUnits,
Units  yUnits 
)

This constructs a CubePlotCurve.

.. a subclass of PlotCurve. This class was created specifically for use with the plot tools. With this class the programmer can set the cube view port that the curve is associated with along with the vertices on the cvp of which the curve gets it data.

Parameters:
xUnits The units that the x-axis data is in
yUnits The units that the x-axis data is in
Isis::CubePlotCurve::CubePlotCurve ( const QByteArray &  parentAndChildData  ) 

Construct the plot tool curve given the past results of toByteArray(.

..). This is used for copy/paste and drag/drop.

Parameters:
parentAndChildData A serialized, binary representation of an instance of this class.

References _FILEINFO_, ASSERT, Isis::PlotCurve::fromByteArray(), legendItem(), Isis::IException::Programmer, x, and y.


Member Function Documentation

void Isis::PlotCurve::attachMarkers (  )  [inherited]

After attaching this curve to a plot, due to an inheritance/implementation complication with qwt the markers will remain detached until they are recreated.

This forces the markers to be updated immediately.

Please always call this method after attaching this curve to a plot.

Referenced by Isis::PlotWindow::add().

QColor Isis::PlotCurve::color (  )  const [inherited]

This method returns the color of the curve.

Returns:
QColor

Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine(), paint(), and Isis::PlotWindow::plotCurves().

void Isis::CubePlotCurve::copySource ( const CubePlotCurve other  ) 

This copies the source data from another CubePlotCurve.

This curve will now act as if it has the same exact source data as the other curve.

Parameters:
other The curve with the source (origination) data to copy.

References needsRepaint().

Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine().

void Isis::CubePlotCurve::enableAutoRenaming ( bool  allowed  ) 

This enables/disables the plot curve from changing it's title when the source data changes.

This is enabled by default and typically disabled when a user manually renames a curve.

Parameters:
allowed True for automatic renaming, false to preserve curve title
bool Isis::CubePlotCurve::eventFilter ( QObject o,
QEvent *  e 
)

This will start the drag & drop operation for these curves.

Parameters:
o The object that the event relates to. This is usually the legend item, but some children install their own event filters for other objects.
e The event that occurred on the given object.
Returns:
True if we don't want any more processing of the event
QByteArray Isis::PlotCurve::fromByteArray ( const QByteArray &  classData  )  [protected, inherited]

Construct the plot curve given the past results of toByteArray(.

..). This is used for copy/paste and drag/drop.

Returns:
The unconsumed part of the byte array.

References _FILEINFO_, ASSERT, Isis::IException::Programmer, Isis::ReadWrite, Isis::PlotCurve::setColor(), Isis::PlotCurve::setData(), Isis::PlotCurve::setPen(), x, and y.

Referenced by CubePlotCurve().

QWidget * Isis::CubePlotCurve::legendItem (  )  const [virtual]

This method is necessary for getting the correct (event filter altered) legend item.

Without this, drag & drop and context menus do not work.

Returns:
The legend item widget associated with this curve

Referenced by CubePlotCurve().

QwtSymbol Isis::PlotCurve::markerSymbol (  )  const [inherited]

This method returns the shape of the markers.

Returns:
QwtSymbol

Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine().

void Isis::CubePlotCurve::needsRepaint (  )  [signal]

This is emitted when the curve is modified in such a way that it would paint a viewport differently.

Referenced by copySource().

void Isis::CubePlotCurve::paint ( CubeViewport vp,
QPainter *  painter 
)

Use information inside of the plot curve to paint onto a cube viewport.

This paints the originating data points, in the color of the curve, onto the viewport. This will not paint onto unrelated cube viewports.

Parameters:
vp The viewport we're going to potentially paint onto
painter The painter to use for painting onto the viewport

References Isis::PlotCurve::color(), Isis::CubeViewport::cube(), Isis::CubeViewport::cubeToViewport(), Isis::Cube::fileName(), sourceVertices(), x, and y.

Referenced by Isis::PlotWindow::paint().

void Isis::CubePlotCurve::removing (  )  [signal]

This is emitted just before the cube plot curve is deleted.

This is used to queue the deletes to happen at a safe time.

void Isis::PlotCurve::setColor ( const QColor &  color  )  [inherited]

Set the color of this curve and it's markers.

This color will override the pen's color always.

Parameters:
color The color of this curve.

References Isis::PlotCurve::setPen().

Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine(), Isis::AbstractPlotTool::createCurve(), and Isis::PlotCurve::fromByteArray().

void Isis::PlotCurve::setData ( QwtSeriesData< QPointF > *  data  )  [inherited]

This method sets the data for the curve, then sets the value for the markers associated with the curve.

Parameters:
data 

Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine(), and Isis::PlotCurve::fromByteArray().

void Isis::PlotCurve::setMarkerSymbol ( QwtSymbol  symbol  )  [inherited]

This method sets the shape of the markers.

Parameters:
style 

Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine().

void Isis::PlotCurve::setMarkerVisible ( bool  visible  )  [inherited]

This method sets the visibility states of the markers at each value point.

Parameters:
visible True to show markers, false to hide
void Isis::PlotCurve::setPen ( const QPen &  pen  )  [inherited]
void Isis::CubePlotCurve::setSource ( QList< CubeViewport * >  cvps,
QList< QList< QPoint > >  screenPoints,
QList< int >  band 
)
void Isis::CubePlotCurve::setSource ( CubeViewport cvp,
QList< QPoint >  screenPoints,
int  band = -1 
)

Tell this plot curve from where its data originated.

If you set a source, you must keep it up to date. Any time the data in the curve changes, you should be calling this method again.

Parameters:
cvp The viewport from which this curve's data came from
screenPoints The pertinent points on the viewport from which this curve's data came from.
band The band of the cube inside of said viewport from which this curve's data came from.
QStringList Isis::CubePlotCurve::sourceCube (  )  const

This method returns the cube view port associated with the curve.

Returns:
CubeViewport*

Referenced by Isis::AbstractPlotTool::repaintViewports().

QList< QList< QPointF > > Isis::CubePlotCurve::sourceVertices (  )  const

This method returns a list of points which are the vertices of the selected area (by the rubberband) on the cvp.

Returns:
QList<QPoint>

Referenced by paint().

PlotCurve::Units Isis::PlotCurve::xUnits (  )  const [inherited]

Get the units of the x-axis double data.

Returns:
The units of the x-axis data

Referenced by Isis::PlotWindow::canAdd(), and Isis::PlotWindowBestFitDialog::createBestFitLine().

PlotCurve::Units Isis::PlotCurve::yUnits (  )  const [inherited]

Get the units of the y-axis double data.

Returns:
The units of the y-axis data

Referenced by Isis::PlotWindow::canAdd(), and Isis::PlotWindowBestFitDialog::createBestFitLine().


The documentation for this class was generated from the following files: