v2.0.0
Loading...
Searching...
No Matches
fiff_info.h
Go to the documentation of this file.
1//=============================================================================================================
37
38#ifndef FIFF_INFO_H
39#define FIFF_INFO_H
40
41//=============================================================================================================
42// INCLUDES
43//=============================================================================================================
44
45#include "fiff_global.h"
46
47#include "fiff_info_base.h"
48
49#include "fiff_types.h"
50#include "fiff_id.h"
51#include "fiff_ch_info.h"
52#include "fiff_dig_point.h"
53#include "fiff_ctf_comp.h"
54#include "fiff_coord_trans.h"
55#include "fiff_proj.h"
56
57//=============================================================================================================
58// QT INCLUDES
59//=============================================================================================================
60
61#include <QList>
62#include <QStringList>
63#include <QSharedPointer>
64#include <memory>
65
66//=============================================================================================================
67// DEFINE NAMESPACE FIFFLIB
68//=============================================================================================================
69
70namespace FIFFLIB
71{
72
73//=============================================================================================================
74// FIFFLIB FORWARD DECLARATIONS
75//=============================================================================================================
76
77class FiffStream;
78
79//=============================================================================================================
86{
87public:
88 using SPtr = QSharedPointer<FiffInfo>;
89 using ConstSPtr = QSharedPointer<const FiffInfo>;
90 using UPtr = std::unique_ptr<FiffInfo>;
91 using ConstUPtr = std::unique_ptr<const FiffInfo>;
92
93 //=========================================================================================================
97 FiffInfo();
98
99 //=========================================================================================================
105 FiffInfo(const FiffInfo& p_FiffInfo);
106
107 //=========================================================================================================
111 ~FiffInfo();
112
113 //=========================================================================================================
117 void clear();
118
119 //=========================================================================================================
132 bool make_compensator(fiff_int_t from, fiff_int_t to, FiffCtfComp& ctf_comp, bool exclude_comp_chs = false) const;
133
134 //=========================================================================================================
142 qint32 get_current_comp();
143
144 //=========================================================================================================
154 inline qint32 make_projector(Eigen::MatrixXd& proj) const;
155
156 //=========================================================================================================
167 inline qint32 make_projector(Eigen::MatrixXd& proj, const QStringList& p_chNames) const;
168
169 //=========================================================================================================
179 FiffInfo pick_info(const Eigen::RowVectorXi &sel = defaultVectorXi) const;
180
181 //=========================================================================================================
187 inline void set_current_comp(fiff_int_t value);
188
189 //=========================================================================================================
203 static QList<FiffChInfo> set_current_comp(QList<FiffChInfo>& listFiffChInfo, fiff_int_t value);
204
205 //=========================================================================================================
222 static bool readMegEegChannels(const QString& name,
223 bool do_meg,
224 bool do_eeg,
225 const QStringList& bads,
226 QList<FiffChInfo>& chsp,
227 int& nmegp,
228 int& neegp);
229
230 //=========================================================================================================
236 void writeToStream(FiffStream* p_pStream) const;
237
238 //=========================================================================================================
242 void print() const;
243
244private:
245 //=========================================================================================================
256 bool make_compensator(fiff_int_t kind, Eigen::MatrixXd& this_comp) const;
257
258public: //Public because it's a mne struct
261 float sfreq;
262 float linefreq;
263 float highpass;
264 float lowpass;
266 QString proj_name;
268 QString experimenter;
269 QString description;
270 QString utc_offset;
273 QList<FiffDigPoint> dig;
275 QList<FiffProj> projs;
276 QList<FiffCtfComp> comps;
277 QString acq_pars;
278 QString acq_stim;
279};
280
281//=============================================================================================================
282// INLINE DEFINITIONS
283//=============================================================================================================
284
285inline qint32 FiffInfo::make_projector(Eigen::MatrixXd& proj) const
286{
287 return FiffProj::make_projector(this->projs,this->ch_names, proj, this->bads);
288}
289
290//=============================================================================================================
291
292inline qint32 FiffInfo::make_projector(Eigen::MatrixXd& proj, const QStringList& p_chNames) const
293{
294 return FiffProj::make_projector(this->projs, p_chNames, proj, this->bads);
295}
296
297//=============================================================================================================
298
300{
301 this->chs = set_current_comp(this->chs, value);
302}
303} // NAMESPACE
304
305#endif // FIFF_INFO_H
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:52
FiffInfoBase class declaration.
FiffCtfComp class declaration.
FiffChInfo class declaration.
FiffId class declaration.
FiffProj class declaration.
Old fiff_type declarations - replace them.
FiffCoordTrans class declaration.
FiffDigPoint class declaration.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
qint32 fiff_int_t
Definition fiff_types.h:89
Coordinate transformation description.
CTF software compensation data.
Universally unique identifier.
Definition fiff_id.h:68
FiffInfo pick_info(const Eigen::RowVectorXi &sel=defaultVectorXi) const
void set_current_comp(fiff_int_t value)
Definition fiff_info.h:299
void print() const
QSharedPointer< const FiffInfo > ConstSPtr
Definition fiff_info.h:89
static bool readMegEegChannels(const QString &name, bool do_meg, bool do_eeg, const QStringList &bads, QList< FiffChInfo > &chsp, int &nmegp, int &neegp)
QString description
Definition fiff_info.h:269
qint32 make_projector(Eigen::MatrixXd &proj) const
Definition fiff_info.h:285
FiffCoordTrans dev_ctf_t
Definition fiff_info.h:272
std::unique_ptr< FiffInfo > UPtr
Definition fiff_info.h:90
QSharedPointer< FiffInfo > SPtr
Definition fiff_info.h:88
std::unique_ptr< const FiffInfo > ConstUPtr
Definition fiff_info.h:91
fiff_int_t gantry_angle
Definition fiff_info.h:271
void writeToStream(FiffStream *p_pStream) const
FiffCoordTrans dig_trans
Definition fiff_info.h:274
QList< FiffCtfComp > comps
Definition fiff_info.h:276
qint32 get_current_comp()
QString xplotter_layout
Definition fiff_info.h:267
fiff_int_t meas_date[2]
Definition fiff_info.h:260
bool make_compensator(fiff_int_t from, fiff_int_t to, FiffCtfComp &ctf_comp, bool exclude_comp_chs=false) const
QList< FiffDigPoint > dig
Definition fiff_info.h:273
QString experimenter
Definition fiff_info.h:268
QList< FiffProj > projs
Definition fiff_info.h:275
QList< FiffChInfo > chs
static fiff_int_t make_projector(const QList< FiffProj > &projs, const QStringList &ch_names, Eigen::MatrixXd &proj, const QStringList &bads=defaultQStringList, Eigen::MatrixXd &U=defaultMatrixXd)
FIFF File I/O routines.