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// FIFFLIB FORWARD DECLARATIONS
64//=============================================================================================================
65
66class FiffDigPoint;
67class FiffDirNode;
68
69//=============================================================================================================
77
79{
80
81public:
82 using SPtr = QSharedPointer<FiffDigPointSet>;
83 using ConstSPtr = QSharedPointer<const FiffDigPointSet>;
84 using UPtr = std::unique_ptr<FiffDigPointSet>;
85 using ConstUPtr = std::unique_ptr<const FiffDigPointSet>;
86
87 //=========================================================================================================
92
93 //=========================================================================================================
99 FiffDigPointSet(const FiffDigPointSet &p_FiffDigPointSet);
100
101 //=========================================================================================================
107 FiffDigPointSet(QList<FIFFLIB::FiffDigPoint> pointList);
108
109 //=========================================================================================================
115 FiffDigPointSet(QIODevice &p_IODevice);
116
117 //=========================================================================================================
122
123 //=========================================================================================================
132 static bool readFromStream(FiffStream::SPtr& p_Stream, FiffDigPointSet& p_Dig);
133
134 //=========================================================================================================
138 inline void clear();
139
140 //=========================================================================================================
146 inline bool isEmpty() const;
147
148 //=========================================================================================================
154 inline qint32 size() const;
155
156 //=========================================================================================================
162 void write(QIODevice &p_IODevice);
163
164 //=========================================================================================================
176 bool write(const QString& filePath, QString* errorMessage = nullptr);
177
178 //=========================================================================================================
184 void writeToStream(FiffStream* p_pStream);
185
186 //=========================================================================================================
194 const FiffDigPoint& operator[] (qint32 idx) const;
195
196 //=========================================================================================================
204 FiffDigPoint& operator[] (qint32 idx);
205
206 //=========================================================================================================
214 FiffDigPointSet pickTypes(QList<int> includeTypes) const;
215
216 //=========================================================================================================
224 FiffDigPointSet& operator<< (const FiffDigPoint& dig);
225
226 //=========================================================================================================
234 FiffDigPointSet& operator<< (const FiffDigPoint* dig);
235
236 //=========================================================================================================
243 void applyTransform(const FiffCoordTrans& coordTrans, bool bApplyInverse = false);
244
245 //=========================================================================================================
251 QList<FiffDigPoint> getList();
252
253protected:
254
255private:
256 QList<FiffDigPoint> m_qListDigPoint;
257};
258
259//=============================================================================================================
260// INLINE DEFINITIONS
261//=============================================================================================================
262
264{
265 m_qListDigPoint.clear();
266}
267
268//=============================================================================================================
269
270inline bool FiffDigPointSet::isEmpty() const
271{
272 return m_qListDigPoint.size() == 0;
273}
274
275//=============================================================================================================
276
277inline qint32 FiffDigPointSet::size() const
278{
279 return m_qListDigPoint.size();
280}
281} // namespace FIFFLIB
282
283#ifndef metatype_fiffdigpointset
284#define metatype_fiffdigpointset
286#endif
287
288#ifndef metatype_fiffdigpointset_sptr
289#define metatype_fiffdigpointset_sptr
291#endif
292
293#endif // FIFFLIB_FIFF_DIG_POINT_SET_H
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
FIFF binary tag-stream layer: wraps a QIODevice to read and write FIFF tags, directories,...
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
FiffDigPointSet pickTypes(QList< int > includeTypes) const
std::unique_ptr< const FiffDigPointSet > ConstUPtr
void applyTransform(const FiffCoordTrans &coordTrans, bool bApplyInverse=false)
QSharedPointer< FiffDigPointSet > SPtr
void write(QIODevice &p_IODevice)
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