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//=============================================================================================================
75{
76public:
77 using SPtr = QSharedPointer<FiffEvoked>;
78 using ConstSPtr = QSharedPointer<const FiffEvoked>;
79 using UPtr = std::unique_ptr<FiffEvoked>;
80 using ConstUPtr = std::unique_ptr<const FiffEvoked>;
81
82 //=========================================================================================================
86 FiffEvoked();
87
88 //=========================================================================================================
101 FiffEvoked(QIODevice& p_IODevice,
102 QVariant setno = 0,
103 QPair<float,float> t_baseline = defaultFloatPair,
104 bool proj = true,
105 fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
106
107 //=========================================================================================================
113 FiffEvoked(const FiffEvoked& p_FiffEvoked);
114
115 //=========================================================================================================
119 ~FiffEvoked();
120
121 //=========================================================================================================
127 inline QStringList ch_names();
128
129 //=========================================================================================================
133 void clear();
134
135 //=========================================================================================================
142 inline QString aspectKindToString() const;
143
144 //=========================================================================================================
150 inline bool isEmpty() const;
151
152 //=========================================================================================================
164 FiffEvoked pick_channels(const QStringList& include = defaultQStringList,
165 const QStringList& exclude = defaultQStringList) const;
166
167 //=========================================================================================================
188 static bool read(QIODevice& p_IODevice,
189 FiffEvoked& p_FiffEvoked,
190 QVariant setno = 0, QPair<float,float> t_baseline = defaultFloatPair,
191 bool proj = true,
192 fiff_int_t p_aspect_kind = FIFFV_ASPECT_AVERAGE);
193
194 //=========================================================================================================
201 void setInfo(const FiffInfo &p_info,
202 bool proj = true);
203
204 //=========================================================================================================
212 FiffEvoked & operator+=(const Eigen::MatrixXd &newData);
213
214 //=========================================================================================================
220 void applyBaselineCorrection(QPair<float,float>& p_baseline);
221
222public:
224 fiff_int_t nave;
225 fiff_int_t aspect_kind;
226 fiff_int_t first;
227 fiff_int_t last;
228 QString comment;
229 Eigen::RowVectorXf times;
230 Eigen::MatrixXd data;
231 Eigen::MatrixXd proj;
232 QPair<float,float> baseline;
233};
234
235//=============================================================================================================
236// INLINE DEFINITIONS
237//=============================================================================================================
238
239inline QStringList FiffEvoked::ch_names()
240{
241 return info.ch_names;
242}
243
244//=============================================================================================================
245
246inline QString FiffEvoked::aspectKindToString() const
247{
249 return QString("Average");
251 return QString("Standard_error");
252 else
253 return QString("Unknown");
254}
255
256//=============================================================================================================
257
258inline bool FiffEvoked::isEmpty() const
259{
260 return nave == -1;
261}
262
263} // NAMESPACE
264
265#ifndef metatype_fiffevoked
266#define metatype_fiffevoked
268#endif
269
270#ifndef metatype_fiffevokedsptr
271#define metatype_fiffevokedsptr
273#endif
274
275#endif // FIFF_EVOKED_H
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
Q_DECLARE_METATYPE(FIFFLIB::FiffEvoked)
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.
Single averaged evoked response: time axis, data, baseline, channel info and averaging metadata.
Definition fiff_evoked.h:75
QSharedPointer< FiffEvoked > SPtr
Definition fiff_evoked.h:77
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()
void setInfo(const FiffInfo &p_info, bool proj=true)
QString aspectKindToString() const
fiff_int_t aspect_kind
QSharedPointer< const FiffEvoked > ConstSPtr
Definition fiff_evoked.h:78
std::unique_ptr< const FiffEvoked > ConstUPtr
Definition fiff_evoked.h:80
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:79
void applyBaselineCorrection(QPair< float, float > &p_baseline)
QPair< float, float > baseline
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
Definition fiff_info.h:88