Files
Project-Reboot-3.0/Project Reboot 3.0/Rotator.h
Milxnor 4482192a2b squad comms
squad comms, ltms now work less (this will return better in a later update), performance, fixed some versions, fixed vulnerabilities
2023-06-15 22:04:53 -04:00

54 lines
784 B
C

#pragma once
#include "Quat.h"
#include "Vector.h"
#include "UnrealMathUtility.h"
struct FRotator
{
#ifdef ABOVE_S20
double Pitch;
double Yaw;
double Roll;
#else
float Pitch;
float Yaw;
float Roll;
#endif
FQuat Quaternion() const;
FVector Vector() const;
static float NormalizeAxis(float Angle);
static float ClampAxis(float Angle);
};
FORCEINLINE float FRotator::ClampAxis(float Angle)
{
// returns Angle in the range (-360,360)
Angle = FMath::Fmod(Angle, 360.f);
if (Angle < 0.f)
{
// shift to [0,360) range
Angle += 360.f;
}
return Angle;
}
FORCEINLINE float FRotator::NormalizeAxis(float Angle)
{
// returns Angle in the range [0,360)
Angle = ClampAxis(Angle);
if (Angle > 180.f)
{
// shift to (-180,180]
Angle -= 360.f;
}
return Angle;
}