setEuler method

void setEuler(
  1. double yaw,
  2. double pitch,
  3. double roll
)

Set quaternion with rotation of yaw, pitch and roll.

Implementation

void setEuler(double yaw, double pitch, double roll) {
  final halfYaw = yaw * 0.5;
  final halfPitch = pitch * 0.5;
  final halfRoll = roll * 0.5;
  final cosYaw = math.cos(halfYaw);
  final sinYaw = math.sin(halfYaw);
  final cosPitch = math.cos(halfPitch);
  final sinPitch = math.sin(halfPitch);
  final cosRoll = math.cos(halfRoll);
  final sinRoll = math.sin(halfRoll);
  _qStorage[0] = cosRoll * sinPitch * cosYaw + sinRoll * cosPitch * sinYaw;
  _qStorage[1] = cosRoll * cosPitch * sinYaw - sinRoll * sinPitch * cosYaw;
  _qStorage[2] = sinRoll * cosPitch * cosYaw - cosRoll * sinPitch * sinYaw;
  _qStorage[3] = cosRoll * cosPitch * cosYaw + sinRoll * sinPitch * sinYaw;
}