|
KiCad PCB EDA Suite
|
The SIMULATOR_FRAME holds the main user-interface for running simulations. More...
#include <sim_plot_tab.h>
Public Member Functions | |
| CURSOR (TRACE *aTrace, SIM_PLOT_TAB *aPlotTab) | |
| void | Plot (wxDC &aDC, mpWindow &aWindow) override |
| Plot method. | |
| void | SetX (int aX) |
| void | Update () |
| virtual void | UpdateForNewData () |
| bool | Inside (const wxPoint &aPoint) const override |
| Checks whether a point is inside the info box rectangle. | |
| void | Move (wxPoint aDelta) override |
| Moves the layer rectangle of given pixel deltas. | |
| void | UpdateReference () override |
| Updates the rectangle reference point. | |
| bool | OnDoubleClick (const wxPoint &aPoint, mpWindow &aWindow) override |
| const wxRealPoint & | GetCoords () const |
| virtual void | SetCoordX (double aValue) |
| virtual bool | HasBBox () const override |
| mpInfoLayer has not bounding box. | |
| virtual bool | IsInfo () const override |
| Specifies that this is an Info box layer. | |
| wxPoint | GetPosition () const |
| Returns the position of the upper left corner of the box (in pixels) | |
| wxSize | GetSize () const |
| Returns the size of the box (in pixels) | |
| virtual double | GetMinX () const |
| Get inclusive left border of bounding box. | |
| virtual double | GetMaxX () const |
| Get inclusive right border of bounding box. | |
| virtual double | GetMinY () const |
| Get inclusive bottom border of bounding box. | |
| virtual double | GetMaxY () const |
| Get inclusive top border of bounding box. | |
| const wxString & | GetName () const |
| Get layer name. | |
| const wxString & | GetDisplayName () const |
| const wxFont & | GetFont () const |
| Get font set for this layer. | |
| const wxFont & | GetPlotFont () const |
| Get the font to draw this layer with, which is the default one when none was set. | |
| const wxPen & | GetPen () const |
| Get pen set for this layer. | |
| void | SetContinuity (bool continuity) |
| Set the 'continuity' property of the layer (true:draws a continuous line, false:draws separate points). | |
| bool | GetContinuity () const |
| Gets the 'continuity' property of the layer. | |
| void | ShowName (bool show) |
| Shows or hides the text label with the name of the layer (default is visible). | |
| virtual void | SetName (const wxString &name) |
| Set layer name. | |
| void | SetFont (const wxFont &font) |
| Set layer font. | |
| void | SetPen (const wxPen &pen) |
| Set layer pen. | |
| 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. | |
| bool | IsVisible () const |
| Checks whether the layer is visible or not. | |
| void | SetVisible (bool show) |
| Sets layer visibility. | |
| const wxBrush & | GetBrush () const |
| Get brush set for this layer. | |
| void | SetBrush (const wxBrush &brush) |
| Set layer brush. | |
Protected Member Functions | |
| wxString | getID () |
Protected Attributes | |
| TRACE * | m_trace |
| bool | m_updateRequired |
| bool | m_updateRef |
| wxRealPoint | m_coords |
| mpWindow * | m_window |
| int | m_sweepIndex |
| bool | m_snapToNearest |
| double | m_snapTargetY |
| 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 |
| mpLayerType | m_type |
| bool | m_visible |
Static Protected Attributes | |
| static constexpr int | DRAG_MARGIN = 10 |
Private Member Functions | |
| void | doSetCoordX (double aValue) |
The SIMULATOR_FRAME holds the main user-interface for running simulations.
It contains a workbook with multiple tabs, each tab holding a SIM_PLOT_TAB, a specific simulation command (.TRAN, .AC, etc.), and simulation settings (save all currents, etc.).
Each SIM_PLOT_TAB holds one or more SIM_VIEWs, stacked vertically. All the views of a tab share the same (synchronized) X axis, but each has its own independent Y axis scaling, so signals with very different magnitudes can be routed to separate views. Each TRACE belongs to exactly one SIM_VIEW (or none, if the signal isn't currently plotted). 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 68 of file sim_plot_tab.h.
|
inline |
Definition at line 71 of file sim_plot_tab.h.
References DRAG_MARGIN, m_coords, m_snapTargetY, m_snapToNearest, m_sweepIndex, m_trace, m_updateRef, m_updateRequired, m_window, and mpInfoLayer::mpInfoLayer().
Referenced by SMITH_CURSOR::SMITH_CURSOR().
|
private |
Definition at line 1032 of file sim_plot_tab.cpp.
References distance(), m_coords, m_snapTargetY, m_snapToNearest, m_sweepIndex, and m_trace.
Referenced by Plot(), and SetCoordX().
|
inlineinherited |
Get brush set for this layer.
Definition at line 325 of file mathplot.h.
References m_brush.
|
inlineinherited |
Gets the 'continuity' property of the layer.
Definition at line 290 of file mathplot.h.
References m_continuous.
|
inline |
Definition at line 108 of file sim_plot_tab.h.
References m_coords.
Referenced by SIMULATOR_FRAME_UI::onCursorsGridCellChanged(), and SIMULATOR_FRAME_UI::updatePlotCursors().
|
inlineinherited |
Definition at line 251 of file mathplot.h.
References m_displayName, and m_name.
Referenced by mpInfoLegend::Plot().
|
inlineinherited |
Get font set for this layer.
Invalid if none was set.
Definition at line 259 of file mathplot.h.
References m_font.
Referenced by BOOST_AUTO_TEST_CASE().
|
protected |
Definition at line 1164 of file sim_plot_tab.cpp.
References _, cursor, and m_trace.
Referenced by Plot(), and SMITH_CURSOR::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 313 of file mathplot.h.
References m_type.
Referenced by mpInfoLegend::Plot().
|
inlinevirtualinherited |
Get inclusive right border of bounding box.
Reimplemented in mpFXYVector.
Definition at line 191 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlinevirtualinherited |
Get inclusive top border of bounding box.
Reimplemented in mpFXYVector.
Definition at line 201 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlinevirtualinherited |
Get inclusive left border of bounding box.
Reimplemented in mpFXYVector.
Definition at line 186 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlinevirtualinherited |
Get inclusive bottom border of bounding box.
Reimplemented in mpFXYVector.
Definition at line 196 of file mathplot.h.
Referenced by mpFXY::UpdateScales().
|
inlineinherited |
Get layer name.
Definition at line 249 of file mathplot.h.
References m_name.
Referenced by SIMULATOR_FRAME_UI::ToggleSmithChart(), SIMULATOR_FRAME_UI::updatePlotCursors(), and SIM_PLOT_TAB::UpdateTraceStyle().
|
inlineinherited |
Get pen set for this layer.
Definition at line 280 of file mathplot.h.
References m_pen.
Referenced by CURSOR::Plot(), mpInfoLegend::Plot(), SMITH_CURSOR::Plot(), SIMULATOR_FRAME_UI::rebuildSignalsGrid(), and SIMULATOR_FRAME_UI::signalsGridCursorUpdate().
|
inlineinherited |
Get the font to draw this layer with, which is the default one when none was set.
The stock fonts are built on first use from the running toolkit, so this must not be called before there is one; layers resolve their font when they plot, not when they are constructed.
Definition at line 269 of file mathplot.h.
References m_font.
Referenced by BOOST_AUTO_TEST_CASE(), mpFX::Plot(), mpFXY::Plot(), mpFY::Plot(), mpInfoLegend::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), SMITH_CURSOR::Plot(), and SMITH_GRID::Plot().
|
inherited |
Returns the position of the upper left corner of the box (in pixels)
Definition at line 197 of file mathplot.cpp.
References m_dim.
Referenced by SIM_PLOT_TAB::AddView().
|
inherited |
Returns the size of the box (in pixels)
Definition at line 203 of file mathplot.cpp.
References m_dim.
|
inlineoverridevirtualinherited |
mpInfoLayer has not bounding box.
Reimplemented from mpLayer.
Definition at line 371 of file mathplot.h.
|
overridevirtual |
Checks whether a point is inside the info box rectangle.
| point | The point to be checked |
Reimplemented from mpInfoLayer.
Reimplemented in SMITH_CURSOR.
Definition at line 1298 of file sim_plot_tab.cpp.
References std::abs(), DRAG_MARGIN, m_coords, m_trace, and m_window.
Referenced by OnDoubleClick().
|
inlineoverridevirtualinherited |
Specifies that this is an Info box layer.
Reimplemented from mpLayer.
Definition at line 382 of file mathplot.h.
|
inlineinherited |
Checks whether the layer is visible or not.
Definition at line 317 of file mathplot.h.
References m_visible.
Referenced by mpWindow::IsLayerVisible(), and mpInfoLegend::Plot().
|
overridevirtual |
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.
Reimplemented in SMITH_CURSOR.
Definition at line 982 of file sim_plot_tab.cpp.
References mpInfoLayer::m_reference, m_snapTargetY, m_snapToNearest, m_trace, m_window, mpInfoLayer::Move(), and Update().
Referenced by SetX().
|
overridevirtual |
Reimplemented from mpInfoLayer.
Definition at line 1001 of file sim_plot_tab.cpp.
References Inside(), m_sweepIndex, m_trace, m_updateRef, m_window, and Update().
|
overridevirtual |
Plot method.
Can be overridden by derived classes.
| dc | the device content where to plot |
| w | the window to plot |
Reimplemented from mpInfoLayer.
Reimplemented in SMITH_CURSOR.
Definition at line 1176 of file sim_plot_tab.cpp.
References _, KIGFX::COLOR4D::Distance(), doSetCoordX(), getID(), mpWindow::GetMarginBottom(), mpWindow::GetMarginLeft(), mpWindow::GetMarginRight(), mpWindow::GetMarginTop(), mpLayer::GetPen(), mpWindow::GetScrX(), mpWindow::GetScrY(), KIGFX::COLOR4D::Invert(), mpLayer::m_continuous, m_coords, mpInfoLayer::m_dim, m_sweepIndex, m_trace, m_updateRef, m_updateRequired, mpLayer::m_visible, m_window, KIGFX::COLOR4D::Mix(), mpWindow::p2x(), KIGFX::COLOR4D::ToColour(), UpdateReference(), mpWindow::x2p(), and mpWindow::y2p().
|
inlineinherited |
Set layer brush.
| brush | brush, will be copied to internal class member |
Definition at line 329 of file mathplot.h.
References m_brush.
|
inlineinherited |
Set the 'continuity' property of the layer (true:draws a continuous line, false:draws separate points).
Definition at line 285 of file mathplot.h.
References m_continuous.
Referenced by TRACE::TRACE().
|
virtual |
Reimplemented in SMITH_CURSOR.
Definition at line 963 of file sim_plot_tab.cpp.
References delta, doSetCoordX(), m_coords, m_trace, m_updateRef, m_updateRequired, m_window, and mpInfoLayer::Move().
Referenced by SIMULATOR_FRAME_UI::onCursorsGridCellChanged(), and UpdateForNewData().
|
inlineinherited |
Set layer font.
| font | Font, will be copied to internal class member |
Definition at line 304 of file mathplot.h.
References m_font.
Referenced by BOOST_AUTO_TEST_CASE().
|
inlinevirtualinherited |
Set layer name.
| name | Name, will be copied to internal class member |
Reimplemented in TRACE.
Definition at line 299 of file mathplot.h.
Referenced by mpFX::mpFX(), mpFXY::mpFXY(), mpFY::mpFY(), mpScaleXBase::mpScaleXBase(), mpScaleY::mpScaleY(), and TRACE::SetName().
|
inlineinherited |
Set layer pen.
| pen | Pen, will be copied to internal class member |
Definition at line 309 of file mathplot.h.
References m_pen.
Referenced by mpLayer(), mpScaleXBase::mpScaleXBase(), mpScaleY::mpScaleY(), mpInfoLegend::Plot(), and SIM_PLOT_TAB::UpdateTraceStyle().
|
inlineinherited |
Sets layer visibility.
| show | visibility bool. |
Definition at line 321 of file mathplot.h.
References m_visible.
Referenced by SIM_PLOT_TAB::AddView().
|
inline |
Definition at line 86 of file sim_plot_tab.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 294 of file mathplot.h.
References m_showName.
Referenced by TRACE::TRACE().
|
inline |
Definition at line 93 of file sim_plot_tab.h.
References m_updateRequired.
Referenced by Move(), SMITH_CURSOR::Move(), and OnDoubleClick().
|
inlinevirtual |
Reimplemented in SMITH_CURSOR.
Definition at line 98 of file sim_plot_tab.h.
References m_coords, and SetCoordX().
|
overridevirtual |
Updates the rectangle reference point.
Used by internal methods of mpWindow to correctly move mpInfoLayers.
Reimplemented from mpInfoLayer.
Reimplemented in SMITH_CURSOR.
Definition at line 1313 of file sim_plot_tab.cpp.
References m_coords, mpInfoLayer::m_reference, m_trace, and m_window.
Referenced by Plot().
|
staticconstexprprotected |
Definition at line 131 of file sim_plot_tab.h.
Referenced by CURSOR(), Inside(), and SMITH_CURSOR::Inside().
|
protectedinherited |
Definition at line 410 of file mathplot.h.
Referenced by mpInfoLayer(), mpInfoLayer(), Plot(), and mpInfoLegend::Plot().
|
protectedinherited |
Definition at line 338 of file mathplot.h.
Referenced by GetContinuity(), mpLayer(), CURSOR::Plot(), mpFXY::Plot(), and SetContinuity().
|
protected |
Definition at line 125 of file sim_plot_tab.h.
Referenced by CURSOR(), doSetCoordX(), GetCoords(), Inside(), Plot(), SMITH_CURSOR::Plot(), SetCoordX(), SMITH_CURSOR::snapToIndex(), UpdateForNewData(), SMITH_CURSOR::UpdateForNewData(), and UpdateReference().
|
protectedinherited |
Definition at line 407 of file mathplot.h.
Referenced by GetPosition(), GetSize(), Inside(), Move(), mpInfoLayer(), mpInfoLayer(), CURSOR::Plot(), Plot(), mpInfoLegend::Plot(), SMITH_CURSOR::Plot(), and UpdateReference().
|
protectedinherited |
Definition at line 337 of file mathplot.h.
Referenced by GetDisplayName(), and TRACE::SetName().
|
protectedinherited |
Definition at line 333 of file mathplot.h.
Referenced by GetFont(), GetPlotFont(), and SetFont().
|
protectedinherited |
Definition at line 336 of file mathplot.h.
Referenced by GetDisplayName(), GetName(), mpFX::Plot(), mpFXY::Plot(), mpFY::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), and SetName().
|
protectedinherited |
Definition at line 334 of file mathplot.h.
Referenced by GetPen(), mpFX::Plot(), mpFXY::Plot(), mpFY::Plot(), mpInfoLayer::Plot(), mpInfoLegend::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), SMITH_GRID::Plot(), SMITH_TRACE::Plot(), and SetPen().
|
protectedinherited |
Definition at line 409 of file mathplot.h.
Referenced by CURSOR::Move(), Move(), mpInfoLayer(), mpInfoLayer(), CURSOR::SetX(), CURSOR::UpdateReference(), and UpdateReference().
|
protectedinherited |
Definition at line 339 of file mathplot.h.
Referenced by mpLayer(), mpFX::Plot(), mpFXY::Plot(), mpFY::Plot(), and ShowName().
|
protected |
Definition at line 129 of file sim_plot_tab.h.
Referenced by CURSOR(), doSetCoordX(), and Move().
|
protected |
Definition at line 128 of file sim_plot_tab.h.
Referenced by CURSOR(), doSetCoordX(), and Move().
|
protected |
Definition at line 127 of file sim_plot_tab.h.
Referenced by CURSOR(), doSetCoordX(), OnDoubleClick(), and Plot().
|
protected |
Definition at line 122 of file sim_plot_tab.h.
Referenced by CURSOR(), doSetCoordX(), getID(), Inside(), Move(), OnDoubleClick(), Plot(), SMITH_CURSOR::Plot(), SetCoordX(), SMITH_CURSOR::snapToFrequency(), SMITH_CURSOR::snapToIndex(), SMITH_CURSOR::UpdateForNewData(), and UpdateReference().
|
protectedinherited |
Definition at line 340 of file mathplot.h.
Referenced by GetLayerType(), mpFX::mpFX(), mpFXY::mpFXY(), mpFXYVector::mpFXYVector(), mpFY::mpFY(), mpInfoLayer::mpInfoLayer(), mpInfoLayer::mpInfoLayer(), mpLayer(), mpScaleXBase::mpScaleXBase(), mpScaleY::mpScaleY(), and SMITH_GRID::SMITH_GRID().
|
protected |
Definition at line 124 of file sim_plot_tab.h.
Referenced by CURSOR(), OnDoubleClick(), Plot(), SMITH_CURSOR::Plot(), SetCoordX(), SetX(), and SMITH_CURSOR::UpdateForNewData().
|
protected |
Definition at line 123 of file sim_plot_tab.h.
Referenced by CURSOR(), Plot(), SMITH_CURSOR::Plot(), SetCoordX(), Update(), and SMITH_CURSOR::UpdateForNewData().
|
protectedinherited |
Definition at line 341 of file mathplot.h.
Referenced by IsVisible(), mpLayer(), CURSOR::Plot(), mpFX::Plot(), mpFXY::Plot(), mpFY::Plot(), mpInfoLayer::Plot(), mpInfoLegend::Plot(), mpScaleXBase::Plot(), mpScaleY::Plot(), SMITH_CURSOR::Plot(), SMITH_GRID::Plot(), SMITH_TRACE::Plot(), and SetVisible().
|
protected |
Definition at line 126 of file sim_plot_tab.h.
Referenced by CURSOR(), Inside(), SMITH_CURSOR::Inside(), Move(), OnDoubleClick(), Plot(), SMITH_CURSOR::Plot(), SetCoordX(), SMITH_CURSOR::SetCoordX(), and UpdateReference().
|
protectedinherited |
Definition at line 411 of file mathplot.h.
Referenced by mpInfoLayer(), mpInfoLayer(), Plot(), and mpInfoLegend::Plot().
|
protectedinherited |
Definition at line 412 of file mathplot.h.
Referenced by mpInfoLayer(), mpInfoLayer(), Plot(), and mpInfoLegend::Plot().