public void Sample(float interpolation)
{
_chassis.Sample();
var movementDelta = _chassis.MovementDelta * interpolation * Velocity;
movementDelta = Forward * movementDelta.X + Right * movementDelta.Y + Up * movementDelta.Z;
var rotation = Matrix.RotationAxis(Right, -_chassis.Pitch) * Matrix.RotationAxis(Up, -_chassis.Yaw);
Position += (Vector3)Vector3.Transform(movementDelta, rotation);
rotation.Transpose();
// T^(-1) = (matRotation(phi) * matTranslation(p))^(-1) = matTranslation(-p) * matRotation(-phi) (right-to-left)
WorldView = Matrix.Translation(-Position) * rotation * DeviceTransform;
}