KiCad PCB EDA Suite
|
The SIMULATOR_FRAME holds the main user-interface for running simulations. More...
#include <sim_plot_panel.h>
Public Member Functions | |
CURSOR (TRACE *aTrace, SIM_PLOT_PANEL *aPlotPanel) | |
void | Plot (wxDC &aDC, mpWindow &aWindow) override |
Plot method. More... | |
void | SetX (int aX) |
void | Update () |
bool | Inside (const wxPoint &aPoint) const override |
Checks whether a point is inside the info box rectangle. More... | |
void | Move (wxPoint aDelta) override |
Moves the layer rectangle of given pixel deltas. More... | |
void | UpdateReference () override |
Updates the rectangle reference point. More... | |
const wxRealPoint & | GetCoords () const |
void | SetCoordX (double aValue) |
virtual void | UpdateInfo (mpWindow &w, wxEvent &event) |
Updates the content of the info box. More... | |
virtual bool | HasBBox () const override |
mpInfoLayer has not bounding box. More... | |
virtual bool | IsInfo () const override |
Specifies that this is an Info box layer. More... | |
wxPoint | GetPosition () const |
Returns the position of the upper left corner of the box (in pixels) More... | |
wxSize | GetSize () const |
Returns the size of the box (in pixels) More... | |
const wxRect & | GetRectangle () const |
Returns the current rectangle coordinates. More... | |
virtual double | GetMinX () const |
Get inclusive left border of bounding box. More... | |
virtual double | GetMaxX () const |
Get inclusive right border of bounding box. More... | |
virtual double | GetMinY () const |
Get inclusive bottom border of bounding box. More... | |
virtual double | GetMaxY () const |
Get inclusive top border of bounding box. More... | |
const wxString & | GetName () const |
Get layer name. More... | |
const wxString & | GetDisplayName () const |
const wxFont & | GetFont () const |
Get font set for this layer. More... | |
const wxPen & | GetPen () const |
Get pen set for this layer. More... | |
void | SetContinuity (bool continuity) |
Set the 'continuity' property of the layer (true:draws a continuous line, false:draws separate points). More... | |
bool | GetContinuity () const |
Gets the 'continuity' property of the layer. More... | |
void | ShowName (bool show) |
Shows or hides the text label with the name of the layer (default is visible). More... | |
virtual void | SetName (const wxString &name) |
Set layer name. More... | |
void | SetFont (wxFont &font) |
Set layer font. More... | |
void | SetPen (wxPen pen) |
Set layer pen. More... | |
void | SetDrawOutsideMargins (bool drawModeOutside) |
Set Draw mode: inside or outside margins. More... | |
bool | GetDrawOutsideMargins () |
Get Draw mode: inside or outside margins. More... | |
wxBitmap | GetColourSquare (int side=16) const |
Get a small square bitmap filled with the colour of the pen used in the layer. More... | |
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... | |
bool | IsVisible () const |
Checks whether the layer is visible or not. More... | |
void | SetVisible (bool show) |
Sets layer visibility. More... | |
const wxBrush & | GetBrush () const |
Get brush set for this layer. More... | |
void | SetBrush (wxBrush brush) |
Set layer brush. More... | |
Protected Attributes | |
wxRect | m_dim |
wxPoint | m_reference |
wxBrush | m_brush |
int | m_winX |
int | m_winY |
wxFont | m_font |
wxPen | m_pen |
wxString | m_name |
wxString | m_displayName |
bool | m_continuous |
bool | m_showName |
bool | m_drawOutsideMargins |
mpLayerType | m_type |
bool | m_visible |
Private Member Functions | |
void | doSetCoordX (double aValue) |
wxString | getID () |
Private Attributes | |
TRACE * | m_trace |
bool | m_updateRequired |
bool | m_updateRef |
wxRealPoint | m_coords |
mpWindow * | m_window |
Static Private Attributes | |
static constexpr int | DRAG_MARGIN = 10 |
The SIMULATOR_FRAME holds the main user-interface for running simulations.
It contains a workbook with multiple tabs, each tab holding a SIM_PLOT_PANEL, a specific simulation command (.TRAN, .AC, etc.), and simulation settings (save all currents, etc.).
Each plot can have multiple TRACEs. While internally each TRACE can have multiple cursors, the GUI supports only two cursors (and a differential cursor) for each plot.
TRACEs are identified by a signal (V(OUT), I(R2), etc.) and a type (SPT_VOLTAGE, SPT_AC_PHASE, etc.).
The simulator outputs simple signals in a vector of the same name. Complex signals (such as V(OUT) / V(IN)) are stored in vectors of the format "user%d". < Cursor attached to a trace to follow its values:
Definition at line 63 of file sim_plot_panel.h.
|
inline |
Definition at line 66 of file sim_plot_panel.h.
References mpLayer::SetDrawOutsideMargins().
|
private |
Definition at line 225 of file sim_plot_panel.cpp.
References TRACE::GetDataX(), TRACE::GetDataY(), m_coords, and m_trace.
Referenced by Plot(), and SetCoordX().
|
inlineinherited |
|
inherited |
Get a small square bitmap filled with the colour of the pen used in the layer.
Useful to create legends or similar reference to the layers.
side | side length in pixels |
Definition at line 76 of file mathplot.cpp.
References mpLayer::m_pen, and square().
|
inlineinherited |
Gets the 'continuity' property of the layer.
Definition at line 267 of file mathplot.h.
|
inline |
Definition at line 101 of file sim_plot_panel.h.
References m_coords.
Referenced by SIMULATOR_FRAME::onCursorsGridCellChanged(), and SIMULATOR_FRAME::updateCursors().
|
inlineinherited |
Definition at line 244 of file mathplot.h.
Referenced by mpInfoLegend::Plot().
|
inlineinherited |
Get Draw mode: inside or outside margins.
Definition at line 294 of file mathplot.h.
|
inlineinherited |
|
private |
Definition at line 264 of file sim_plot_panel.cpp.
References _, cursor, TRACE::GetCursors(), and m_trace.
Referenced by Plot().
|
inlineinherited |
Get layer type: a Layer can be of different types: plot lines, axis, info boxes, etc, this method returns the right value.
Definition at line 303 of file mathplot.h.
Referenced by mpInfoLegend::Plot().
|
inlinevirtualinherited |
Get inclusive right border of bounding box.
Reimplemented in mpFXYVector, mpMovableObject, and mpBitmapLayer.
Definition at line 184 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlinevirtualinherited |
Get inclusive top border of bounding box.
Reimplemented in mpFXYVector, mpMovableObject, and mpBitmapLayer.
Definition at line 194 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlinevirtualinherited |
Get inclusive left border of bounding box.
Reimplemented in mpFXYVector, mpMovableObject, and mpBitmapLayer.
Definition at line 179 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlinevirtualinherited |
Get inclusive bottom border of bounding box.
Reimplemented in mpFXYVector, mpMovableObject, and mpBitmapLayer.
Definition at line 189 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlineinherited |
Get layer name.
Definition at line 242 of file mathplot.h.
Referenced by SIM_PLOT_PANEL::GetLabelX(), SIM_PLOT_PANEL::GetLabelY1(), SIM_PLOT_PANEL::GetLabelY2(), SIM_PLOT_PANEL::GetLabelY3(), mpText::Plot(), and SIMULATOR_FRAME::updateCursors().
|
inlineinherited |
Get pen set for this layer.
Definition at line 257 of file mathplot.h.
Referenced by Plot(), mpInfoLegend::Plot(), and SIMULATOR_FRAME::rebuildSignalsGrid().
|
inherited |
Returns the position of the upper left corner of the box (in pixels)
Definition at line 190 of file mathplot.cpp.
References mpInfoLayer::m_dim.
Referenced by SIM_PLOT_PANEL::GetLegendPosition().
|
inlineinherited |
Returns the current rectangle coordinates.
Definition at line 403 of file mathplot.h.
|
inherited |
Returns the size of the box (in pixels)
Definition at line 196 of file mathplot.cpp.
References mpInfoLayer::m_dim.
|
inlineoverridevirtualinherited |
mpInfoLayer has not bounding box.
Reimplemented from mpLayer.
Definition at line 368 of file mathplot.h.
|
overridevirtual |
Checks whether a point is inside the info box rectangle.
point | The point to be checked |
Reimplemented from mpInfoLayer.
Definition at line 357 of file sim_plot_panel.cpp.
References std::abs(), DRAG_MARGIN, m_coords, m_trace, m_window, mpWindow::x2p(), mpFXY::x2s(), mpWindow::y2p(), and mpFXY::y2s().
|
inlineoverridevirtualinherited |
Specifies that this is an Info box layer.
Reimplemented from mpLayer.
Definition at line 379 of file mathplot.h.
|
inlineinherited |
Checks whether the layer is visible or not.
Definition at line 307 of file mathplot.h.
Referenced by mpWindow::IsLayerVisible(), SIM_PLOT_PANEL::IsLegendShown(), and mpInfoLegend::Plot().
|
inlineoverridevirtual |
Moves the layer rectangle of given pixel deltas.
delta | The wxPoint container for delta coordinates along x and y. Units are in pixels. |
Reimplemented from mpInfoLayer.
Definition at line 93 of file sim_plot_panel.h.
References mpInfoLayer::Move(), and Update().
Referenced by SetX().
|
overridevirtual |
Plot method.
Can be overridden by derived classes.
dc | the device content where to plot |
w | the window to plot |
Reimplemented from mpInfoLayer.
Definition at line 276 of file sim_plot_panel.cpp.
References doSetCoordX(), TRACE::GetDataX(), getID(), mpWindow::GetMarginBottom(), mpWindow::GetMarginLeft(), mpWindow::GetMarginRight(), mpWindow::GetMarginTop(), mpLayer::GetPen(), mpWindow::GetScrX(), mpWindow::GetScrY(), TRACE::GetTraceColour(), mpLayer::m_continuous, m_coords, mpInfoLayer::m_dim, mpLayer::m_drawOutsideMargins, m_trace, m_updateRef, m_updateRequired, mpLayer::m_visible, m_window, KIGFX::COLOR4D::Mix(), mpWindow::p2x(), mpFXY::s2x(), KIGFX::COLOR4D::ToColour(), UpdateReference(), mpWindow::x2p(), mpFXY::x2s(), mpWindow::y2p(), and mpFXY::y2s().
|
inlineinherited |
Set layer brush.
brush | brush, will be copied to internal class member |
Definition at line 319 of file mathplot.h.
|
inlineinherited |
Set the 'continuity' property of the layer (true:draws a continuous line, false:draws separate points).
Definition at line 262 of file mathplot.h.
Referenced by TRACE::TRACE().
void CURSOR::SetCoordX | ( | double | aValue | ) |
Definition at line 206 of file sim_plot_panel.cpp.
References delta, doSetCoordX(), m_coords, m_trace, m_updateRef, m_updateRequired, m_window, mpInfoLayer::Move(), mpWindow::x2p(), mpFXY::x2s(), mpWindow::y2p(), and mpFXY::y2s().
Referenced by SIMULATOR_FRAME::onCursorsGridCellChanged().
|
inlineinherited |
Set Draw mode: inside or outside margins.
Default is outside, which allows the layer to draw up to the mpWindow border.
drawModeOutside | The draw mode to be set |
Definition at line 290 of file mathplot.h.
Referenced by CURSOR(), and TRACE::TRACE().
|
inlineinherited |
Set layer font.
font | Font, will be copied to internal class member |
Definition at line 281 of file mathplot.h.
|
inlinevirtualinherited |
Set layer name.
name | Name, will be copied to internal class member |
Reimplemented in TRACE.
Definition at line 276 of file mathplot.h.
References name.
Referenced by SIM_PLOT_PANEL::prepareDCAxes(), TRACE::SetName(), and SIM_PLOT_PANEL::updateAxes().
|
inlineinherited |
Set layer pen.
pen | Pen, will be copied to internal class member |
Definition at line 286 of file mathplot.h.
Referenced by SIM_PLOT_PANEL::UpdateTraceStyle().
|
inlineinherited |
Sets layer visibility.
show | visibility bool. |
Definition at line 311 of file mathplot.h.
Referenced by mpWindow::SetLayerVisible(), SIM_PLOT_PANEL::ShowLegend(), and SIM_PLOT_PANEL::SIM_PLOT_PANEL().
|
inline |
Definition at line 79 of file sim_plot_panel.h.
References mpInfoLayer::m_reference, m_updateRef, and Move().
|
inlineinherited |
Shows or hides the text label with the name of the layer (default is visible).
Definition at line 271 of file mathplot.h.
Referenced by TRACE::TRACE().
|
inline |
|
virtualinherited |
Updates the content of the info box.
Should be overridden by derived classes. Update may behave in different ways according to the type of event which called it.
w | parent mpWindow from which to obtain information |
event | The event which called the update. |
Reimplemented in mpInfoCoords, and mpInfoLegend.
Definition at line 124 of file mathplot.cpp.
|
overridevirtual |
Updates the rectangle reference point.
Used by internal methods of mpWindow to correctly move mpInfoLayers.
Reimplemented from mpInfoLayer.
Definition at line 369 of file sim_plot_panel.cpp.
References m_coords, mpInfoLayer::m_reference, m_trace, m_window, mpWindow::x2p(), mpFXY::x2s(), mpWindow::y2p(), and mpFXY::y2s().
Referenced by Plot().
|
staticconstexprprivate |
Definition at line 120 of file sim_plot_panel.h.
Referenced by Inside().
|
protectedinherited |
Definition at line 408 of file mathplot.h.
Referenced by mpInfoLayer::mpInfoLayer(), mpInfoLayer::Plot(), mpInfoCoords::Plot(), and mpInfoLegend::Plot().
|
protectedinherited |
Definition at line 328 of file mathplot.h.
Referenced by Plot(), mpFXY::Plot(), and mpMovableObject::Plot().
|
private |
Definition at line 117 of file sim_plot_panel.h.
Referenced by doSetCoordX(), GetCoords(), Inside(), Plot(), SetCoordX(), and UpdateReference().
|
protectedinherited |
Definition at line 406 of file mathplot.h.
Referenced by mpInfoLayer::GetPosition(), mpInfoLayer::GetSize(), mpInfoLayer::Inside(), mpInfoLayer::Move(), Plot(), mpInfoLayer::Plot(), mpInfoCoords::Plot(), mpInfoLegend::Plot(), and mpInfoLayer::UpdateReference().
|
protectedinherited |
Definition at line 327 of file mathplot.h.
Referenced by TRACE::SetName().
|
protectedinherited |
Definition at line 330 of file mathplot.h.
Referenced by mpScaleXBase::getVisibleDataRange(), mpScaleY::getVisibleDataRange(), Plot(), mpFX::Plot(), mpFY::Plot(), mpFXY::Plot(), mpProfile::Plot(), mpScaleXBase::Plot(), and mpScaleY::Plot().
|
protectedinherited |
Definition at line 323 of file mathplot.h.
Referenced by mpInfoCoords::Plot(), mpInfoLegend::Plot(), mpFX::Plot(), mpFY::Plot(), mpFXY::Plot(), mpProfile::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), mpText::Plot(), mpMovableObject::Plot(), and mpBitmapLayer::Plot().
|
protectedinherited |
Definition at line 326 of file mathplot.h.
Referenced by mpFX::Plot(), mpFY::Plot(), mpFXY::Plot(), mpProfile::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), mpMovableObject::Plot(), and mpBitmapLayer::Plot().
|
protectedinherited |
Definition at line 324 of file mathplot.h.
Referenced by mpLayer::GetColourSquare(), mpInfoLayer::Plot(), mpInfoCoords::Plot(), mpInfoLegend::Plot(), mpFX::Plot(), mpFY::Plot(), mpFXY::Plot(), mpProfile::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), mpText::Plot(), and mpMovableObject::Plot().
|
protectedinherited |
Definition at line 407 of file mathplot.h.
Referenced by mpInfoLayer::Move(), mpInfoLayer::mpInfoLayer(), SetX(), mpInfoLayer::UpdateReference(), and UpdateReference().
|
protectedinherited |
Definition at line 329 of file mathplot.h.
Referenced by mpFX::Plot(), mpFY::Plot(), mpFXY::Plot(), mpMovableObject::Plot(), and mpBitmapLayer::Plot().
|
private |
Definition at line 114 of file sim_plot_panel.h.
Referenced by doSetCoordX(), getID(), Inside(), Plot(), SetCoordX(), and UpdateReference().
|
protectedinherited |
Definition at line 331 of file mathplot.h.
Referenced by mpInfoLayer::mpInfoLayer().
|
private |
Definition at line 116 of file sim_plot_panel.h.
Referenced by Plot(), SetCoordX(), and SetX().
|
private |
Definition at line 115 of file sim_plot_panel.h.
Referenced by Plot(), SetCoordX(), and Update().
|
protectedinherited |
Definition at line 332 of file mathplot.h.
Referenced by Plot(), mpInfoLayer::Plot(), mpInfoCoords::Plot(), mpInfoLegend::Plot(), mpFX::Plot(), mpFY::Plot(), mpFXY::Plot(), mpProfile::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), mpText::Plot(), mpMovableObject::Plot(), and mpBitmapLayer::Plot().
|
private |
Definition at line 118 of file sim_plot_panel.h.
Referenced by Inside(), Plot(), SetCoordX(), and UpdateReference().
|
protectedinherited |
Definition at line 409 of file mathplot.h.
Referenced by mpInfoLayer::mpInfoLayer(), mpInfoLayer::Plot(), mpInfoCoords::Plot(), and mpInfoLegend::Plot().
|
protectedinherited |
Definition at line 409 of file mathplot.h.
Referenced by mpInfoLayer::mpInfoLayer(), mpInfoLayer::Plot(), mpInfoCoords::Plot(), and mpInfoLegend::Plot().