v2.0.0
Loading...
Searching...
No Matches
fiff_raw_data.h
Go to the documentation of this file.
1//=============================================================================================================
36
37#ifndef FIFF_RAW_DATA_H
38#define FIFF_RAW_DATA_H
39
40//=============================================================================================================
41// INCLUDES
42//=============================================================================================================
43
44#include "fiff_global.h"
45#include "fiff_info.h"
46#include "fiff_raw_dir.h"
47#include "fiff_stream.h"
48
49//=============================================================================================================
50// EIGEN INCLUDES
51//=============================================================================================================
52
53#include <Eigen/Core>
54#include <Eigen/SparseCore>
55
56//=============================================================================================================
57// QT INCLUDES
58//=============================================================================================================
59
60#include <QList>
61#include <QSharedPointer>
62#include <QString>
63#include <memory>
64
65//=============================================================================================================
66// DEFINE NAMESPACE FIFFLIB
67//=============================================================================================================
68
69namespace FIFFLIB
70{
71
72class FiffRawData;
73
74//=============================================================================================================
81{
82public:
83 using SPtr = QSharedPointer<FiffRawData>;
84 using ConstSPtr = QSharedPointer<const FiffRawData>;
85 using UPtr = std::unique_ptr<FiffRawData>;
86 using ConstUPtr = std::unique_ptr<const FiffRawData>;
87
88 //=========================================================================================================
93
94 //=========================================================================================================
100 FiffRawData(const FiffRawData &p_FiffRawData);
101
102 //=========================================================================================================
108 FiffRawData(QIODevice &p_IODevice);
109
110 //=========================================================================================================
117 FiffRawData(QIODevice &p_IODevice, bool b_littleEndian);
118
119 //=========================================================================================================
123 ~FiffRawData();
124
125 //=========================================================================================================
129 void clear();
130
131 //=========================================================================================================
137 inline bool isEmpty() const
138 {
139 return first_samp == -1 && info.isEmpty();
140 }
141
142 //=========================================================================================================
154 bool read_raw_segment(Eigen::MatrixXd& data,
155 Eigen::MatrixXd& times,
156 fiff_int_t from = -1,
157 fiff_int_t to = -1,
158 const Eigen::RowVectorXi& sel = defaultRowVectorXi,
159 bool do_debug = false) const;
160
161 //=========================================================================================================
174 bool read_raw_segment(Eigen::MatrixXd& data,
175 Eigen::MatrixXd& times,
176 Eigen::SparseMatrix<double>& multSegment,
177 fiff_int_t from = -1,
178 fiff_int_t to = -1,
179 const Eigen::RowVectorXi& sel = defaultRowVectorXi,
180 bool do_debug = false) const;
181
182 //=========================================================================================================
194 bool read_raw_segment_times(Eigen::MatrixXd& data,
195 Eigen::MatrixXd& times,
196 float from,
197 float to,
198 const Eigen::RowVectorXi& sel = defaultRowVectorXi) const;
199
200 //=========================================================================================================
213 bool save(QIODevice &p_IODevice,
214 const Eigen::RowVectorXi &picks = Eigen::RowVectorXi(),
215 int decim = 1,
216 int from = -1,
217 int to = -1) const;
218
219public:
224 Eigen::RowVectorXd cals;
225 QList<FiffRawDir> rawdir;
226 Eigen::MatrixXd proj;
228
229};
230} // NAMESPACE
231
232#endif // FIFF_RAW_DATA_H
FiffInfo class declaration.
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:52
FiffStream class declaration.
FiffRawDir class declaration.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
qint32 fiff_int_t
Definition fiff_types.h:89
CTF software compensation data.
FIFF measurement file information.
Definition fiff_info.h:86
FIFF raw measurement data.
Eigen::RowVectorXd cals
std::unique_ptr< const FiffRawData > ConstUPtr
bool read_raw_segment(Eigen::MatrixXd &data, Eigen::MatrixXd &times, fiff_int_t from=-1, fiff_int_t to=-1, const Eigen::RowVectorXi &sel=defaultRowVectorXi, bool do_debug=false) const
FiffStream::SPtr file
bool save(QIODevice &p_IODevice, const Eigen::RowVectorXi &picks=Eigen::RowVectorXi(), int decim=1, int from=-1, int to=-1) const
Eigen::MatrixXd proj
QSharedPointer< FiffRawData > SPtr
std::unique_ptr< FiffRawData > UPtr
bool read_raw_segment_times(Eigen::MatrixXd &data, Eigen::MatrixXd &times, float from, float to, const Eigen::RowVectorXi &sel=defaultRowVectorXi) const
QList< FiffRawDir > rawdir
bool read_raw_segment(Eigen::MatrixXd &data, Eigen::MatrixXd &times, Eigen::SparseMatrix< double > &multSegment, fiff_int_t from=-1, fiff_int_t to=-1, const Eigen::RowVectorXi &sel=defaultRowVectorXi, bool do_debug=false) const
QSharedPointer< const FiffRawData > ConstSPtr
QSharedPointer< FiffStream > SPtr