8#ifndef IGL_CANONICAL_QUATERNIONS_H
9#define IGL_CANONICAL_QUATERNIONS_H
22#define SQRT_2_OVER_2 0.707106781f
44 { -0.5, -0.5, -0.5, 0.5},
46 { 0.5, -0.5, 0.5, 0.5},
50 { 0.5, 0.5, -0.5, 0.5},
52 { -0.5, 0.5, 0.5, 0.5},
55 { -0.5, 0.5, 0.5, -0.5},
57 { -0.5, -0.5, -0.5, -0.5},
60 { -0.5, -0.5, 0.5, 0.5},
62 { 0.5, -0.5, 0.5, -0.5}
66#define SQRT_2_OVER_2 0.70710678118654757
88 { -0.5, -0.5, -0.5, 0.5},
90 { 0.5, -0.5, 0.5, 0.5},
94 { 0.5, 0.5, -0.5, 0.5},
96 { -0.5, 0.5, 0.5, 0.5},
99 { -0.5, 0.5, 0.5, -0.5},
101 { -0.5, -0.5, -0.5, -0.5},
104 { -0.5, -0.5, 0.5, 0.5},
106 { 0.5, -0.5, 0.5, -0.5}
109#define NUM_CANONICAL_VIEW_QUAT 24
120 template <
typename Q_type>
130#ifndef IGL_STATIC_LIBRARY
131# include "canonical_quaternions.cpp"
#define SQRT_2_OVER_2
Definition canonical_quaternions.h:22
#define IGL_INLINE
Definition igl_inline.h:15
const double XY_PLANE_QUAT_D[4]
Definition canonical_quaternions.h:71
const float IDENTITY_QUAT_F[4]
Definition canonical_quaternions.h:24
const double IDENTITY_QUAT_D[4]
Definition canonical_quaternions.h:68
double CANONICAL_VIEW_QUAT< double >(int i, int j)
const double XZ_PLANE_QUAT_D[4]
Definition canonical_quaternions.h:73
float CANONICAL_VIEW_QUAT< float >(int i, int j)
Q_type CANONICAL_VIEW_QUAT(int i, int j)
const float CANONICAL_VIEW_QUAT_F[][4]
Definition canonical_quaternions.h:32
const double CANONICAL_VIEW_QUAT_D[][4]
Definition canonical_quaternions.h:76
const float YZ_PLANE_QUAT_F[4]
Definition canonical_quaternions.h:31
const float XZ_PLANE_QUAT_F[4]
Definition canonical_quaternions.h:29
const double YZ_PLANE_QUAT_D[4]
Definition canonical_quaternions.h:75
const float XY_PLANE_QUAT_F[4]
Definition canonical_quaternions.h:27