MNE-CPP  0.1.9
A Framework for Electrophysiology
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 
65 namespace FIFFLIB
66 {
67 
68 //=============================================================================================================
75 {
76 
77 public:
78  typedef QSharedPointer<FiffInfoBase> SPtr;
79  typedef QSharedPointer<const FiffInfoBase> ConstSPtr;
81  //=========================================================================================================
85  FiffInfoBase();
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 
218 public:
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 
233 inline bool FiffInfoBase::isEmpty() const
234 {
235  return this->nchan <= 0;
236 }
237 
238 //=============================================================================================================
239 
240 inline 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
Old fiff_type declarations - replace them.
light measurement info
FiffCoordTrans class declaration.
FiffId class declaration.
QList< FiffChInfo > chs
Coordinate transformation description.
QSharedPointer< FiffInfoBase > SPtr
FiffCoordTrans ctf_head_t
Universially unique identifier.
Definition: fiff_id.h:68
FiffCoordTrans dev_head_t
FiffCtfComp class declaration.
FiffChInfo class declaration.
#define FIFFSHARED_EXPORT
Definition: fiff_global.h:56
FiffDigPoint class declaration.
FiffProj class declaration.
QSharedPointer< const FiffInfoBase > ConstSPtr
Fiff library export/import macros.