MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
fiff_info_base.h
Go to the documentation of this file.
1//=============================================================================================================
37#ifndef FIFF_INFO_BASE_H
38#define FIFF_INFO_BASE_H
39
40//=============================================================================================================
41// INCLUDES
42//=============================================================================================================
43
44#include "fiff_global.h"
45#include "fiff_types.h"
46#include "fiff_id.h"
47#include "fiff_ch_info.h"
48#include "fiff_dig_point.h"
49#include "fiff_ctf_comp.h"
50#include "fiff_coord_trans.h"
51#include "fiff_proj.h"
52
53//=============================================================================================================
54// QT INCLUDES
55//=============================================================================================================
56
57#include <QList>
58#include <QStringList>
59#include <QSharedPointer>
60
61//=============================================================================================================
62// DEFINE NAMESPACE FIFFLIB
63//=============================================================================================================
64
65namespace FIFFLIB
66{
67
68//=============================================================================================================
75{
76
77public:
78 typedef QSharedPointer<FiffInfoBase> SPtr;
79 typedef QSharedPointer<const FiffInfoBase> ConstSPtr;
81 //=========================================================================================================
86
87 //=========================================================================================================
93 FiffInfoBase(const FiffInfoBase& p_FiffInfoBase);
94
95 //=========================================================================================================
99 virtual ~FiffInfoBase();
100
101 //=========================================================================================================
105 void clear();
106
107 //=========================================================================================================
115 QString channel_type(qint32 idx) const;
116
117 //=========================================================================================================
123 inline bool isEmpty() const;
124
125 //=========================================================================================================
139 static Eigen::RowVectorXi pick_channels(const QStringList& ch_names,
140 const QStringList& include = defaultQStringList,
141 const QStringList& exclude = defaultQStringList);
142
143 //=========================================================================================================
155 FiffInfoBase pick_info(const Eigen::RowVectorXi* sel = Q_NULLPTR) const;
156
157 //=========================================================================================================
173 Eigen::RowVectorXi pick_types(const QString meg,
174 bool eeg = false,
175 bool stim = false,
176 const QStringList& include = defaultQStringList,
177 const QStringList& exclude = defaultQStringList) const;
178
179 //=========================================================================================================
196 Eigen::RowVectorXi pick_types(bool meg,
197 bool eeg = false,
198 bool stim = false,
199 const QStringList& include = defaultQStringList,
200 const QStringList& exclude = defaultQStringList) const;
201
209 friend bool operator== (const FiffInfoBase &a, const FiffInfoBase &b);
210
216 QStringList get_channel_types();
217
218public:
219 QString filename;
220 QStringList bads;
222 fiff_int_t nchan;
223 QList<FiffChInfo> chs;
224 QStringList ch_names;
227};
228
229//=============================================================================================================
230// INLINE DEFINITIONS
231//=============================================================================================================
232
233inline bool FiffInfoBase::isEmpty() const
234{
235 return this->nchan <= 0;
236}
237
238//=============================================================================================================
239
240inline bool operator== (const FiffInfoBase &a, const FiffInfoBase &b)
241{
242 return (a.filename == b.filename &&
243 a.bads == b.bads &&
244 //a.meas_id == b.meas_id &&
245 a.nchan == b.nchan &&
246 a.chs == b.chs &&
247 a.ch_names == b.ch_names &&
248 a.dev_head_t == b.dev_head_t &&
249 a.ctf_head_t == b.ctf_head_t);
250}
251} // NAMESPACE
252
253#endif // FIFF_INFO_BASE_H
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:56
FiffCtfComp class declaration.
FiffChInfo class declaration.
FiffId class declaration.
FiffProj class declaration.
Definitions for describing the objects in a FIFF file.
FiffCoordTrans class declaration.
FiffDigPoint class declaration.
Coordinate transformation description.
Universially unique identifier.
Definition fiff_id.h:68
light measurement info
QSharedPointer< const FiffInfoBase > ConstSPtr
QList< FiffChInfo > chs
FiffCoordTrans ctf_head_t
QSharedPointer< FiffInfoBase > SPtr
FiffCoordTrans dev_head_t