v2.0.0
Loading...
Searching...
No Matches
averagescene.cpp
Go to the documentation of this file.
1//=============================================================================================================
35
36//=============================================================================================================
37// INCLUDES
38//=============================================================================================================
39
40#include "averagescene.h"
41
42#include "averagesceneitem.h"
43#include "selectionsceneitem.h"
44
45//=============================================================================================================
46// USED NAMESPACES
47//=============================================================================================================
48
49using namespace DISPLIB;
50
51//=============================================================================================================
52// QT INCLUDES
53//=============================================================================================================
54
55//=============================================================================================================
56// EIGEN INCLUDES
57//=============================================================================================================
58
59//=============================================================================================================
60// DEFINE MEMBER METHODS
61//=============================================================================================================
62
63AverageScene::AverageScene(QGraphicsView* view, QObject* parent)
64: LayoutScene(view, parent)
65, m_colGlobalItemSignalColor(QColor(0, 80, 180))
66{
67}
68
69//=============================================================================================================
70
71void AverageScene::setScaleMap(const QMap<qint32,float> &scaleMap)
72{
73 m_qMapChScaling = scaleMap;
74
75 QList<QGraphicsItem*> itemList = this->items();
76
77 QListIterator<QGraphicsItem*> i(itemList);
78 while (i.hasNext()) {
79 AverageSceneItem* AverageSceneItemTemp = static_cast<AverageSceneItem*>(i.next());
80 AverageSceneItemTemp->m_scaleMap = scaleMap;
81 }
82
83 this->update();
84}
85
86//=============================================================================================================
87
88void AverageScene::repaintItems(const QList<QGraphicsItem *> &selectedChannelItems)
89{
90 this->clear();
91
92 QListIterator<QGraphicsItem*> i(selectedChannelItems);
93
94 while (i.hasNext()) {
95 SelectionSceneItem* selectionSceneItemTemp = static_cast<SelectionSceneItem*>(i.next());
96 AverageSceneItem* averageSceneItemTemp = new AverageSceneItem(selectionSceneItemTemp->m_sChannelName,
97 selectionSceneItemTemp->m_iChannelNumber,
98 selectionSceneItemTemp->m_qpChannelPosition,
99 selectionSceneItemTemp->m_iChannelKind,
100 selectionSceneItemTemp->m_iChannelUnit,
101 m_colGlobalItemSignalColor);
102
103 connect(averageSceneItemTemp, &AverageSceneItem::sceneUpdateRequested,
105
106 averageSceneItemTemp->setPos(160 * selectionSceneItemTemp->m_qpChannelPosition.x(),
107 -160 * selectionSceneItemTemp->m_qpChannelPosition.y());
108
109 averageSceneItemTemp->m_scaleMap = m_qMapChScaling;
110 this->addItem(averageSceneItemTemp);
111 }
112}
113
114//=============================================================================================================
115
117{
118 this->clear();
119
120 for (int i = 0; i < selectedChannelItems.m_iChannelKind.size(); i++){
121 AverageSceneItem* averageSceneItemTemp = new AverageSceneItem(selectedChannelItems.m_sChannelName[i],
122 selectedChannelItems.m_iChannelNumber[i],
123 selectedChannelItems.m_qpChannelPosition[i],
124 selectedChannelItems.m_iChannelKind[i],
125 selectedChannelItems.m_iChannelUnit[i],
126 m_colGlobalItemSignalColor);
127
128 connect(averageSceneItemTemp, &AverageSceneItem::sceneUpdateRequested,
130
131 averageSceneItemTemp->setPos(160 * selectedChannelItems.m_qpChannelPosition[i].x(),
132 -160 * selectedChannelItems.m_qpChannelPosition[i].y());
133
134 averageSceneItemTemp->m_scaleMap = m_qMapChScaling;
135 this->addItem(averageSceneItemTemp);
136 }
137}
138
139//=============================================================================================================
140
141void AverageScene::setActivationPerAverage(const QSharedPointer<QMap<QString, bool> > qMapActivationPerAverage)
142{
143 QList<QGraphicsItem*> items = this->items();
144 QListIterator<QGraphicsItem*> i(items);
145 while (i.hasNext()) {
146 if(AverageSceneItem* averageSceneItemTemp = dynamic_cast<AverageSceneItem*>(i.next())) {
147 averageSceneItemTemp->m_qMapAverageActivation = *qMapActivationPerAverage;
148 }
149 }
150
151 updateScene();
152}
153
154//=============================================================================================================
155
156void AverageScene::setColorPerAverage(const QSharedPointer<QMap<QString, QColor> > qMapAverageColor)
157{
158 QList<QGraphicsItem*> items = this->items();
159 QListIterator<QGraphicsItem*> i(items);
160 while (i.hasNext()) {
161 if(AverageSceneItem* averageSceneItemTemp = dynamic_cast<AverageSceneItem*>(i.next())) {
162 averageSceneItemTemp->m_qMapAverageColor = *qMapAverageColor;
163 }
164 }
165
166 updateScene();
167}
168
169//=============================================================================================================
170
172{
173 return m_colGlobalItemSignalColor;
174}
175
176//=============================================================================================================
177
179{
180 this->update();
181}
182
183//=============================================================================================================
184
185void AverageScene::setSignalItemColor(const QColor &signalColor)
186{
187 QList<QGraphicsItem*> items = this->items();
188 QListIterator<QGraphicsItem*> i(items);
189
190 m_colGlobalItemSignalColor = signalColor;
191
192 while (i.hasNext()) {
193 if(AverageSceneItem* averageSceneItemTemp = dynamic_cast<AverageSceneItem*>(i.next())) {
194 averageSceneItemTemp->setDefaultColor(signalColor);
195 averageSceneItemTemp->update();
196 }
197 }
198
199 repaintItems(items);
200 this->update();
201}
Contains the declaration of the AverageScene class.
Contains the declaration of the AverageSceneItem class.
Contains the declaration of the SelectionSceneItem class.
2-D display widgets and visualisation helpers (charts, topography, colour maps).
void setScaleMap(const QMap< qint32, float > &scaleMap)
void setSignalItemColor(const QColor &signalColor)
void repaintSelectionItems(const DISPLIB::SelectionItem &selectedChannelItems)
AverageScene(QGraphicsView *view, QObject *parent=0)
void setColorPerAverage(const QSharedPointer< QMap< QString, QColor > > qMapAverageColor)
const QColor & getSignalColorForAllItems()
void repaintItems(const QList< QGraphicsItem * > &selectedChannelItems)
void setActivationPerAverage(const QSharedPointer< QMap< QString, bool > > qMapActivationPerAverage)
The AverageSceneItem class provides a new data structure for visualizing averages in a 2D layout.
QMap< qint32, float > m_scaleMap
LayoutScene(QGraphicsView *view, QObject *parent=0)
The SelectionSceneItem class provides a new data structure for visualizing channels in a 2D layout.
QList< QPointF > m_qpChannelPosition
QList< QString > m_sChannelName
Graphics item representing a selectable electrode or channel in a 2-D layout scene.