void FDevicePlugin::UECalib(int index)
{
	// Quats to get information from driver
	FQuat armQuat;

	int calibIterations = 100;
	int calibDelayMs = 50;

	if (!pDrvIface->IsInit())
	{
		return;
	}

	armQuat.W = 0.0;
	armQuat.X = 0.0;
	armQuat.Y = 0.0;
	armQuat.Z = 0.0;

	// Collect samples
	for (int i = 0; i < calibIterations; i++)
	{
		FQuat tempQuat[NUM_SENSORS];

		// Get Calibrated Quaternion
		GetCurrentRotation(&tempQuat[0], &tempQuat[1], &tempQuat[2], &tempQuat[3]);
		armQuat += tempQuat[index];
		Sleep(50);
	}

	// Average Out
	armQuat /= calibIterations;

	// Normalize Quaternion
	armQuat = armQuat.GetNormalized();

	UE_LOG(LogTemp, Warning, TEXT("UE Calibration for Index %d : W = %f, X = %f, Y = %f, Z = %f"),
		index,
		armQuat.W,
		armQuat.X,
		armQuat.Y,
		armQuat.Z);
}
/*
================
hhCameraInterpolator::GetCurrentAngles
================
*/
idAngles hhCameraInterpolator::GetCurrentAngles() const {
	return GetCurrentRotation().ToAngles();
}
/*
================
hhCameraInterpolator::GetCurrentAxis
================
*/
idMat3 hhCameraInterpolator::GetCurrentAxis() const {
	return GetCurrentRotation().ToMat3();
}