MNE-CPP  0.1.9
A Framework for Electrophysiology
annotation.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef ANNOTATION_H
38 #define ANNOTATION_H
39 
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "fs_global.h"
45 #include "colortable.h"
46 
47 //=============================================================================================================
48 // QT INCLUDES
49 //=============================================================================================================
50 
51 #include <QString>
52 #include <QSharedPointer>
53 
54 //=============================================================================================================
55 // EIGEN INCLUDES
56 //=============================================================================================================
57 
58 #include <Eigen/Core>
59 
60 //=============================================================================================================
61 // DEFINE NAMESPACE FSLIB
62 //=============================================================================================================
63 
64 namespace FSLIB
65 {
66 
67 //=============================================================================================================
68 // FORWARD DECLARATIONS
69 //=============================================================================================================
70 
71 class Label;
72 class Surface;
73 
74 //=============================================================================================================
81 {
82 
83 public:
84  typedef QSharedPointer<Annotation> SPtr;
85  typedef QSharedPointer<const Annotation> ConstSPtr;
87  //=========================================================================================================
91  Annotation();
92 
93  //=========================================================================================================
99  explicit Annotation(const QString& p_sFileName);
100 
101  //=========================================================================================================
110  explicit Annotation(const QString &subject_id, qint32 hemi, const QString &surf, const QString &subjects_dir);
111 
112  //=========================================================================================================
122  explicit Annotation(const QString &path, qint32 hemi, const QString &surf);
123 
124  //=========================================================================================================
128  ~Annotation();
129 
130  //=========================================================================================================
134  void clear();
135 
136  //=========================================================================================================
142  inline bool isEmpty() const;
143 
144  //=========================================================================================================
150  inline qint32 hemi() const;
151 
152  //=========================================================================================================
158  inline Eigen::VectorXi& getVertices();
159 
160  //=========================================================================================================
166  inline const Eigen::VectorXi getVertices() const;
167 
168  //=========================================================================================================
174  inline Eigen::VectorXi& getLabelIds();
175 
176  //=========================================================================================================
182  inline const Eigen::VectorXi getLabelIds() const;
183 
184  //=========================================================================================================
190  inline Colortable& getColortable();
191 
192  //=========================================================================================================
198  inline const Colortable getColortable() const;
199 
200  //=========================================================================================================
212  static bool read(const QString &subject_id, qint32 hemi, const QString &atlas, const QString &subjects_dir, Annotation &p_Annotation);
213 
214  //=========================================================================================================
225  static bool read(const QString &path, qint32 hemi, const QString &atlas, Annotation &p_Annotation);
226 
227  //=========================================================================================================
236  static bool read(const QString &p_sFileName, Annotation &p_Annotation);
237 
238  //=========================================================================================================
251  bool toLabels(const Surface &p_surf,
252  QList<Label> &p_qListLabels,
253  QList<Eigen::RowVector4i> &p_qListLabelRGBAs,
254  const QStringList& lLabelPicks = QStringList()) const;
255 
256  //=========================================================================================================
262  inline QString filePath() const;
263 
264  //=========================================================================================================
270  inline QString fileName() const;
271 
272 private:
273  QString m_sFileName;
274  QString m_sFilePath;
276  qint32 m_iHemi;
277  Eigen::VectorXi m_Vertices;
278  Eigen::VectorXi m_LabelIds;
280  Colortable m_Colortable;
281 };
282 
283 //=============================================================================================================
284 // INLINE DEFINITIONS
285 //=============================================================================================================
286 
287 inline qint32 Annotation::hemi() const
288 {
289  return m_iHemi;
290 }
291 
292 //=============================================================================================================
293 
294 inline bool Annotation::isEmpty() const
295 {
296  return m_iHemi == -1;
297 }
298 
299 //=============================================================================================================
300 
301 inline Eigen::VectorXi& Annotation::getVertices()
302 {
303  return m_Vertices;
304 }
305 
306 //=============================================================================================================
307 
308 inline const Eigen::VectorXi Annotation::getVertices() const
309 {
310  return m_Vertices;
311 }
312 
313 //=============================================================================================================
314 
315 inline Eigen::VectorXi& Annotation::getLabelIds()
316 {
317  return m_LabelIds;
318 }
319 
320 //=============================================================================================================
321 
322 inline const Eigen::VectorXi Annotation::getLabelIds() const
323 {
324  return m_LabelIds;
325 }
326 
327 //=============================================================================================================
328 
330 {
331  return m_Colortable;
332 }
333 
334 //=============================================================================================================
335 
336 inline const Colortable Annotation::getColortable() const
337 {
338  return m_Colortable;
339 }
340 
341 //=============================================================================================================
342 
343 inline QString Annotation::filePath() const
344 {
345  return m_sFilePath;
346 }
347 
348 //=============================================================================================================
349 
350 inline QString Annotation::fileName() const
351 {
352  return m_sFileName;
353 }
354 } // NAMESPACE
355 
356 #endif // ANNOTATION_H
FSLIB::Annotation::SPtr
QSharedPointer< Annotation > SPtr
Definition: annotation.h:84
FSLIB::Annotation::getColortable
Colortable & getColortable()
Definition: annotation.h:329
fs_global.h
Fs library export/import macros.
FSLIB::Annotation::getVertices
Eigen::VectorXi & getVertices()
Definition: annotation.h:301
FSLIB::Annotation::getLabelIds
Eigen::VectorXi & getLabelIds()
Definition: annotation.h:315
FSLIB::Annotation::filePath
QString filePath() const
Definition: annotation.h:343
FSLIB::Annotation::hemi
qint32 hemi() const
Definition: annotation.h:287
FSSHARED_EXPORT
#define FSSHARED_EXPORT
Definition: fs_global.h:56
FSLIB::Colortable
Vertices label based lookup table.
Definition: colortable.h:67
FSLIB::Annotation::isEmpty
bool isEmpty() const
Definition: annotation.h:294
FSLIB::Annotation
Free surfer annotation.
Definition: annotation.h:80
FSLIB::Annotation::ConstSPtr
QSharedPointer< const Annotation > ConstSPtr
Definition: annotation.h:85
FSLIB::Surface
FreeSurfer surface mesh.
Definition: surface.h:75
FSLIB::Annotation::fileName
QString fileName() const
Definition: annotation.h:350
colortable.h
Colortable class declaration.