KiCad PCB EDA Suite
|
#include <vector>
#include <wx/defs.h>
#include <wx/menu.h>
#include <wx/scrolwin.h>
#include <wx/event.h>
#include <wx/dynarray.h>
#include <wx/pen.h>
#include <wx/dcmemory.h>
#include <wx/string.h>
#include <wx/print.h>
#include <wx/image.h>
#include <deque>
#include <algorithm>
Go to the source code of this file.
Classes | |
class | mpLayer |
class | mpInfoLayer |
Base class to create small rectangular info boxes mpInfoLayer is the base class to create a small rectangular info box in transparent overlay over plot layers. More... | |
class | mpInfoCoords |
Implements an overlay box which shows the mouse coordinates in plot units. More... | |
class | mpInfoLegend |
Implements the legend to be added to the plot This layer allows you to add a legend to describe the plots in the window. More... | |
class | mpFX |
Abstract base class providing plot and labeling functionality for functions F:X->Y. More... | |
class | mpFY |
Abstract base class providing plot and labeling functionality for functions F:Y->X. More... | |
class | mpFXY |
Abstract base class providing plot and labeling functionality for a locus plot F:N->X,Y. More... | |
class | mpProfile |
Abstract base class providing plot and labeling functionality for functions F:Y->X. More... | |
class | mpScaleBase |
Plot layer implementing a x-scale ruler. More... | |
struct | mpScaleBase::TickLabel |
class | mpScaleXBase |
class | mpScaleX |
class | mpScaleXLog |
class | mpScaleY |
Plot layer implementing a y-scale ruler. More... | |
class | mpWindow |
Canvas for plotting mpLayer implementations. More... | |
class | mpFXYVector |
A class providing graphs functionality for a 2D plot (either continuous or a set of points), from vectors of data. More... | |
class | mpText |
Plot layer implementing a text string. More... | |
class | mpPrintout |
Printout class used by mpWindow to draw in the objects to be printed. More... | |
class | mpMovableObject |
This virtual class represents objects that can be moved to an arbitrary 2D location+rotation. More... | |
class | mpCovarianceEllipse |
A 2D ellipse, described by a 2x2 covariance matrix. More... | |
class | mpPolygon |
An arbitrary polygon, descendant of mpMovableObject. More... | |
class | mpBitmapLayer |
This virtual class represents objects that can be moved to an arbitrary 2D location+rotation. More... | |
Macros | |
#define | WXDLLIMPEXP_MATHPLOT |
wxMathPlot is a framework for mathematical graph plotting in wxWindows. More... | |
#define | WXDLLIMPEXP_DATA_MATHPLOT(type) type |
#define | X_BORDER_SEPARATION 40 |
#define | Y_BORDER_SEPARATION 60 |
Label alignment constants | |
#define | mpALIGNMASK 0x03 |
#define | mpALIGN_RIGHT 0x00 |
Aligns label to the right. More... | |
#define | mpALIGN_CENTER 0x01 |
Aligns label to the center. More... | |
#define | mpALIGN_LEFT 0x02 |
Aligns label to the left. More... | |
#define | mpALIGN_TOP mpALIGN_RIGHT |
Aligns label to the top. More... | |
#define | mpALIGN_BOTTOM mpALIGN_LEFT |
Aligns label to the bottom. More... | |
#define | mpALIGN_BORDER_BOTTOM 0x04 |
Aligns X axis to bottom border. More... | |
#define | mpALIGN_BORDER_TOP 0x05 |
Aligns X axis to top border. More... | |
#define | mpALIGN_FAR_RIGHT 0x06 |
Aligns label to the right of mpALIGN_RIGHT. More... | |
#define | mpX_NORMAL 0x00 |
Set label for X axis in normal mode. More... | |
#define | mpX_TIME 0x01 |
Set label for X axis in time mode: the value is represented as minutes:seconds.milliseconds if time is less than 2 minutes, hours:minutes:seconds otherwise. More... | |
#define | mpX_HOURS 0x02 |
Set label for X axis in hours mode: the value is always represented as hours:minutes:seconds. More... | |
#define | mpX_DATE 0x03 |
Set label for X axis in date mode: the value is always represented as yyyy-mm-dd. More... | |
#define | mpX_DATETIME 0x04 |
Set label for X axis in datetime mode: the value is always represented as yyyy-mm-ddThh:mm:ss. More... | |
#define | mpALIGN_BORDER_LEFT mpALIGN_BORDER_BOTTOM |
Aligns Y axis to left border. More... | |
#define | mpALIGN_BORDER_RIGHT mpALIGN_BORDER_TOP |
Aligns Y axis to right border. More... | |
#define | mpALIGN_NE 0x00 |
Aligns label to north-east. More... | |
#define | mpALIGN_NW 0x01 |
Aligns label to north-west. More... | |
#define | mpALIGN_SW 0x02 |
Aligns label to south-west. More... | |
#define | mpALIGN_SE 0x03 |
Aligns label to south-east. More... | |
Typedefs | |
typedef enum __mp_Layer_Type | mpLayerType |
Enumerations | |
enum | { mpID_FIT = 2000 , mpID_ZOOM_IN , mpID_ZOOM_OUT , mpID_CENTER , mpID_LOCKASPECT } |
Command IDs used by mpWindow. More... | |
enum | __mp_Layer_Type { mpLAYER_UNDEF , mpLAYER_AXIS , mpLAYER_PLOT , mpLAYER_INFO , mpLAYER_BITMAP } |
Variables | |
class WXDLLIMPEXP_MATHPLOT | mpLayer |
class WXDLLIMPEXP_MATHPLOT | mpFX |
class WXDLLIMPEXP_MATHPLOT | mpFY |
class WXDLLIMPEXP_MATHPLOT | mpFXY |
class WXDLLIMPEXP_MATHPLOT | mpFXYVector |
class WXDLLIMPEXP_MATHPLOT | mpScaleX |
class WXDLLIMPEXP_MATHPLOT | mpScaleY |
class WXDLLIMPEXP_MATHPLOT | mpWindow |
class WXDLLIMPEXP_MATHPLOT | mpText |
class WXDLLIMPEXP_MATHPLOT | mpPrintout |
Constants defining mouse modes for mpWindow | |
#define | mpMOUSEMODE_DRAG 0 |
Mouse panning drags the view. More... | |
#define | mpMOUSEMODE_ZOOMBOX 1 |
Mouse panning creates a zoom box. More... | |
typedef std::deque< mpLayer * > | wxLayerList |
Define the type for the list of layers inside mpWindow. More... | |
#define mpALIGN_BORDER_BOTTOM 0x04 |
#define mpALIGN_BORDER_LEFT mpALIGN_BORDER_BOTTOM |
#define mpALIGN_BORDER_RIGHT mpALIGN_BORDER_TOP |
#define mpALIGN_BORDER_TOP 0x05 |
#define mpALIGN_BOTTOM mpALIGN_LEFT |
#define mpALIGN_CENTER 0x01 |
#define mpALIGN_FAR_RIGHT 0x06 |
Aligns label to the right of mpALIGN_RIGHT.
Definition at line 491 of file mathplot.h.
#define mpALIGN_LEFT 0x02 |
#define mpALIGN_NE 0x00 |
#define mpALIGN_NW 0x01 |
#define mpALIGN_RIGHT 0x00 |
#define mpALIGN_SE 0x03 |
#define mpALIGN_SW 0x02 |
#define mpALIGN_TOP mpALIGN_RIGHT |
#define mpALIGNMASK 0x03 |
Definition at line 475 of file mathplot.h.
#define mpMOUSEMODE_DRAG 0 |
#define mpMOUSEMODE_ZOOMBOX 1 |
Mouse panning creates a zoom box.
Mouse mode for mpWindow.
Definition at line 1019 of file mathplot.h.
#define mpX_DATE 0x03 |
Set label for X axis in date mode: the value is always represented as yyyy-mm-dd.
Definition at line 499 of file mathplot.h.
#define mpX_DATETIME 0x04 |
Set label for X axis in datetime mode: the value is always represented as yyyy-mm-ddThh:mm:ss.
Definition at line 501 of file mathplot.h.
#define mpX_HOURS 0x02 |
Set label for X axis in hours mode: the value is always represented as hours:minutes:seconds.
Definition at line 497 of file mathplot.h.
#define mpX_NORMAL 0x00 |
Set label for X axis in normal mode.
Definition at line 493 of file mathplot.h.
#define mpX_TIME 0x01 |
Set label for X axis in time mode: the value is represented as minutes:seconds.milliseconds if time is less than 2 minutes, hours:minutes:seconds otherwise.
Definition at line 495 of file mathplot.h.
#define WXDLLIMPEXP_DATA_MATHPLOT | ( | type | ) | type |
Definition at line 62 of file mathplot.h.
#define WXDLLIMPEXP_MATHPLOT |
wxMathPlot is a framework for mathematical graph plotting in wxWindows.
The framework is designed for convenience and ease of use.
The heart of wxMathPlot is mpWindow, which is a 2D canvas for plot layers. mpWindow can be embedded as subwindow in a wxPane, a wxFrame, or any other wxWindow. mpWindow provides a zoomable and moveable view of the layers. The current view can be controlled with the mouse, the scrollbars, and a context menu.
Plot layers are implementations of the abstract base class mpLayer. Those can be function plots, scale rulers, or any other vector data visualisation. wxMathPlot provides two mpLayer implementations for plotting horizontal and vertical rulers: mpScaleX and mpScaleY. For convenient function plotting a series of classes derived from mpLayer are provided, like mpFX, mpProfile, mpLegend and so on. These base classes already come with plot code, user's own functions can be implemented by overriding just one member for retrieving a function value.
mpWindow has built-in support for mouse-based pan and zoom through intuitive combinations of buttons and the mouse wheel. It also incorporates an optional double buffering mechanism to avoid flicker. Plots can be easily sent to printer evices or exported in bitmap formats like PNG, BMP or JPEG.
wxMathPlot sticks to wxWindow's coding conventions. All entities defined by wxMathPlot have the prefix mp.
wxMathPlot is published under the terms of the wxWindow license.
The original author is David Schalig mrhil[email protected][email protected][email protected]ers.s[email protected]ourc[email protected]eforg[email protected]e.ne[email protected]t.
From June 2007 the project is maintained by Davide Rondini cdron[email protected][email protected][email protected]sers.[email protected]sour[email protected]cefor[email protected]ge.n[email protected]et.
Authors can be contacted via the wxMathPlot's homepage at https://sourceforge.net/projects/wxmathplot
Contributors:
Jose Luis Blanco, Val Greene.
Definition at line 61 of file mathplot.h.
#define X_BORDER_SEPARATION 40 |
Definition at line 94 of file mathplot.h.
#define Y_BORDER_SEPARATION 60 |
Definition at line 95 of file mathplot.h.
typedef enum __mp_Layer_Type mpLayerType |
typedef std::deque<mpLayer*> wxLayerList |
Define the type for the list of layers inside mpWindow.
Definition at line 1024 of file mathplot.h.
anonymous enum |
Command IDs used by mpWindow.
Enumerator | |
---|---|
mpID_FIT | |
mpID_ZOOM_IN | |
mpID_ZOOM_OUT | |
mpID_CENTER | |
mpID_LOCKASPECT |
Definition at line 113 of file mathplot.h.
enum __mp_Layer_Type |
Enumerator | |
---|---|
mpLAYER_UNDEF | |
mpLAYER_AXIS | |
mpLAYER_PLOT | |
mpLAYER_INFO | |
mpLAYER_BITMAP |
Definition at line 126 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpFX |
Definition at line 102 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpFXY |
Definition at line 104 of file mathplot.h.
Definition at line 105 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpFY |
Definition at line 103 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpLayer |
Definition at line 101 of file mathplot.h.
Definition at line 110 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpScaleX |
Definition at line 106 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpScaleY |
Definition at line 107 of file mathplot.h.
Referenced by SIM_PLOT_PANEL::updateAxes().
class WXDLLIMPEXP_MATHPLOT mpText |
Definition at line 109 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpWindow |
Definition at line 108 of file mathplot.h.
Referenced by SIM_PLOT_PANEL::SIM_PLOT_PANEL().