MNE-CPP  0.1.9
A Framework for Electrophysiology
mne_proj_op.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef MNEPROJOP_H
38 #define MNEPROJOP_H
39 
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "../mne_global.h"
45 #include "mne_named_matrix.h"
46 
47 #include <fiff/fiff_types.h>
48 #include <fiff/fiff_stream.h>
49 #include <fiff/fiff_dir_node.h>
50 
51 //=============================================================================================================
52 // EIGEN INCLUDES
53 //=============================================================================================================
54 
55 #include <Eigen/Core>
56 
57 //=============================================================================================================
58 // QT INCLUDES
59 //=============================================================================================================
60 
61 #include <QSharedPointer>
62 #include <QList>
63 
64 //=============================================================================================================
65 // DEFINE NAMESPACE MNELIB
66 //=============================================================================================================
67 
68 namespace MNELIB
69 {
70 
71 //=============================================================================================================
72 // FORWARD DECLARATIONS
73 //=============================================================================================================
74 
75 class MneProjItem;
76 
77 //=============================================================================================================
84 {
85 public:
86  typedef QSharedPointer<MneProjOp> SPtr;
87  typedef QSharedPointer<const MneProjOp> ConstSPtr;
89  //=========================================================================================================
94  MneProjOp();
95 
96  //=========================================================================================================
101  ~MneProjOp();
102 
103  //=========================================================================================================
108  static void mne_free_proj_op_proj(MneProjOp* op);
109 
110  // mne_lin_proj.c
111  static MneProjOp* mne_proj_op_combine(MneProjOp* to, MneProjOp* from);
112 
113  // mne_lin_proj.c
114  static void mne_proj_op_add_item_act(MneProjOp* op, MneNamedMatrix* vecs, int kind, const QString& desc, int is_active);
115 
116  // mne_lin_proj.c
117  static void mne_proj_op_add_item(MneProjOp* op, MneNamedMatrix* vecs, int kind, const QString& desc);
118 
119  // mne_lin_proj.c
120  static MneProjOp* mne_dup_proj_op(MneProjOp* op);
121 
122  // mne_lin_proj.c
123  static MneProjOp* mne_proj_op_average_eeg_ref(const QList<FIFFLIB::FiffChInfo>& chs, int nch);
124 
125  static int mne_proj_op_affect(MneProjOp* op, const QStringList& list, int nlist);
126 
127  static int mne_proj_op_affect_chs(MneProjOp* op, const QList<FIFFLIB::FiffChInfo> &chs, int nch);
128 
129  static int mne_proj_op_proj_vector(MneProjOp* op, float *vec, int nvec, int do_complement);
130 
131  //============================= mne_lin_proj_io.c =============================
132 
133  static MneProjOp* mne_read_proj_op_from_node(//fiffFile in,
135  const FIFFLIB::FiffDirNode::SPtr& start);
136 
137  static MneProjOp* mne_read_proj_op(const QString& name);
138 
139  static void mne_proj_op_report_data(FILE *out,const char *tag, MneProjOp* op, int list_data, char **exclude, int nexclude);
140 
141  static void mne_proj_op_report(FILE *out,const char *tag, MneProjOp* op);
142 
143 public:
144  QList<MNELIB::MneProjItem*> items; /* The projection items */
145  int nitems; /* Number of items */
146  QStringList names; /* Names of the channels in the final projector */
147  int nch; /* Number of channels in the final projector */
148  int nvec; /* Number of vectors in the final projector */
149  float** proj_data; /* The orthogonalized projection vectors picked and orthogonalized from the original data */
150 
152 //typedef struct { /* Collection of projection items and the projector itself */
153 // QList<MNELIB::MneProjItem*> items; /* The projection items */
154 // int nitems; /* Number of items */
155 // char **names; /* Names of the channels in the final projector */
156 // int nch; /* Number of channels in the final projector */
157 // int nvec; /* Number of vectors in the final projector */
158 // float **proj_data; /* The orthogonalized projection vectors picked and orthogonalized from the original data */
159 //} *mneProjOp,mneProjOpRec;
160 };
161 
162 //=============================================================================================================
163 // INLINE DEFINITIONS
164 //=============================================================================================================
165 } // NAMESPACE MNELIB
166 
167 #endif // MNEPROJOP_H
FIFFLIB::FiffStream::SPtr
QSharedPointer< FiffStream > SPtr
Definition: fiff_stream.h:107
FIFFLIB::FiffDirNode::SPtr
QSharedPointer< FiffDirNode > SPtr
Definition: fiff_dir_node.h:76
MNESHARED_EXPORT
#define MNESHARED_EXPORT
Definition: mne_global.h:56
fiff_stream.h
FiffStream class declaration.
MNELIB::MneProjOp
One linear projection item.
Definition: mne_proj_op.h:83
fiff_dir_node.h
FiffDirNode class declaration, which provides fiff dir tree processing methods.
MNELIB::MneProjOp::ConstSPtr
QSharedPointer< const MneProjOp > ConstSPtr
Definition: mne_proj_op.h:87
MNELIB::MneNamedMatrix
Matrix specification with a channel list.
Definition: mne_named_matrix.h:84
mne_named_matrix.h
MNE Named Matrix (MneNamedMatrix) class declaration.
MNELIB::MneProjOp::SPtr
QSharedPointer< MneProjOp > SPtr
Definition: mne_proj_op.h:86
fiff_types.h
Definitions for describing the objects in a FIFF file.