Free Electron
Oscilloscope.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __imgui_Oscilloscope_h__
8 #define __imgui_Oscilloscope_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 class FE_DL_EXPORT Oscilloscope:
16  public Component,
17  public CastableAs<Oscilloscope>
18 {
19  public:
20  Oscilloscope(void);
21 virtual ~Oscilloscope(void);
22 
23  void bind(sp<DrawI> a_spDrawI);
24 
25  void clear(void);
26 
27  void setPane(I32 a_offsetX,I32 a_offsetY,I32 a_sizeX,I32 a_sizeY);
28  void setPage(I32 a_page) { m_historyPage=a_page; }
29 
30  void stepValue(void);
31  void stepValue(F64 a_value);
32  void stepValue(SpatialVector a_value);
33  void stepValue(Vector3d a_value);
34  void stepValue(SpatialEuler a_value);
35  void stepValue(Color a_value);
36  void stepValue(SpatialQuaternion a_value);
37  void stepValue(SpatialTransform a_value);
38 
39  private:
40 
41  void scopeValue(F64 a_value);
42  void scopeValue(SpatialVector a_value);
43  void scopeValue(Vector4d a_value);
44  void scopeValue(Color a_value);
45 
46  void visualizePlanes(void);
47 
48  void step(void);
49 
50  void setHistory(Vector4d a_value);
51 
52  void visualizePlane(Real a_offsetX,Real a_offsetY,
53  Real a_width,Real a_height,I32 a_channel0,I32 a_channel1);
54 
55  void scopeValue(Real a_offsetX,Real a_offsetY,
56  Real a_width,Real a_height,F64 a_value,I32 a_channel);
57 
58  //* color bars
59  void scopeValue(Real a_offsetX,Real a_offsetY,
60  Real a_width,Real a_height,Color a_value);
61 
62  sp<DrawI> m_spDrawI;
63  sp<DrawMode> m_spDrawText;
64 
65  I32 m_offsetX;
66  I32 m_offsetY;
67  I32 m_sizeX;
68  I32 m_sizeY;
69  I32 m_pageWidth;
70  I32 m_indicatorSpace;
71 
72  Vector4d m_historyScale;
73  I32 m_historyPage;
74  I32 m_historyIndex;
75  Array<Vector4d> m_history[4];
76  Vector4d m_lastValueMin[4];
77  Vector4d m_lastValueMax[4];
78  I32 m_warmup;
79  BWORD m_doClear;
80 };
81 
82 } /* namespace ext */
83 } /* namespace fe */
84 
85 #endif /* __imgui_Oscilloscope_h__ */
kernel
Definition: namespace.dox:3