35#ifndef AIMS_RESAMPLING_QUATERNION_H
36#define AIMS_RESAMPLING_QUATERNION_H
static Point4df cross(const Point4df &a, const Point4df &b)
Quaternion(const AffineTransformation3d &tr)
static float dot(const Point4df &a, const Point4df &b)
void fromAxis(const Point3df &c, float phi)
AimsVector< float, 16 > inverseRotationMatrix() const
Quaternion(const Quaternion &q)
Quaternion & operator*=(const Quaternion &q)
Quaternion(float x, float y, float z, float t)
Quaternion(const Point4df &q)
Quaternion inverse() const
Point3df transform(const Point3df &p) const
Rotates vecotor p.
friend Quaternion operator*(const Quaternion &, const Quaternion &)
Quaternion & operator=(const Quaternion &q)
void buildFromMotion(const AffineTransformation3d &m)
Obsolete in aims 5.2: use buildFromTransformation() instead.
AimsVector< float, 16 > rotationMatrix() const
in OpenGL style: in columns
void buildFromMatrix(const float *m)
4x4 matrix in columns (OpenGL-style)
Point3df transformInverse(const Point3df &p) const
Point3df transform(float x, float y, float z) const
Rotates vecotor (x,y,z)
void buildFromTransformation(const AffineTransformation3d &m)
static Point3df norm(const Point3df &a)
Quaternion normalized() const
void setVector(const Point4df &vec)
const Point4df & vector() const
static float dot(const Quaternion &a, const Quaternion &b)
The class for EcatSino data write operation.
Quaternion operator*(const Quaternion &a, const Quaternion &b)
AimsVector< float, 3 > Point3df
AimsVector< float, 4 > Point4df