MathPlot
|
A class providing graphs functionality for a 2D plot (either continuous or a set of points), from vectors of data. More...
#include <mathplot.h>
Public Member Functions | |
mpFXYVector (const wxString &name=wxEmptyString, int flags=mpALIGN_NE, bool viewAsBar=false, bool useY2Axis=false) | |
virtual | ~mpFXYVector () |
destrutor | |
void | SetData (const std::vector< double > &xs, const std::vector< double > &ys) |
Changes the internal data: the set of points to draw. More... | |
void | Clear () |
Clears all the data, leaving the layer empty. More... | |
virtual int | GetSize () |
Return the number of points in the series We assume that size of m_xs equals size of m_ys. | |
bool | AddData (const double x, const double y, bool updatePlot) |
Add data to the internal vector. More... | |
void | SetReserve (int reserve) |
Set memory reserved for m_xs and m_ys Note : this does not modify the size of m_xs and m_ys, this is not a resize. More... | |
int | GetReserve () const |
Get memory reserved for m_xs and m_ys. | |
![]() | |
mpFXY (const wxString &name=wxEmptyString, int flags=mpALIGN_NE, bool viewAsBar=false, bool useY2Axis=false) | |
bool | DoGetNextXY (double *x, double *y) |
Get function value with log test. | |
void | SetViewMode (bool asBar) |
If true, XY series is plotted as bar. | |
int | GetBarWidth (void) const |
return the width of the bar | |
bool | ViewAsBar (void) const |
return true if XY series is plotted with bar | |
![]() | |
mpFunction (mpLayerType layerType=mpLAYER_PLOT, const wxString &name=wxEmptyString, bool useY2Axis=false) | |
Full constructor. | |
void | SetContinuity (bool continuity) |
Set the 'continuity' property of the layer. More... | |
bool | GetContinuity () const |
Gets the 'continuity' property of the layer. More... | |
void | SetStep (unsigned int step) |
Set step for plot. More... | |
unsigned int | GetStep () const |
Get step for plot. More... | |
void | SetSymbol (mpSymbol symbol) |
Set symbol. More... | |
mpSymbol | GetSymbol () const |
Get symbol. More... | |
void | SetSymbolSize (int size) |
Set symbol size. More... | |
int | GetSymbolSize () const |
Get symbol size. More... | |
virtual bool | DrawSymbol (wxDC &dc, wxCoord x, wxCoord y) |
Draw a symbol in place of point. More... | |
void | SetY2Axis (bool _useY2) |
Set use of second Y axis. More... | |
bool | GetY2Axis () const |
Is second Y axis selected for this layer? More... | |
![]() | |
mpLayer (mpLayerType layerType) | |
void | SetWindow (mpWindow &w) |
Set the wxWindow handle. | |
virtual bool | HasBBox () |
Check whether this layer has a bounding box. More... | |
virtual void | GetBBox (mpFloatRect *m_bound) |
Return the bounding box, ie GetMinX(), GetMaxX(), GetMinY() and GetMaxY() of this mpLayer Here we don't use extra Y2 values. | |
mpLayerType | GetLayerType () const |
Get layer type: a Layer can be of different types: plot, lines, axis, info boxes, etc, this method returns the right value. More... | |
int | GetLayerSubType () const |
Get layer subtype: each layer type can have several flavors. More... | |
virtual bool | IsLayerType (mpLayerType type, int *sub_type) |
Specifies that if the layer is of type "type". More... | |
void | Plot (wxDC &dc, mpWindow &w) |
Plot given view of layer to the given device context. More... | |
void | SetName (const wxString &name) |
Set layer name. More... | |
const wxString & | GetName () const |
Get layer name. More... | |
void | SetFont (const wxFont &font) |
Set layer font. More... | |
const wxFont & | GetFont () const |
Get font set for this layer. More... | |
void | SetFontColour (const wxColour &colour) |
Set layer font foreground colour. More... | |
const wxColour & | GetFontColour () const |
Get font foreground colour set for this layer. More... | |
void | SetPen (const wxPen &pen) |
Set layer pen. More... | |
const wxPen & | GetPen () const |
Get pen set for this layer. More... | |
void | SetBrush (const wxBrush &brush) |
Set layer brush. More... | |
const wxBrush & | GetBrush () const |
Get brush set for this layer. More... | |
void | SetShowName (bool show) |
Set Name visibility. More... | |
bool | GetShowName () const |
Get Name visibility. More... | |
void | SetDrawOutsideMargins (bool drawModeOutside) |
Set Draw mode: inside or outside margins. More... | |
bool | GetDrawOutsideMargins () const |
Get Draw mode: inside or outside margins. More... | |
wxBitmap | GetColourSquare (int side=16) |
Get a small square bitmap filled with the colour of the pen used in the layer. More... | |
bool | IsVisible () const |
Checks whether the layer is visible or not. More... | |
virtual void | SetVisible (bool show) |
Sets layer visibility. More... | |
bool | IsTractable () const |
Checks whether the layer is tractable or not. More... | |
virtual void | SetTractable (bool track) |
Sets layer tractability. More... | |
void | SetAlign (int align) |
Set X/Y alignment. More... | |
int | GetAlign () const |
Get X/Y alignment. More... | |
void | SetCanDelete (bool canDelete) |
Set CanDelete for plot. More... | |
bool | GetCanDelete (void) const |
Get CanDelete for plot. More... | |
mpLayerZOrder | GetZIndex (void) const |
Get the ZIndex of the plot. More... | |
Protected Member Functions | |
void | Rewind () |
Rewind value enumeration with mpFXY::GetNextXY. More... | |
virtual bool | GetNextXY (double *x, double *y) |
Get locus value for next N. More... | |
void | DrawAddedPoint (double x, double y) |
Draw the point added if there is in bound. More... | |
virtual double | GetMinX () |
Returns the actual minimum X data (loaded in SetData). | |
virtual double | GetMinY () |
Returns the actual minimum Y data (loaded in SetData). | |
virtual double | GetMaxX () |
Returns the actual maximum X data (loaded in SetData). | |
virtual double | GetMaxY () |
Returns the actual maximum Y data (loaded in SetData). | |
![]() | |
virtual void | DoPlot (wxDC &dc, mpWindow &w) |
Layer plot handler. More... | |
void | UpdateViewBoundary (wxCoord xnew, wxCoord ynew) |
Update label positioning data. More... | |
wxDECLARE_DYNAMIC_CLASS (mpFXY) | |
![]() | |
wxDECLARE_DYNAMIC_CLASS (mpFunction) | |
![]() | |
void | UpdateContext (wxDC &dc) const |
Initialize the context. | |
virtual void | DoBeforePlot () |
If we need to do something before plot like reinitialize some parameters ... | |
void | CheckLog (double *x, double *y) |
Test if we are in log axis and if true return the log of the values. | |
Protected Attributes | |
std::vector< double > | m_xs |
The internal copy of the set of data to draw. | |
std::vector< double > | m_ys |
int | m_reserveXY |
Memory reserved for m_xs and m_ys. More... | |
size_t | m_index |
The internal counter for the "GetNextXY" interface. | |
double | m_minX |
Loaded at SetData. | |
double | m_maxX |
double | m_minY |
double | m_maxY |
double | m_lastX |
double | m_lastY |
![]() | |
wxCoord | maxDrawX |
wxCoord | minDrawX |
wxCoord | maxDrawY |
wxCoord | minDrawY |
double | m_deltaX |
double | m_deltaY |
int | m_BarWidth |
bool | m_ViewAsBar = false |
bool | m_CanDelete = true |
![]() | |
bool | m_continuous |
Specify if the layer will be plotted as a continuous line or a set of points. Default false. | |
mpSymbol | m_symbol |
A symbol for the plot in place of point. Default mpNone. | |
int | m_symbolSize |
Size of the symbol. Default 6. | |
int | m_symbolSize2 |
Size of the symbol div 2. | |
unsigned int | m_step |
Step to get point to be draw. Default : 1. | |
bool | m_UseY2Axis |
Use Y2 axis. This second axis must exist. | |
![]() | |
const mpLayerType | m_type |
Layer type mpLAYER_*. | |
mpWindow * | m_win |
The wxWindow handle. | |
int | m_subtype |
Layer sub type, set in constructors. | |
wxFont | m_font |
Layer's font. | |
wxColour | m_fontcolour |
Layer's font foreground colour. | |
wxPen | m_pen |
Layer's pen. Default Colour = Black, width = 1, style = wxPENSTYLE_SOLID. | |
wxBrush | m_brush |
Layer's brush. Default wxTRANSPARENT_BRUSH. | |
wxString | m_name |
Layer's name. | |
bool | m_showName |
States whether the name of the layer must be shown. Default : false. | |
bool | m_drawOutsideMargins |
Select if the layer should draw only inside margins or over all DC. Default : false. | |
bool | m_visible |
Toggles layer visibility. Default : true. | |
bool | m_tractable |
Is the layer tractable. | |
int | m_flags |
Holds label alignment. Default : mpALIGN_NE. | |
mpRect | m_plotBoundaries |
The boundaries for plotting curve calculated by mpWindow. | |
bool | m_CanDelete |
Is the layer can be deleted. | |
mpLayerZOrder | m_ZIndex |
The index in Z-Order to draw the layer. | |
A class providing graphs functionality for a 2D plot (either continuous or a set of points), from vectors of data.
This class can be used directly, the user does not need to derive any new class. Simply pass the data as two vectors with the same length containing the X and Y coordinates to the method SetData.
To generate a graph with a set of points, call
or
to render the sequence of coordinates as a continuous line.
(Added: Jose Luis Blanco, AGO-2007)
mpFXYVector::mpFXYVector | ( | const wxString & | name = wxEmptyString , |
int | flags = mpALIGN_NE , |
||
bool | viewAsBar = false , |
||
bool | useY2Axis = false |
||
) |
name | Label |
flags | Label alignment, pass one of #mpALIGN_NE, #mpALIGN_NW, #mpALIGN_SW, #mpALIGN_SE. |
bool mpFXYVector::AddData | ( | const double | x, |
const double | y, | ||
bool | updatePlot | ||
) |
Add data to the internal vector.
This method DOES NOT refresh the mpWindow unless updatePlot = true and the added point is in bound; do it manually by calling UpdateAll() or just Fit() if we want to adjust plot
x | |
y | |
updatePlot. | boolean, set true to update plot. This speed the rendering because just new point is drawing. |
This method DOES NOT refresh the mpWindow unless updatePlot = true; Do it manually by calling UpdateAll() or just Fit() if we want to adjust plot BEWARE : mpFXYVector layer must be added to the mpWindow layers list for update Plot (logic !)
|
virtual |
|
protected |
Draw the point added if there is in bound.
Draw the newly added point at m_index, optionally drawing the continuous-mode line.
The bounds are already known.
|
protectedvirtual |
Get locus value for next N.
Overridden in this implementation.
x | Returns X value |
y | Returns Y value |
Implements MathPlot::mpFXY.
|
inlineprotectedvirtual |
Rewind value enumeration with mpFXY::GetNextXY.
Overridden in this implementation.
Implements MathPlot::mpFXY.
void mpFXYVector::SetData | ( | const std::vector< double > & | xs, |
const std::vector< double > & | ys | ||
) |
|
inline |
Set memory reserved for m_xs and m_ys Note : this does not modify the size of m_xs and m_ys, this is not a resize.
Call Clear() to resize to 0. if capacity is already superior at reserve, do nothing
|
protected |
Memory reserved for m_xs and m_ys.
Default 1000