KiCad PCB EDA Suite
|
#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 <vector>
#include <deque>
#include <stack>
#include <array>
#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 | 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 | mpScaleBase |
Plot layer implementing a x-scale ruler. More... | |
struct | mpScaleBase::TICK_LABEL |
class | mpScaleXBase |
class | mpScaleX |
class | mpScaleXLog |
class | mpScaleY |
Plot layer implementing a y-scale ruler. More... | |
class | mpWindow |
Canvas for plotting mpLayer implementations. More... | |
struct | mpWindow::MouseWheelActionSet |
Contains the set of modified mouse wheel actions that can be performed on the plot. More... | |
struct | mpWindow::DelegatingContructorTag |
class | mpFXYVector |
A class providing graphs functionality for a 2D plot (either continuous or a set of points), from vectors of data. More... | |
Macros | |
#define | WXDLLIMPEXP_MATHPLOT |
wxMathPlot is a framework for mathematical graph plotting in wxWindows. | |
#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. | |
#define | mpALIGN_CENTER 0x01 |
Aligns label to the center. | |
#define | mpALIGN_LEFT 0x02 |
Aligns label to the left. | |
#define | mpALIGN_TOP mpALIGN_RIGHT |
Aligns label to the top. | |
#define | mpALIGN_BOTTOM mpALIGN_LEFT |
Aligns label to the bottom. | |
#define | mpALIGN_BORDER_BOTTOM 0x04 |
Aligns X axis to bottom border. | |
#define | mpALIGN_BORDER_TOP 0x05 |
Aligns X axis to top border. | |
#define | mpALIGN_FAR_RIGHT 0x06 |
Aligns label to the right of mpALIGN_RIGHT. | |
#define | mpX_NORMAL 0x00 |
Set label for X axis in normal mode. | |
#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. | |
#define | mpX_HOURS 0x02 |
Set label for X axis in hours mode: the value is always represented as hours:minutes:seconds. | |
#define | mpX_DATE 0x03 |
Set label for X axis in date mode: the value is always represented as yyyy-mm-dd. | |
#define | mpX_DATETIME 0x04 |
Set label for X axis in datetime mode: the value is always represented as yyyy-mm-ddThh:mm:ss. | |
#define | mpALIGN_BORDER_LEFT mpALIGN_BORDER_BOTTOM |
Aligns Y axis to left border. | |
#define | mpALIGN_BORDER_RIGHT mpALIGN_BORDER_TOP |
Aligns Y axis to right border. | |
#define | mpALIGN_NE 0x00 |
Aligns label to north-east. | |
#define | mpALIGN_NW 0x01 |
Aligns label to north-west. | |
#define | mpALIGN_SW 0x02 |
Aligns label to south-west. | |
#define | mpALIGN_SE 0x03 |
Aligns label to south-east. | |
Typedefs | |
typedef enum __mp_Layer_Type | mpLayerType |
Enumerations | |
enum | { mpID_FIT = 2000 , mpID_ZOOM_UNDO , mpID_ZOOM_REDO , mpID_ZOOM_IN , mpID_ZOOM_OUT , mpID_CENTER } |
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 | mpPrintout |
Constants defining mouse modes for mpWindow | |
#define | mpMOUSEMODE_DRAG 0 |
Mouse panning drags the view. | |
#define | mpMOUSEMODE_ZOOMBOX 1 |
Mouse panning creates a zoom box. | |
typedef std::deque< mpLayer * > | wxLayerList |
Define the type for the list of layers inside mpWindow. | |
#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 441 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 425 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 878 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 449 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 451 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 447 of file mathplot.h.
#define mpX_NORMAL 0x00 |
Set label for X axis in normal mode.
Definition at line 443 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 445 of file mathplot.h.
#define WXDLLIMPEXP_DATA_MATHPLOT | ( | type | ) | type |
Definition at line 63 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.nosp@m.l@us.nosp@m.ers.s.nosp@m.ourc.nosp@m.eforg.nosp@m.e.ne.nosp@m.t.
From June 2007 the project is maintained by Davide Rondini cdron.nosp@m.77@u.nosp@m.sers..nosp@m.sour.nosp@m.cefor.nosp@m.ge.n.nosp@m.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 62 of file mathplot.h.
#define X_BORDER_SEPARATION 40 |
Definition at line 95 of file mathplot.h.
#define Y_BORDER_SEPARATION 60 |
Definition at line 96 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 883 of file mathplot.h.
anonymous enum |
Command IDs used by mpWindow.
Enumerator | |
---|---|
mpID_FIT | |
mpID_ZOOM_UNDO | |
mpID_ZOOM_REDO | |
mpID_ZOOM_IN | |
mpID_ZOOM_OUT | |
mpID_CENTER |
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 127 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpFX |
Definition at line 103 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpFXY |
Definition at line 105 of file mathplot.h.
Definition at line 106 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpFY |
Definition at line 104 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpLayer |
Definition at line 102 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpPrintout |
Definition at line 110 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpScaleX |
Definition at line 107 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpScaleY |
Definition at line 108 of file mathplot.h.
class WXDLLIMPEXP_MATHPLOT mpWindow |
Definition at line 109 of file mathplot.h.