37#ifndef FIFF_COORD_TRANS_H
38#define FIFF_COORD_TRANS_H
54#include <QSharedPointer>
83 typedef QSharedPointer<FiffCoordTrans>
SPtr;
84 typedef QSharedPointer<const FiffCoordTrans>
ConstSPtr;
85 typedef std::unique_ptr<FiffCoordTrans>
UPtr;
86 typedef std::unique_ptr<const FiffCoordTrans>
ConstUPtr;
161 return this->
from < 0;
215 static FiffCoordTrans readTransform(
const QString& name,
int from,
int to);
247 static FiffCoordTrans readTransformAscii(
const QString& name,
int from,
int to);
257 static FiffCoordTrans readFShead2mriTransform(
const QString& name);
270 Eigen::MatrixX3f
apply_trans(
const Eigen::MatrixX3f& rr,
bool do_move =
true)
const;
380 void write(QIODevice &p_IODevice);
416 float angleTo(Eigen::MatrixX4f mTransDest);
468 float **fromp,
float **top,
475 Eigen::Matrix<float, 4,4, Eigen::DontAlign>
trans;
476 Eigen::Matrix<float, 4,4, Eigen::DontAlign>
invtrans;
502#ifndef metatype_fiffcoordtrans
503#define metatype_fiffcoordtrans
507#ifndef metatype_fiffcoordtrans_sptr
508#define metatype_fiffcoordtrans_sptr
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
FiffStream class declaration.
FiffDirNode class declaration, which provides fiff dir tree processing methods.
Old fiff_type declarations - replace them.
Q_DECLARE_METATYPE(FIFFLIB::FiffCoordTrans)
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
bool operator==(const FiffChInfo &a, const FiffChInfo &b)
Coordinate transformation description.
std::unique_ptr< const FiffCoordTrans > ConstUPtr
static qint32 storageSize()
static FiffCoordTrans readTransformFromNode(FiffStream::SPtr &stream, const FiffDirNode::SPtr &node, int from, int to)
static FiffCoordTrans combine(int from, int to, const FiffCoordTrans &t1, const FiffCoordTrans &t2)
static FiffCoordTrans identity(int from, int to)
FiffCoordTrans(int from, int to, const Eigen::Matrix3f &rot, const Eigen::Vector3f &move)
QSharedPointer< FiffCoordTrans > SPtr
FiffCoordTrans inverted() const
void write(QIODevice &p_IODevice)
Writes the transformation to file.
FiffCoordTrans(int from, int to, const Eigen::Matrix4f &matTrans, bool bStandard=false)
static FiffCoordTrans procrustesAlign(int from_frame, int to_frame, float **fromp, float **top, float *w, int np, float max_diff)
float translationTo(Eigen::MatrixX4f mTransDest)
std::unique_ptr< FiffCoordTrans > UPtr
static FiffCoordTrans fromCardinalPoints(int from, int to, const float *rL, const float *rN, const float *rR)
QSharedPointer< const FiffCoordTrans > ConstSPtr
Eigen::MatrixX3f apply_inverse_trans(const Eigen::MatrixX3f &rr, bool do_move=true) const
Eigen::MatrixX3f apply_trans(const Eigen::MatrixX3f &rr, bool do_move=true) const
float angleTo(Eigen::MatrixX4f mTransDest)
Eigen::Matrix< float, 4, 4, Eigen::DontAlign > trans
static FiffCoordTrans readFromTag(const QSharedPointer< FiffTag > &tag)
void writeToStream(FiffStream *p_pStream)
Writes the transformation to a FIFF stream.
static QString frame_name(int frame)
static bool addInverse(FiffCoordTrans &t)
Eigen::Matrix< float, 4, 4, Eigen::DontAlign > invtrans
QSharedPointer< FiffDirNode > SPtr
QSharedPointer< FiffStream > SPtr