v2.0.0
Loading...
Searching...
No Matches
viewstate.h
Go to the documentation of this file.
1//=============================================================================================================
24
25#ifndef VIEWSTATE_H
26#define VIEWSTATE_H
27
28//=============================================================================================================
29// INCLUDES
30//=============================================================================================================
31
32#include "../disp3D_global.h"
33
34#include "rendertypes.h"
35
36#include <QString>
37#include <QMap>
38#include <QQuaternion>
39#include <QVector2D>
40#include <QVariant>
41#include <QColor>
42
43#include <algorithm>
44#include <memory>
45
46//=============================================================================================================
47// FORWARD DECLARATIONS
48//=============================================================================================================
49
50class QSettings;
51class BrainSurface;
52
53//=============================================================================================================
64{
65 bool lh = true;
66 bool rh = true;
67 bool bemHead = true;
68 bool bemOuterSkull = true;
69 bool bemInnerSkull = true;
70 bool sensMeg = false;
71 bool sensMegGrad = false;
72 bool sensMegMag = false;
73 bool sensMegHelmet = false;
74 bool sensEeg = false;
75 bool dig = false;
76 bool digCardinal = false;
77 bool digHpi = false;
78 bool digEeg = false;
79 bool digExtra = false;
80 bool megFieldMap = false;
81 bool eegFieldMap = false;
82 bool megFieldContours = false;
83 bool eegFieldContours = false;
84 bool dipoles = true;
85 bool sourceSpace = false;
86 bool network = false;
87 bool megFieldMapOnHead = false;
88 bool mriSlices = true;
89
90 //=========================================================================================================
97 bool isObjectVisible(const QString &object) const;
98
99 //=========================================================================================================
106 void setObjectVisible(const QString &object, bool visible);
107
108 //=========================================================================================================
115 void load(const QSettings &settings, const QString &prefix);
116
117 //=========================================================================================================
124 void save(QSettings &settings, const QString &prefix) const;
125};
126
127//=============================================================================================================
139{
140 // ── Per-view render configuration ──────────────────────────────────
141 QString surfaceType = "pial";
146
147 // ── Per-view camera state ─────────────────────────────────────────
148 float zoom = 0.0f;
149 QVector2D pan;
151 int preset = 1; // 0=Top,1=Perspective,...,6=Right
152 bool enabled = true;
153
154 // ── Per-viewport timeline state ───────────────────────────────────
156 double playbackSpeed = 1.0;
157 double stcStepAccum = 0.0;
158 bool isPlaying = false;
159
160 // ── FsSurface classification helpers ─────────────────────────────────
161
166 static bool isBrainSurfaceKey(const QString &key);
167
172 bool matchesSurfaceType(const QString &key) const;
173
178 bool shouldRenderSurface(const QString &key) const;
179
185 QMap<QString, std::shared_ptr<BrainSurface>> &surfaces) const;
186
187 // ── Serialisation ──────────────────────────────────────────────────
188
196 void load(const QSettings &settings, const QString &prefix,
197 const QQuaternion &fallbackRotation = QQuaternion());
198
205 void save(QSettings &settings, const QString &prefix) const;
206
207 // ── Factory ─────────────────────────────────────────────────────────
208
216 static SubView defaultForIndex(int index);
217};
218
219//=============================================================================================================
220// FREE FUNCTIONS — camera presets
221//=============================================================================================================
222
227
231DISP3DSHARED_EXPORT QString multiViewPresetName(int preset);
232
236DISP3DSHARED_EXPORT QQuaternion multiViewPresetOffset(int preset);
237
243
244//=============================================================================================================
245// FREE FUNCTIONS — enum ↔ string conversion
246//=============================================================================================================
247
255DISP3DSHARED_EXPORT int normalizedVisualizationTarget(int target, int maxIndex = 3);
256
259
262
265
268
269//=============================================================================================================
270// FREE FUNCTIONS — colormap
271//=============================================================================================================
272
283
284//=============================================================================================================
285// FREE FUNCTIONS — QSettings helpers
286//=============================================================================================================
287
291inline bool isTrue(const QVariant &value, bool fallback)
292{
293 return value.isValid() ? value.toBool() : fallback;
294}
295
296#endif // VIEWSTATE_H
Lightweight render-related enums (ShaderMode, VisualizationMode) shared across disp3D.
ShaderMode
Definition rendertypes.h:61
@ Standard
Definition rendertypes.h:62
VisualizationMode
Definition rendertypes.h:78
@ ModeSurface
Definition rendertypes.h:79
DISP3DSHARED_EXPORT ShaderMode shaderModeFromName(const QString &name)
DISP3DSHARED_EXPORT QQuaternion multiViewPresetOffset(int preset)
DISP3DSHARED_EXPORT QString visualizationModeName(VisualizationMode mode)
DISP3DSHARED_EXPORT QQuaternion perspectivePresetRotation()
DISP3DSHARED_EXPORT bool multiViewPresetIsPerspective(int preset)
DISP3DSHARED_EXPORT VisualizationMode visualizationModeFromName(const QString &name)
bool isTrue(const QVariant &value, bool fallback)
Definition viewstate.h:291
DISP3DSHARED_EXPORT int normalizedVisualizationTarget(int target, int maxIndex=3)
DISP3DSHARED_EXPORT QString multiViewPresetName(int preset)
DISP3DSHARED_EXPORT QRgb mneAnalyzeColor(double v)
DISP3DSHARED_EXPORT QString shaderModeName(ShaderMode mode)
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
Per-view toggle flags controlling which data layers (brain, sensors, sources, network) are visible.
Definition viewstate.h:64
void save(QSettings &settings, const QString &prefix) const
void load(const QSettings &settings, const QString &prefix)
Definition viewstate.cpp:89
void setObjectVisible(const QString &object, bool visible)
Definition viewstate.cpp:60
bool isObjectVisible(const QString &object) const
Definition viewstate.cpp:30
Viewport subdivision holding its own camera, projection, and scissor rectangle.
Definition viewstate.h:139
bool enabled
Definition viewstate.h:152
double stcStepAccum
Definition viewstate.h:157
void save(QSettings &settings, const QString &prefix) const
int currentTimePoint
Definition viewstate.h:155
double playbackSpeed
Definition viewstate.h:156
void applyOverlayToSurfaces(QMap< QString, std::shared_ptr< BrainSurface > > &surfaces) const
bool matchesSurfaceType(const QString &key) const
ViewVisibilityProfile visibility
Definition viewstate.h:145
static bool isBrainSurfaceKey(const QString &key)
ShaderMode bemShader
Definition viewstate.h:143
QVector2D pan
Definition viewstate.h:149
bool shouldRenderSurface(const QString &key) const
QQuaternion perspectiveRotation
Definition viewstate.h:150
bool isPlaying
Definition viewstate.h:158
QString surfaceType
Definition viewstate.h:141
VisualizationMode overlayMode
Definition viewstate.h:144
static SubView defaultForIndex(int index)
ShaderMode brainShader
Definition viewstate.h:142
int preset
Definition viewstate.h:151
float zoom
Definition viewstate.h:148
void load(const QSettings &settings, const QString &prefix, const QQuaternion &fallbackRotation=QQuaternion())
Renderable cortical surface mesh with per-vertex color, curvature data, and GPU buffer management.