public void setRotation(Matrix3d rotation) { double r11, r12, r13, r21, r22, r23, r31, r32, r33; r11 = rotation.getM00(); r12 = rotation.getM01(); r13 = rotation.getM02(); r21 = rotation.getM10(); r22 = rotation.getM11(); r23 = rotation.getM12(); r31 = rotation.getM20(); r32 = rotation.getM21(); r33 = rotation.getM22(); q_qs.set(Math.sqrt((1.0 + r11 + r22 + r33) / 4.0)); q_qx.set((r32 - r23) / (4.0 * q_qs.getDoubleValue())); q_qy.set((r13 - r31) / (4.0 * q_qs.getDoubleValue())); q_qz.set((r21 - r12) / (4.0 * q_qs.getDoubleValue())); }