// Routine to convert the Euler angle specifying a rotation to a quaternion. Quaternion eulerAnglesToQuaternion(EulerAngles e) { float alpha, beta, gamma; Quaternion *q1, *q2, *q3; alpha = e.getAlpha(); beta = e.getBeta(); gamma = e.getGamma(); q1 = new Quaternion( cos( (PI/180.0) * (alpha/2.0) ), sin( (PI/180.0) * (alpha/2.0) ), 0.0, 0.0 ); q2 = new Quaternion( cos( (PI/180.0) * (beta/2.0) ), 0.0, sin( (PI/180.0) * (beta/2.0) ), 0.0 ); q3 = new Quaternion( cos( (PI/180.0) * (gamma/2.0) ), 0.0, 0.0, sin( (PI/180.0) * (gamma/2.0) ) ); return multiplyQuaternions( *q1, multiplyQuaternions(*q2, *q3) ); }