v2.0.0
Loading...
Searching...
No Matches
fiff_evoked.h
Go to the documentation of this file.
1//=============================================================================================================
29
30#ifndef FIFF_EVOKED_H
31#define FIFF_EVOKED_H
32
33//=============================================================================================================
34// INCLUDES
35//=============================================================================================================
36
37#include "fiff_global.h"
38#include "fiff_info.h"
39#include "fiff_types.h"
40#include "fiff_file.h"
41
42//=============================================================================================================
43// EIGEN INCLUDES
44//=============================================================================================================
45
46#include <Eigen/Core>
47
48//=============================================================================================================
49// QT INCLUDES
50//=============================================================================================================
51
52#include <QString>
53#include <QVariant>
54#include <QPair>
55#include <QSharedPointer>
56#include <memory>
57
58//=============================================================================================================
59// DEFINE NAMESPACE MNELIB
60//=============================================================================================================
61
62namespace FIFFLIB
63{
64
65//=============================================================================================================
77{
78public:
79 using SPtr = QSharedPointer<FiffEvoked>;
80 using ConstSPtr = QSharedPointer<const FiffEvoked>;
81 using UPtr = std::unique_ptr<FiffEvoked>;
82 using ConstUPtr = std::unique_ptr<const FiffEvoked>;
83
84 //=========================================================================================================
88 FiffEvoked();
89
90 //=========================================================================================================
103 FiffEvoked(QIODevice& p_IODevice,
104 QVariant setno = 0,
105 QPair<float, float> t_baseline = defaultFloatPair,
106 bool proj = true,
107 fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
108
109 //=========================================================================================================
115 FiffEvoked(const FiffEvoked& p_FiffEvoked);
116
117 //=========================================================================================================
128 FiffEvoked& operator=(const FiffEvoked& other) = default;
129
130 //=========================================================================================================
134 ~FiffEvoked();
135
136 //=========================================================================================================
142 inline QStringList ch_names();
143
144 //=========================================================================================================
148 void clear();
149
150 //=========================================================================================================
157 inline QString aspectKindToString() const;
158
159 //=========================================================================================================
165 inline bool isEmpty() const;
166
167 //=========================================================================================================
179 FiffEvoked pick_channels(const QStringList& include = defaultQStringList,
180 const QStringList& exclude = defaultQStringList) const;
181
182 //=========================================================================================================
203 static bool read(QIODevice& p_IODevice,
204 FiffEvoked& p_FiffEvoked,
205 QVariant setno = 0, QPair<float, float> t_baseline = defaultFloatPair,
206 bool proj = true,
207 fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
208
209 //=========================================================================================================
216 void setInfo(const FiffInfo& p_info,
217 bool applyProj = true);
218
219 //=========================================================================================================
227 FiffEvoked& operator+=(const Eigen::MatrixXd& newData);
228
229 //=========================================================================================================
235 void applyBaselineCorrection(QPair<float, float>& p_baseline);
236
237public:
243 QString comment;
244 Eigen::RowVectorXf times;
245 Eigen::MatrixXd data;
246 Eigen::MatrixXd proj;
247 QPair<float, float> baseline;
248};
249
250//=============================================================================================================
251// INLINE DEFINITIONS
252//=============================================================================================================
253
254inline QStringList FiffEvoked::ch_names()
255{
256 return info.ch_names;
257}
258
259//=============================================================================================================
260
261inline QString FiffEvoked::aspectKindToString() const
262{
264 return QString("Average");
266 return QString("Standard_error");
267 else
268 return QString("Unknown");
269}
270
271//=============================================================================================================
272
273inline bool FiffEvoked::isEmpty() const
274{
275 return nave == -1;
276}
277
278} // NAMESPACE
279
280#ifndef metatype_fiffevoked
281#define metatype_fiffevoked
283#endif
284
285#ifndef metatype_fiffevokedsptr
286#define metatype_fiffevokedsptr
288#endif
289
290#endif // FIFF_EVOKED_H
Q_DECLARE_METATYPE(FIFFLIB::FiffEvoked)
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
FIFF tag-kind, block-kind and type-code numerical definitions, authoritative for FIFFLIB.
#define FIFFV_ASPECT_AVERAGE
Definition fiff_file.h:431
#define FIFFV_ASPECT_STD_ERR
Definition fiff_file.h:432
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
FIFF file I/O, in-memory data structures and high-level readers/writers.
qint32 fiff_int_t
Definition fiff_types.h:86
Single averaged evoked response: time axis, data, baseline, channel info and averaging metadata.
Definition fiff_evoked.h:77
QSharedPointer< FiffEvoked > SPtr
Definition fiff_evoked.h:79
Eigen::MatrixXd proj
Eigen::RowVectorXf times
Eigen::MatrixXd data
FiffEvoked pick_channels(const QStringList &include=defaultQStringList, const QStringList &exclude=defaultQStringList) const
bool isEmpty() const
QStringList ch_names()
QString aspectKindToString() const
FiffEvoked & operator=(const FiffEvoked &other)=default
fiff_int_t aspect_kind
QPair< float, float > baseline
void setInfo(const FiffInfo &p_info, bool applyProj=true)
QSharedPointer< const FiffEvoked > ConstSPtr
Definition fiff_evoked.h:80
std::unique_ptr< const FiffEvoked > ConstUPtr
Definition fiff_evoked.h:82
FiffEvoked & operator+=(const Eigen::MatrixXd &newData)
static bool read(QIODevice &p_IODevice, FiffEvoked &p_FiffEvoked, QVariant setno=0, QPair< float, float > t_baseline=defaultFloatPair, bool proj=true, fiff_int_t p_aspect_kind=FIFFV_ASPECT_AVERAGE)
std::unique_ptr< FiffEvoked > UPtr
Definition fiff_evoked.h:81
void applyBaselineCorrection(QPair< float, float > &p_baseline)
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
Definition fiff_info.h:90