Fixed sign bug
parent
9cf6bb3f0f
commit
559da158fe
|
|
@ -96,14 +96,15 @@ struct traits<QUATERNION_TYPE> {
|
||||||
Vector3 omega;
|
Vector3 omega;
|
||||||
|
|
||||||
const double qw = q.w();
|
const double qw = q.w();
|
||||||
|
// See Quaternion-Logmap.nb in doc for Taylor expansions
|
||||||
if (qw > NearlyOne) {
|
if (qw > NearlyOne) {
|
||||||
// Taylor expansion of (angle / s) at 1
|
// Taylor expansion of (angle / s) at 1
|
||||||
//return (2 + 2 * (1-qw) / 3) * q.vec();
|
// (2 + 2 * (1-qw) / 3) * q.vec();
|
||||||
omega = ( 8. / 3. - 2. / 3. * qw) * q.vec();
|
omega = ( 8. / 3. - 2. / 3. * qw) * q.vec();
|
||||||
} else if (qw < NearlyNegativeOne) {
|
} else if (qw < NearlyNegativeOne) {
|
||||||
// Taylor expansion of (angle / s) at -1
|
// Taylor expansion of (angle / s) at -1
|
||||||
//return (-2 - 2 * (1 + qw) / 3) * q.vec();
|
// (-2 - 2 * (1 + qw) / 3) * q.vec();
|
||||||
omega = (-8. / 3 + 2. / 3 * qw) * q.vec();
|
omega = (-8. / 3. - 2. / 3. * qw) * q.vec();
|
||||||
} else {
|
} else {
|
||||||
// Normal, away from zero case
|
// Normal, away from zero case
|
||||||
double angle = 2 * acos(qw), s = sqrt(1 - qw * qw);
|
double angle = 2 * acos(qw), s = sqrt(1 - qw * qw);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue