16 static void makeRotate( osg::Quat&
q,
const double&
angle,
const double&
x,
const double&
y,
const double&
z )
18 double coshalfangle = cos( 0.5*angle );
19 double sinhalfangle = sin( 0.5*angle );
31 static void quatMult( osg::Quat& lhs,
const osg::Quat& rhs )
35 double x = lhs[0] * rhs[3] + lhs[1] * rhs[2] - lhs[2] * rhs[1] + lhs[3] * rhs[0];
36 double y = -lhs[0] * rhs[2] + lhs[1] * rhs[3] + lhs[2] * rhs[0] + lhs[3] * rhs[1];
37 double z = lhs[0] * rhs[1] - lhs[1] * rhs[0] + lhs[2] * rhs[3] + lhs[3] * rhs[2];
38 double w = -lhs[0] * rhs[0] - lhs[1] * rhs[1] - lhs[2] * rhs[2] + lhs[3] * rhs[3];