Isis 3 Programmer Reference
|
This is a plot curve with information relating it to a particular cube or region of a cube. More...
#include <CubePlotCurve.h>
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... | |
Public Slots | |
void | updateLegendItemWidget (QWidget *legendItem) |
This creates a legend item and overrides events from it. More... | |
Signals | |
void | needsRepaint () |
This is emitted when the curve is modified in such a way that it would paint a viewport differently. More... | |
void | removing () |
This is emitted just before the cube plot curve is deleted. More... | |
Public Member Functions | |
CubePlotCurve (Units xUnits, Units yUnits) | |
This constructs a CubePlotCurve... More... | |
CubePlotCurve (const QByteArray &parentAndChildData) | |
Construct the plot tool curve given the past results of toByteArray(...). More... | |
bool | eventFilter (QObject *o, QEvent *e) |
This will start the drag & drop operation for these curves. More... | |
void | paint (CubeViewport *vp, QPainter *painter) |
Use information inside of the plot curve to paint onto a cube viewport. More... | |
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. More... | |
virtual QWidget * | legendItem () const |
This method is necessary for getting the correct (event filter altered) legend item. More... | |
QStringList | sourceCube () const |
This method returns the cube view port associated with the curve. More... | |
void | enableAutoRenaming (bool) |
This enables/disables the plot curve from changing it's title when the source data changes. More... | |
void | copySource (const CubePlotCurve &other) |
This copies the source data from another CubePlotCurve. More... | |
void | setSource (CubeViewport *cvp, QList< QPoint > screenPoints, int band=-1) |
Tell this plot curve from where its data originated. More... | |
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. More... | |
QColor | color () const |
This method returns the color of the curve. More... | |
QwtSymbol * | markerSymbol () const |
This method returns the shape of the markers. More... | |
Units | xUnits () const |
Get the units of the x-axis double data. More... | |
Units | yUnits () const |
Get the units of the y-axis double data. More... | |
void | setColor (const QColor &color) |
Set the color of this curve and it's markers. More... | |
void | setData (QwtSeriesData< QPointF > *data) |
This method sets the data for the curve, then sets the value for the markers associated with the curve. More... | |
void | setPen (const QPen &pen) |
Sets the plot pen to the passed-in pen. More... | |
void | setMarkerSymbol (QwtSymbol::Style style) |
This method sets the shape of the markers. More... | |
void | setMarkerVisible (bool visible) |
This method sets the visibility states of the markers at each value point. More... | |
Protected Member Functions | |
QByteArray | fromByteArray (const QByteArray &classData) |
Construct the plot curve given the past results of toByteArray(...). More... | |
Private Member Functions | |
QMimeData * | createMimeData () const |
This converts the plot curve into a binary, clipboard-compatible storage format (QMimeData). More... | |
QByteArray | toByteArray () const |
Serialize this plot curve into a binary byte array. More... | |
void | mousePressEvent (QMouseEvent *e) |
Handle various events on the legend item. More... | |
void | clearSource () |
void | addSource (CubeViewport *cvp, QList< QPoint > screenPoints, int band=-1) |
Private Attributes | |
QPointer< QWidget > | m_legendItem |
This is the widget legend item associated with this curve. More... | |
QString | m_originalName |
This is the curve's name before any automatic renaming happened. More... | |
bool | m_renameAutomatically |
This indicates if we are allowed to modify the title of this curve when the source (origin) data changes. More... | |
QList< QList< QPointF > > | m_pointList |
List of vertices in sample,line coordinates from the rubber band. More... | |
QStringList | m_sourceCube |
The cube that the data is coming from. More... | |
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.
2012-01-18 Steven Lambright and Tracie Sucharski - Renamed class to CubePlotCurve. Changed functionality dramatically to support a new plotting infrastructure.
2012-01-20 Steven Lambright and Jai Rideout - Completed documentation.
2012-01-30 Steven Lambright - Fixed a bug added when the legendItem() method was removed. This method is necessary. Fixes #688.
2012-03-14 Tracie Sucharski - Added functionality for multiple viewports as a source for plots.
2014-07-02 Ian Humphrey - Added comment for executing configure dialog. References #2089.
Definition at line 68 of file CubePlotCurve.h.
|
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. |
Definition at line 54 of file PlotCurve.h.
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.
xUnits | The units that the x-axis data is in |
yUnits | The units that the x-axis data is in |
Definition at line 42 of file CubePlotCurve.cpp.
References m_legendItem, and m_renameAutomatically.
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.
parentAndChildData | A serialized, binary representation of an instance of this class. |
Definition at line 56 of file CubePlotCurve.cpp.
References _FILEINFO_, Isis::PlotCurve::fromByteArray(), m_legendItem, m_pointList, m_sourceCube, and Isis::IException::Programmer.
|
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.
Definition at line 46 of file PlotCurve.cpp.
Referenced by Isis::PlotWindow::add().
|
inherited |
This method returns the color of the curve.
Definition at line 56 of file PlotCurve.cpp.
Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine(), paint(), Isis::PlotWindow::plotCurves(), and Isis::PlotCurve::setColor().
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.
other | The curve with the source (origination) data to copy. |
Definition at line 250 of file CubePlotCurve.cpp.
References m_pointList, m_sourceCube, and needsRepaint().
Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine().
|
private |
This converts the plot curve into a binary, clipboard-compatible storage format (QMimeData).
The format is 'application/isis3-plot-curve'.
Definition at line 356 of file CubePlotCurve.cpp.
References toByteArray().
Referenced by mousePressEvent().
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.
allowed | True for automatic renaming, false to preserve curve title |
Definition at line 239 of file CubePlotCurve.cpp.
References m_renameAutomatically.
bool Isis::CubePlotCurve::eventFilter | ( | QObject * | o, |
QEvent * | e | ||
) |
This will start the drag & drop operation for these curves.
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. |
Definition at line 131 of file CubePlotCurve.cpp.
References mousePressEvent().
|
protectedinherited |
Construct the plot curve given the past results of toByteArray(...).
This is used for copy/paste and drag/drop.
Definition at line 145 of file PlotCurve.cpp.
References _FILEINFO_, and Isis::IException::Programmer.
Referenced by CubePlotCurve().
|
virtual |
This method is necessary for getting the correct (event filter altered) legend item.
Without this, drag & drop and context menus do not work.
Definition at line 216 of file CubePlotCurve.cpp.
References m_legendItem.
Referenced by updateLegendItemWidget().
|
inherited |
This method returns the shape of the markers.
Definition at line 66 of file PlotCurve.cpp.
References Isis::PlotCurve::m_markerSymbol.
|
private |
Handle various events on the legend item.
This will only be called for the legend item's events and handles drag & drop, context menus and similar actions. Basically all user interaction with legend items happen here.
event | The event which happened on the legend item. |
Definition at line 417 of file CubePlotCurve.cpp.
References createMimeData(), Isis::FileName::expanded(), m_legendItem, needsRepaint(), removing(), and Isis::PlotCurve::setColor().
Referenced by eventFilter().
|
signal |
This is emitted when the curve is modified in such a way that it would paint a viewport differently.
Referenced by copySource(), and mousePressEvent().
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.
vp | The viewport we're going to potentially paint onto |
painter | The painter to use for painting onto the viewport |
Definition at line 163 of file CubePlotCurve.cpp.
References Isis::PlotCurve::color(), Isis::CubeViewport::cube(), Isis::CubeViewport::cubeToViewport(), Isis::Cube::fileName(), m_sourceCube, and sourceVertices().
Referenced by Isis::PlotWindow::paint().
|
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.
Referenced by mousePressEvent().
|
inherited |
Set the color of this curve and it's markers.
This color will override the pen's color always.
color | The color of this curve. |
Definition at line 97 of file PlotCurve.cpp.
References Isis::PlotCurve::color(), and Isis::PlotCurve::setPen().
Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine(), Isis::AbstractPlotTool::createCurve(), and mousePressEvent().
|
inherited |
This method sets the data for the curve, then sets the value for the markers associated with the curve.
data |
Definition at line 109 of file PlotCurve.cpp.
Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine().
|
inherited |
This method sets the shape of the markers.
style |
Definition at line 120 of file PlotCurve.cpp.
References Isis::PlotCurve::m_markerSymbol.
Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine().
|
inherited |
This method sets the visibility states of the markers at each value point.
visible | True to show markers, false to hide |
Definition at line 131 of file PlotCurve.cpp.
Referenced by Isis::PlotWindow::updateVisibility().
|
inherited |
Sets the plot pen to the passed-in pen.
pen |
Definition at line 340 of file PlotCurve.cpp.
Referenced by Isis::PlotWindowBestFitDialog::createBestFitLine(), Isis::AbstractPlotTool::createCurve(), and Isis::PlotCurve::setColor().
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.
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. |
Definition at line 315 of file CubePlotCurve.cpp.
QStringList Isis::CubePlotCurve::sourceCube | ( | ) | const |
This method returns the cube view port associated with the curve.
Definition at line 227 of file CubePlotCurve.cpp.
References m_sourceCube.
Referenced by Isis::AbstractPlotTool::repaintViewports().
This method returns a list of points which are the vertices of the selected area (by the rubberband) on the cvp.
Definition at line 205 of file CubePlotCurve.cpp.
References m_pointList.
Referenced by paint().
|
private |
Serialize this plot curve into a binary byte array.
This is useful for storing the curve on the clipboard or in a drag & drop event.
Definition at line 370 of file CubePlotCurve.cpp.
References m_pointList, and m_sourceCube.
Referenced by createMimeData().
|
slot |
This creates a legend item and overrides events from it.
Definition at line 337 of file CubePlotCurve.cpp.
References legendItem(), and m_legendItem.
Referenced by Isis::PlotWindow::add().
|
inherited |
Get the units of the x-axis double data.
Definition at line 76 of file PlotCurve.cpp.
Referenced by Isis::PlotWindow::canAdd(), Isis::PlotWindowBestFitDialog::createBestFitLine(), and Isis::PlotCurve::PlotCurve().
|
inherited |
Get the units of the y-axis double data.
Definition at line 86 of file PlotCurve.cpp.
Referenced by Isis::PlotWindow::canAdd(), Isis::PlotWindowBestFitDialog::createBestFitLine(), and Isis::PlotCurve::PlotCurve().
|
private |
This is the widget legend item associated with this curve.
Definition at line 114 of file CubePlotCurve.h.
Referenced by CubePlotCurve(), legendItem(), mousePressEvent(), and updateLegendItemWidget().
|
private |
This is the curve's name before any automatic renaming happened.
Definition at line 117 of file CubePlotCurve.h.
List of vertices in sample,line coordinates from the rubber band.
Definition at line 126 of file CubePlotCurve.h.
Referenced by copySource(), CubePlotCurve(), sourceVertices(), and toByteArray().
|
private |
This indicates if we are allowed to modify the title of this curve when the source (origin) data changes.
Definition at line 123 of file CubePlotCurve.h.
Referenced by CubePlotCurve(), and enableAutoRenaming().
|
private |
The cube that the data is coming from.
Definition at line 129 of file CubePlotCurve.h.
Referenced by copySource(), CubePlotCurve(), paint(), sourceCube(), and toByteArray().