v2.0.0
Loading...
Searching...
No Matches
fiff_dig_point_set.h
Go to the documentation of this file.
1//=============================================================================================================
26
27#ifndef FIFFLIB_FIFF_DIG_POINT_SET_H
28#define FIFFLIB_FIFF_DIG_POINT_SET_H
29
30//=============================================================================================================
31// INCLUDES
32//=============================================================================================================
33
34#include "fiff_global.h"
35
36//=============================================================================================================
37// QT INCLUDES
38//=============================================================================================================
39
40#include <QSharedPointer>
41#include <QIODevice>
42#include <QList>
43
44#include "fiff_stream.h"
45#include "fiff_dig_point.h"
46#include <memory>
47
48//=============================================================================================================
49// EIGEN INCLUDES
50//=============================================================================================================
51
52//=============================================================================================================
53// FORWARD DECLARATIONS
54//=============================================================================================================
55
56//=============================================================================================================
57// DEFINE NAMESPACE FIFFLIB
58//=============================================================================================================
59
60namespace FIFFLIB
61{
62
63//=============================================================================================================
64// FIFFLIB FORWARD DECLARATIONS
65//=============================================================================================================
66
67class FiffDigPoint;
68class FiffDirNode;
69
70//=============================================================================================================
80
82{
83public:
84 using SPtr = QSharedPointer<FiffDigPointSet>;
85 using ConstSPtr = QSharedPointer<const FiffDigPointSet>;
86 using UPtr = std::unique_ptr<FiffDigPointSet>;
87 using ConstUPtr = std::unique_ptr<const FiffDigPointSet>;
88
89 //=========================================================================================================
94
95 //=========================================================================================================
101 FiffDigPointSet(const FiffDigPointSet& p_FiffDigPointSet);
102
103 //=========================================================================================================
114 FiffDigPointSet& operator=(const FiffDigPointSet& other) = default;
115
116 //=========================================================================================================
122 FiffDigPointSet(QList<FIFFLIB::FiffDigPoint> pointList);
123
124 //=========================================================================================================
130 FiffDigPointSet(QIODevice& p_IODevice);
131
132 //=========================================================================================================
137
138 //=========================================================================================================
147 static bool readFromStream(FiffStream::SPtr& p_Stream, FiffDigPointSet& p_Dig);
148
149 //=========================================================================================================
153 inline void clear();
154
155 //=========================================================================================================
161 inline bool isEmpty() const;
162
163 //=========================================================================================================
169 inline qint32 size() const;
170
171 //=========================================================================================================
179 bool write(QIODevice& p_IODevice);
180
181 //=========================================================================================================
193 bool write(const QString& filePath, QString* errorMessage = nullptr);
194
195 //=========================================================================================================
201 void writeToStream(FiffStream* p_pStream);
202
203 //=========================================================================================================
211 const FiffDigPoint& operator[](qint32 idx) const;
212
213 //=========================================================================================================
221 FiffDigPoint& operator[](qint32 idx);
222
223 //=========================================================================================================
231 FiffDigPointSet pickTypes(QList<int> includeTypes) const;
232
233 //=========================================================================================================
242
243 //=========================================================================================================
252
253 //=========================================================================================================
260 void applyTransform(const FiffCoordTrans& coordTrans, bool bApplyInverse = false);
261
262 //=========================================================================================================
268 QList<FiffDigPoint> getList();
269
270protected:
271private:
272 QList<FiffDigPoint> m_qListDigPoint;
273};
274
275//=============================================================================================================
276// INLINE DEFINITIONS
277//=============================================================================================================
278
280{
281 m_qListDigPoint.clear();
282}
283
284//=============================================================================================================
285
286inline bool FiffDigPointSet::isEmpty() const
287{
288 return m_qListDigPoint.size() == 0;
289}
290
291//=============================================================================================================
292
293inline qint32 FiffDigPointSet::size() const
294{
295 return m_qListDigPoint.size();
296}
297} // namespace FIFFLIB
298
299#ifndef metatype_fiffdigpointset
300#define metatype_fiffdigpointset
302#endif
303
304#ifndef metatype_fiffdigpointset_sptr
305#define metatype_fiffdigpointset_sptr
307#endif
308
309#endif // FIFFLIB_FIFF_DIG_POINT_SET_H
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
Q_DECLARE_METATYPE(FIFFLIB::FiffDigPointSet)
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
Single digitization point (FIFF_DIG_POINT) with kind (cardinal/HPI/EEG/extra), identifier and 3D coor...
FIFF file I/O, in-memory data structures and high-level readers/writers.
Labelled 4x4 FIFF affine: source frame, destination frame, rotation, translation and cached inverse.
One digitizer point: kind (cardinal/HPI/EEG/extra), ident, 3D position in FIFFV_COORD_HEAD.
Collection of FiffDigPoint records as parsed from a FIFFB_ISOTRAK block.
std::unique_ptr< FiffDigPointSet > UPtr
bool write(QIODevice &p_IODevice)
const FiffDigPoint & operator[](qint32 idx) const
FiffDigPointSet & operator<<(const FiffDigPoint &dig)
FiffDigPointSet pickTypes(QList< int > includeTypes) const
std::unique_ptr< const FiffDigPointSet > ConstUPtr
void applyTransform(const FiffCoordTrans &coordTrans, bool bApplyInverse=false)
FiffDigPointSet & operator=(const FiffDigPointSet &other)=default
QSharedPointer< FiffDigPointSet > SPtr
void writeToStream(FiffStream *p_pStream)
static bool readFromStream(FiffStream::SPtr &p_Stream, FiffDigPointSet &p_Dig)
QSharedPointer< const FiffDigPointSet > ConstSPtr
QList< FiffDigPoint > getList()
Recursive FIFF block-tree node: block kind, block ID, directly contained directory entries and child ...
FIFF tag-stream reader/writer: wraps a QIODevice and exposes typed read_* / write_* methods for every...
QSharedPointer< FiffStream > SPtr