MNE-CPP  beta 1.0
realtimesourceestimatewidget.cpp
Go to the documentation of this file.
1 //=============================================================================================================
36 //ToDo Paint to render area
37 
38 //*************************************************************************************************************
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "realtimesourceestimatewidget.h"
44 //#include "annotationwindow.h"
45 
47 
48 #include <disp3D/geometryview.h>
50 
51 
52 
55 
56 
57 #include <Eigen/Core>
58 
59 
60 //*************************************************************************************************************
61 //=============================================================================================================
62 // STL INCLUDES
63 //=============================================================================================================
64 
65 #include <math.h>
66 
67 
68 //*************************************************************************************************************
69 //=============================================================================================================
70 // QT INCLUDES
71 //=============================================================================================================
72 
73 #include <QLabel>
74 #include <QGridLayout>
75 #include <QSettings>
76 
77 #include <QDebug>
78 
79 
80 //*************************************************************************************************************
81 //=============================================================================================================
82 // USED NAMESPACES
83 //=============================================================================================================
84 
85 using namespace XDISPLIB;
86 using namespace DISP3DLIB;
87 using namespace MNELIB;
88 using namespace XMEASLIB;
89 
90 
91 using namespace INVERSELIB;
92 
93 
94 //*************************************************************************************************************
95 //=============================================================================================================
96 // DEFINE MEMBER METHODS
97 //=============================================================================================================
98 
99 RealTimeSourceEstimateWidget::RealTimeSourceEstimateWidget(QSharedPointer<RealTimeSourceEstimate> &pRTSE, QWidget* parent)
100 : NewMeasurementWidget(parent)
101 , m_pRTSE(pRTSE)
102 , m_bInitialized(false)
103 {
104  m_pClustStcModel = new ClustStcModel(this);
105 // m_pClustStcModel->init(t_annotationSet, t_surfSet);
106  m_pClustStcModel->setLoop(false);
107 
108  //
109  // STC view
110  //
111  QGridLayout *mainLayoutView = new QGridLayout;
112 
113  QLabel * pLabelNormView = new QLabel("Norm");
114  m_pSliderNormView = new QSlider(Qt::Vertical);
115  QObject::connect(m_pSliderNormView, &QSlider::valueChanged, m_pClustStcModel, &ClustStcModel::setNormalization);
116  m_pSliderNormView->setMinimum(1);
117  m_pSliderNormView->setMaximum(20000);
118  m_pSliderNormView->setValue(2000);
119 
120  QLabel* pLabelAverageView = new QLabel("Average");
121  m_pSliderAverageView = new QSlider(Qt::Horizontal);
122  QObject::connect(m_pSliderAverageView, &QSlider::valueChanged, m_pClustStcModel, &ClustStcModel::setAverage);
123  m_pSliderAverageView->setMinimum(1);
124  m_pSliderAverageView->setMaximum(500);
125  m_pSliderAverageView->setValue(100);
126 
127  m_pClustView = new ClustStcView(false, true, QGLView::RedCyanAnaglyph);//(false); (true, QGLView::StretchedLeftRight); (true, QGLView::RedCyanAnaglyph);
128  m_pClustView->setModel(m_pClustStcModel);
129 
130  if (m_pClustView->stereoType() != QGLView::RedCyanAnaglyph)
131  m_pClustView->camera()->setEyeSeparation(0.3f);
132 
133  QWidget *pWidgetContainer = QWidget::createWindowContainer(m_pClustView);
134 
135  mainLayoutView->addWidget(pWidgetContainer,0,0,2,2);
136  mainLayoutView->addWidget(pLabelNormView,0,3);
137  mainLayoutView->addWidget(m_pSliderNormView,1,3);
138  mainLayoutView->addWidget(pLabelAverageView,3,0);
139  mainLayoutView->addWidget(m_pSliderAverageView,3,1);
140 
141  this->setLayout(mainLayoutView);
142 
143  getData();
144 }
145 
146 
147 //*************************************************************************************************************
148 
150 {
151  //
152  // Store Settings
153  //
154  if(!m_pRTSE->getName().isEmpty())
155  {
156  QString t_sRTSEName = m_pRTSE->getName();
157 
158  QSettings settings;
159  settings.setValue(QString("RTSEW/%1/norm").arg(t_sRTSEName), m_pSliderNormView->value());
160  settings.setValue(QString("RTSEW/%1/average").arg(t_sRTSEName), m_pSliderAverageView->value());
161  }
162 }
163 
164 
165 //*************************************************************************************************************
166 
168 {
169  getData();
170 }
171 
172 
173 //*************************************************************************************************************
174 
176 {
177  if(m_bInitialized)
178  {
179  //
180  // Add Data
181  //
182  m_pClustStcModel->addData(*m_pRTSE->getValue());
183  }
184  else
185  {
186  if(m_pRTSE->getAnnotSet() && m_pRTSE->getSurfSet())
187  {
188  m_pRTSE->m_bStcSend = false;
189  init();
190  //
191  // Add Data
192  //
193  m_pClustStcModel->addData(*m_pRTSE->getValue());
194  }
195  }
196 }
197 
198 
199 //*************************************************************************************************************
200 
202 {
203  QString t_sRTSEName = m_pRTSE->getName();
204  QSettings settings;
205  m_pSliderNormView->setValue(settings.value(QString("RTSEW/%1/norm").arg(t_sRTSEName), 2000).toInt());
206  m_pSliderAverageView->setValue(settings.value(QString("RTSEW/%1/average").arg(t_sRTSEName), 100).toInt());
207 
208  m_pClustStcModel->init(*m_pRTSE->getAnnotSet(), *m_pRTSE->getSurfSet());
209  m_bInitialized = true;
210  m_pRTSE->m_bStcSend = true;
211 }
212 
213 
214 //*************************************************************************************************************
215 //=============================================================================================================
216 // STATIC DEFINITIONS
217 //=============================================================================================================
Table model which prepares source estimate information.
Contains the declaration of the RealTimeSourceEstimate class.
RealTimeSourceEstimateWidget(QSharedPointer< RealTimeSourceEstimate > &pRTSE, QWidget *parent=0)
Minimum norm class declaration.
virtual void update(XMEASLIB::NewMeasurement::SPtr pMeasurement)
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
MNEInverseOperator class declaration.
QSharedPointer< NewMeasurement > SPtr
Declaration of the GeometryView Class.
The MeasurementWidget class is the base class of all measurement widgets.