|
static UE_NODISCARD FORCEINLINE int32 | RandHelper (int32 A) |
|
static UE_NODISCARD FORCEINLINE int64 | RandHelper64 (int64 A) |
|
static UE_NODISCARD FORCEINLINE int32 | RandRange (int32 Min, int32 Max) |
|
static UE_NODISCARD FORCEINLINE int64 | RandRange (int64 Min, int64 Max) |
|
static UE_NODISCARD FORCEINLINE float | RandRange (float InMin, float InMax) |
|
static UE_NODISCARD FORCEINLINE double | RandRange (double InMin, double InMax) |
|
static UE_NODISCARD FORCEINLINE float | FRandRange (float InMin, float InMax) |
|
static UE_NODISCARD FORCEINLINE double | FRandRange (double InMin, double InMax) |
|
static UE_NODISCARD FORCEINLINE bool | RandBool () |
|
static UE_NODISCARD FVector | VRand () |
|
static UE_NODISCARD FVector | VRandCone (FVector const &Dir, float ConeHalfAngleRad) |
|
static UE_NODISCARD FVector | VRandCone (FVector const &Dir, float HorizontalConeHalfAngleRad, float VerticalConeHalfAngleRad) |
|
static UE_NODISCARD FVector2D | RandPointInCircle (float CircleRadius) |
|
static UE_NODISCARD FVector | RandPointInBox (const FBox &Box) |
|
static UE_NODISCARD FVector | GetReflectionVector (const FVector &Direction, const FVector &SurfaceNormal) |
|
template<class T , class U > |
static UE_NODISCARD constexpr FORCEINLINE bool | IsWithin (const T &TestValue, const U &MinValue, const U &MaxValue) |
|
template<class T , class U > |
static UE_NODISCARD constexpr FORCEINLINE bool | IsWithinInclusive (const T &TestValue, const U &MinValue, const U &MaxValue) |
|
static UE_NODISCARD FORCEINLINE bool | IsNearlyEqual (float A, float B, float ErrorTolerance=UE_SMALL_NUMBER) |
|
static UE_NODISCARD FORCEINLINE bool | IsNearlyEqual (double A, double B, double ErrorTolerance=UE_DOUBLE_SMALL_NUMBER) |
|
static UE_NODISCARD FORCEINLINE bool | IsNearlyZero (float Value, float ErrorTolerance=UE_SMALL_NUMBER) |
|
static UE_NODISCARD FORCEINLINE bool | IsNearlyZero (double Value, double ErrorTolerance=UE_DOUBLE_SMALL_NUMBER) |
|
static UE_NODISCARD FORCEINLINE bool | IsNearlyEqualByULP (float A, float B, int32 MaxUlps=4) |
|
static UE_NODISCARD FORCEINLINE bool | IsNearlyEqualByULP (double A, double B, int32 MaxUlps=4) |
|
template<typename T > |
static UE_NODISCARD constexpr FORCEINLINE bool | IsPowerOfTwo (T Value) |
|
static UE_NODISCARD FORCEINLINE float | Floor (float F) |
|
static UE_NODISCARD FORCEINLINE double | Floor (double F) |
|
template<typename IntegralType UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr FORCEINLINE IntegralType | Floor (IntegralType I) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | Max3 (const T A, const T B, const T C) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | Min3 (const T A, const T B, const T C) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE int32 | Max3Index (const T A, const T B, const T C) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE int32 | Min3Index (const T A, const T B, const T C) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | Square (const T A) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | Cube (const T A) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | Clamp (const T X, const T Min, const T Max) |
|
static UE_NODISCARD constexpr FORCEINLINE float | Clamp (const float X, const float Min, const float Max) |
|
static UE_NODISCARD constexpr FORCEINLINE double | Clamp (const double X, const double Min, const double Max) |
|
static UE_NODISCARD constexpr FORCEINLINE int64 | Clamp (const int64 X, const int32 Min, const int32 Max) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | Wrap (const T X, const T Min, const T Max) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | GridSnap (T Location, T Grid) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | DivideAndRoundUp (T Dividend, T Divisor) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | DivideAndRoundDown (T Dividend, T Divisor) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE T | DivideAndRoundNearest (T Dividend, T Divisor) |
|
static UE_NODISCARD FORCEINLINE float | Log2 (float Value) |
|
static UE_NODISCARD FORCEINLINE double | Log2 (double Value) |
|
template<typename T UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static constexpr FORCEINLINE void | SinCos (std::decay_t< T > *ScalarSin, std::decay_t< T > *ScalarCos, T Value) |
|
static FORCEINLINE void | SinCos (double *ScalarSin, double *ScalarCos, double Value) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static FORCEINLINE void | SinCos (T *ScalarSin, T *ScalarCos, U Value) |
|
static UE_NODISCARD FORCEINLINE float | FastAsin (float Value) |
|
static UE_NODISCARD FORCEINLINE double | FastAsin (double Value) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE auto | RadiansToDegrees (T const &RadVal) -> decltype(RadVal *(180.f/UE_PI)) |
|
static FORCEINLINE float | RadiansToDegrees (float const &RadVal) |
|
static FORCEINLINE double | RadiansToDegrees (double const &RadVal) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE auto | DegreesToRadians (T const &DegVal) -> decltype(DegVal *(UE_PI/180.f)) |
|
static FORCEINLINE float | DegreesToRadians (float const &DegVal) |
|
static FORCEINLINE double | DegreesToRadians (double const &DegVal) |
|
template<typename T > |
static UE_NODISCARD T | ClampAngle (T AngleDegrees, T MinAngleDegrees, T MaxAngleDegrees) |
|
template<typename T , typename T2 UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr auto | FindDeltaAngleDegrees (T A1, T2 A2) -> decltype(A1 *A2) |
|
template<typename T , typename T2 UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr auto | FindDeltaAngleRadians (T A1, T2 A2) -> decltype(A1 *A2) |
|
template<typename T UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr T | UnwindRadians (T A) |
|
template<typename T UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr T | UnwindDegrees (T A) |
|
static void | WindRelativeAnglesDegrees (float InAngle0, float &InOutAngle1) |
|
static void | WindRelativeAnglesDegrees (double InAngle0, double &InOutAngle1) |
|
static UE_NODISCARD float | FixedTurn (float InCurrent, float InDesired, float InDeltaRate) |
|
template<typename T > |
static FORCEINLINE void | CartesianToPolar (const T X, const T Y, T &OutRad, T &OutAng) |
|
template<typename T > |
static FORCEINLINE void | CartesianToPolar (const UE::Math::TVector2< T > InCart, UE::Math::TVector2< T > &OutPolar) |
|
template<typename T > |
static FORCEINLINE void | PolarToCartesian (const T Rad, const T Ang, T &OutX, T &OutY) |
|
template<typename T > |
static FORCEINLINE void | PolarToCartesian (const UE::Math::TVector2< T > InPolar, UE::Math::TVector2< T > &OutCart) |
|
static bool | GetDotDistance (FVector2D &OutDotDist, const FVector &Direction, const FVector &AxisX, const FVector &AxisY, const FVector &AxisZ) |
|
static UE_NODISCARD FVector2D | GetAzimuthAndElevation (const FVector &Direction, const FVector &AxisX, const FVector &AxisY, const FVector &AxisZ) |
|
template<typename T , typename T2 UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr FORCEINLINE auto | GetRangePct (T MinValue, T MaxValue, T2 Value) |
|
template<typename T , typename T2 UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD auto | GetRangePct (UE::Math::TVector2< T > const &Range, T2 Value) |
|
template<typename T , typename T2 UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD auto | GetRangeValue (UE::Math::TVector2< T > const &Range, T2 Pct) |
|
template<typename T , typename T2 > |
static UE_NODISCARD FORCEINLINE auto | GetMappedRangeValueClamped (const UE::Math::TVector2< T > &InputRange, const UE::Math::TVector2< T > &OutputRange, const T2 Value) |
|
template<typename T , typename T2 > |
static UE_NODISCARD FORCEINLINE auto | GetMappedRangeValueUnclamped (const UE::Math::TVector2< T > &InputRange, const UE::Math::TVector2< T > &OutputRange, const T2 Value) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE double | GetRangePct (TRange< T > const &Range, T Value) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE T | GetRangeValue (TRange< T > const &Range, T Pct) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE T | GetMappedRangeValueClamped (const TRange< T > &InputRange, const TRange< T > &OutputRange, const T Value) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | Lerp (const T &A, const T &B, const U &Alpha) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | Lerp (const T &A, const T &B, const U &Alpha) |
|
template<typename T1 , typename T2 , typename T3 UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD auto | Lerp (const T1 &A, const T2 &B, const T3 &Alpha) -> decltype(A *B) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | LerpStable (const T &A, const T &B, double Alpha) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | LerpStable (const T &A, const T &B, float Alpha) |
|
template<typename T1 , typename T2 , typename T3 UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD auto | LerpStable (const T1 &A, const T2 &B, const T3 &Alpha) -> decltype(A *B) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | BiLerp (const T &P00, const T &P10, const T &P01, const T &P11, const U &FracX, const U &FracY) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | BiLerp (const T &P00, const T &P10, const T &P01, const T &P11, const U &FracX, const U &FracY) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | CubicInterp (const T &P0, const T &T0, const T &P1, const T &T1, const U &A) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | CubicInterp (const T &P0, const T &T0, const T &P1, const T &T1, const U &A) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | CubicInterpDerivative (const T &P0, const T &T0, const T &P1, const T &T1, const U &A) |
|
template<typename T , typename U UE_CONSTRAINTS_BEGIN UE_CONSTRAINTS_END> |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | CubicInterpSecondDerivative (const T &P0, const T &T0, const T &P1, const T &T1, const U &A) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpEaseIn (const T &A, const T &B, float Alpha, float Exp) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpEaseOut (const T &A, const T &B, float Alpha, float Exp) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpEaseInOut (const T &A, const T &B, float Alpha, float Exp) |
|
template<class T > |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE T | InterpStep (const T &A, const T &B, float Alpha, int32 Steps) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpSinIn (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpSinOut (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpSinInOut (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpExpoIn (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpExpoOut (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpExpoInOut (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpCircularIn (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpCircularOut (const T &A, const T &B, float Alpha) |
|
template<class T > |
static UE_NODISCARD FORCEINLINE_DEBUGGABLE T | InterpCircularInOut (const T &A, const T &B, float Alpha) |
|
template<typename T , typename U > |
static UE_NODISCARD UE::Math::TRotator< T > | LerpRange (const UE::Math::TRotator< T > &A, const UE::Math::TRotator< T > &B, U Alpha) |
|
template<class U > |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE U | CubicCRSplineInterp (const U &P0, const U &P1, const U &P2, const U &P3, const float T0, const float T1, const float T2, const float T3, const float T) |
|
template<class U > |
static UE_NODISCARD constexpr FORCEINLINE_DEBUGGABLE U | CubicCRSplineInterpSafe (const U &P0, const U &P1, const U &P2, const U &P3, const float T0, const float T1, const float T2, const float T3, const float T) |
|
static UE_NODISCARD FVector | VInterpNormalRotationTo (const FVector &Current, const FVector &Target, float DeltaTime, float RotationSpeedDegrees) |
|
static UE_NODISCARD FVector | VInterpConstantTo (const FVector &Current, const FVector &Target, float DeltaTime, float InterpSpeed) |
|
static UE_NODISCARD FVector | VInterpTo (const FVector &Current, const FVector &Target, float DeltaTime, float InterpSpeed) |
|
static UE_NODISCARD FVector2D | Vector2DInterpConstantTo (const FVector2D &Current, const FVector2D &Target, float DeltaTime, float InterpSpeed) |
|
static UE_NODISCARD FVector2D | Vector2DInterpTo (const FVector2D &Current, const FVector2D &Target, float DeltaTime, float InterpSpeed) |
|
static UE_NODISCARD FRotator | RInterpConstantTo (const FRotator &Current, const FRotator &Target, float DeltaTime, float InterpSpeed) |
|
static UE_NODISCARD FRotator | RInterpTo (const FRotator &Current, const FRotator &Target, float DeltaTime, float InterpSpeed) |
|
template<typename T1 , typename T2 = T1, typename T3 = T2, typename T4 = T3> |
static UE_NODISCARD auto | FInterpConstantTo (T1 Current, T2 Target, T3 DeltaTime, T4 InterpSpeed) |
|
template<typename T1 , typename T2 = T1, typename T3 = T2, typename T4 = T3> |
static UE_NODISCARD auto | FInterpTo (T1 Current, T2 Target, T3 DeltaTime, T4 InterpSpeed) |
|
static UE_NODISCARD FLinearColor | CInterpTo (const FLinearColor &Current, const FLinearColor &Target, float DeltaTime, float InterpSpeed) |
|
template<class T > |
static UE_NODISCARD UE::Math::TQuat< T > | QInterpConstantTo (const UE::Math::TQuat< T > &Current, const UE::Math::TQuat< T > &Target, float DeltaTime, float InterpSpeed) |
|
template<class T > |
static UE_NODISCARD UE::Math::TQuat< T > | QInterpTo (const UE::Math::TQuat< T > &Current, const UE::Math::TQuat< T > &Target, float DeltaTime, float InterpSpeed) |
|
template<class T > |
static UE_NODISCARD constexpr T | InvExpApprox (T X) |
|
template<class T > |
static constexpr void | ExponentialSmoothingApprox (T &InOutValue, const T &InTargetValue, const float InDeltaTime, const float InSmoothingTime) |
|
template<class T > |
static constexpr void | CriticallyDampedSmoothing (T &InOutValue, T &InOutValueRate, const T &InTargetValue, const T &InTargetValueRate, const float InDeltaTime, const float InSmoothingTime) |
|
template<class T > |
static void | SpringDamper (T &InOutValue, T &InOutValueRate, const T &InTargetValue, const T &InTargetValueRate, const float InDeltaTime, const float InUndampedFrequency, const float InDampingRatio) |
|
template<class T > |
static void | SpringDamperSmoothing (T &InOutValue, T &InOutValueRate, const T &InTargetValue, const T &InTargetValueRate, const float InDeltaTime, const float InSmoothingTime, const float InDampingRatio) |
|
static UE_NODISCARD float | MakePulsatingValue (const double InCurrentTime, const float InPulsesPerSecond, const float InPhase=0.0f) |
|
template<typename FReal > |
static UE_NODISCARD UE::Math::TVector< FReal > | RayPlaneIntersection (const UE::Math::TVector< FReal > &RayOrigin, const UE::Math::TVector< FReal > &RayDirection, const UE::Math::TPlane< FReal > &Plane) |
|
template<typename FReal > |
static UE_NODISCARD FReal | RayPlaneIntersectionParam (const UE::Math::TVector< FReal > &RayOrigin, const UE::Math::TVector< FReal > &RayDirection, const UE::Math::TPlane< FReal > &Plane) |
|
template<typename FReal > |
static UE_NODISCARD UE::Math::TVector< FReal > | LinePlaneIntersection (const UE::Math::TVector< FReal > &Point1, const UE::Math::TVector< FReal > &Point2, const UE::Math::TVector< FReal > &PlaneOrigin, const UE::Math::TVector< FReal > &PlaneNormal) |
|
template<typename FReal > |
static UE_NODISCARD UE::Math::TVector< FReal > | LinePlaneIntersection (const UE::Math::TVector< FReal > &Point1, const UE::Math::TVector< FReal > &Point2, const UE::Math::TPlane< FReal > &Plane) |
|
static UE_NODISCARD uint32 | ComputeProjectedSphereScissorRect (FIntRect &InOutScissorRect, FVector SphereOrigin, float Radius, FVector ViewOrigin, const FMatrix &ViewMatrix, const FMatrix &ProjMatrix) |
|
template<typename FReal > |
static UE_NODISCARD UE::Math::TSphere< FReal > | ComputeBoundingSphereForCone (UE::Math::TVector< FReal > const &ConeOrigin, UE::Math::TVector< FReal > const &ConeDirection, FReal ConeRadius, FReal CosConeAngle, FReal SinConeAngle) |
|
static UE_NODISCARD bool | PlaneAABBIntersection (const FPlane &P, const FBox &AABB) |
|
static UE_NODISCARD int32 | PlaneAABBRelativePosition (const FPlane &P, const FBox &AABB) |
|
template<typename FReal > |
static UE_NODISCARD bool | SphereAABBIntersection (const UE::Math::TVector< FReal > &SphereCenter, const FReal RadiusSquared, const UE::Math::TBox< FReal > &AABB) |
|
template<typename FReal > |
static UE_NODISCARD bool | SphereAABBIntersection (const UE::Math::TSphere< FReal > &Sphere, const UE::Math::TBox< FReal > &AABB) |
|
template<typename FReal > |
static UE_NODISCARD bool | PointBoxIntersection (const UE::Math::TVector< FReal > &Point, const UE::Math::TBox< FReal > &Box) |
|
template<typename FReal > |
static UE_NODISCARD bool | LineBoxIntersection (const UE::Math::TBox< FReal > &Box, const UE::Math::TVector< FReal > &Start, const UE::Math::TVector< FReal > &End, const UE::Math::TVector< FReal > &Direction) |
|
template<typename FReal > |
static UE_NODISCARD bool | LineBoxIntersection (const UE::Math::TBox< FReal > &Box, const UE::Math::TVector< FReal > &Start, const UE::Math::TVector< FReal > &End, const UE::Math::TVector< FReal > &Direction, const UE::Math::TVector< FReal > &OneOverDirection) |
|
static bool | LineExtentBoxIntersection (const FBox &inBox, const FVector &Start, const FVector &End, const FVector &Extent, FVector &HitLocation, FVector &HitNormal, float &HitTime) |
|
template<typename FReal > |
static UE_NODISCARD bool | LineSphereIntersection (const UE::Math::TVector< FReal > &Start, const UE::Math::TVector< FReal > &Dir, FReal Length, const UE::Math::TVector< FReal > &Origin, FReal Radius) |
|
static UE_NODISCARD bool | SphereConeIntersection (const FVector &SphereCenter, float SphereRadius, const FVector &ConeAxis, float ConeAngleSin, float ConeAngleCos) |
|
static UE_NODISCARD FVector | ClosestPointOnLine (const FVector &LineStart, const FVector &LineEnd, const FVector &Point) |
|
static UE_NODISCARD FVector | ClosestPointOnInfiniteLine (const FVector &LineStart, const FVector &LineEnd, const FVector &Point) |
|
template<typename FReal > |
static UE_NODISCARD bool | IntersectPlanes3 (UE::Math::TVector< FReal > &I, const UE::Math::TPlane< FReal > &P1, const UE::Math::TPlane< FReal > &P2, const UE::Math::TPlane< FReal > &P3) |
|
template<typename FReal > |
static UE_NODISCARD bool | IntersectPlanes2 (UE::Math::TVector< FReal > &I, UE::Math::TVector< FReal > &D, const UE::Math::TPlane< FReal > &P1, const UE::Math::TPlane< FReal > &P2) |
|
static float | PointDistToLine (const FVector &Point, const FVector &Direction, const FVector &Origin, FVector &OutClosestPoint) |
|
static UE_NODISCARD float | PointDistToLine (const FVector &Point, const FVector &Direction, const FVector &Origin) |
|
static UE_NODISCARD FVector | ClosestPointOnSegment (const FVector &Point, const FVector &StartPoint, const FVector &EndPoint) |
|
static UE_NODISCARD FVector2D | ClosestPointOnSegment2D (const FVector2D &Point, const FVector2D &StartPoint, const FVector2D &EndPoint) |
|
static UE_NODISCARD float | PointDistToSegment (const FVector &Point, const FVector &StartPoint, const FVector &EndPoint) |
|
static UE_NODISCARD float | PointDistToSegmentSquared (const FVector &Point, const FVector &StartPoint, const FVector &EndPoint) |
|
static void | SegmentDistToSegment (FVector A1, FVector B1, FVector A2, FVector B2, FVector &OutP1, FVector &OutP2) |
|
static void | SegmentDistToSegmentSafe (FVector A1, FVector B1, FVector A2, FVector B2, FVector &OutP1, FVector &OutP2) |
|
static UE_NODISCARD float | GetTForSegmentPlaneIntersect (const FVector &StartPoint, const FVector &EndPoint, const FPlane &Plane) |
|
static bool | SegmentPlaneIntersection (const FVector &StartPoint, const FVector &EndPoint, const FPlane &Plane, FVector &out_IntersectionPoint) |
|
static bool | SegmentTriangleIntersection (const FVector &StartPoint, const FVector &EndPoint, const FVector &A, const FVector &B, const FVector &C, FVector &OutIntersectPoint, FVector &OutTriangleNormal) |
|
static bool | SegmentIntersection2D (const FVector &SegmentStartA, const FVector &SegmentEndA, const FVector &SegmentStartB, const FVector &SegmentEndB, FVector &out_IntersectionPoint) |
|
static UE_NODISCARD FVector | ClosestPointOnTriangleToPoint (const FVector &Point, const FVector &A, const FVector &B, const FVector &C) |
|
static UE_NODISCARD FVector | ClosestPointOnTetrahedronToPoint (const FVector &Point, const FVector &A, const FVector &B, const FVector &C, const FVector &D) |
|
static void | SphereDistToLine (FVector SphereOrigin, float SphereRadius, FVector LineOrigin, FVector LineDir, FVector &OutClosestPoint) |
|
static UE_NODISCARD bool | GetDistanceWithinConeSegment (FVector Point, FVector ConeStartPoint, FVector ConeLine, float RadiusAtStart, float RadiusAtEnd, float &PercentageOut) |
|
static UE_NODISCARD bool | PointsAreCoplanar (const TArray< FVector > &Points, const float Tolerance=0.1f) |
|
static UE_NODISCARD float | TruncateToHalfIfClose (float F, float Tolerance=UE_SMALL_NUMBER) |
|
static UE_NODISCARD double | TruncateToHalfIfClose (double F, double Tolerance=UE_SMALL_NUMBER) |
|
static UE_NODISCARD float | RoundHalfToEven (float F) |
|
static UE_NODISCARD double | RoundHalfToEven (double F) |
|
static UE_NODISCARD float | RoundHalfFromZero (float F) |
|
static UE_NODISCARD double | RoundHalfFromZero (double F) |
|
static UE_NODISCARD float | RoundHalfToZero (float F) |
|
static UE_NODISCARD double | RoundHalfToZero (double F) |
|
static UE_NODISCARD FORCEINLINE float | RoundFromZero (float F) |
|
static UE_NODISCARD FORCEINLINE double | RoundFromZero (double F) |
|
static UE_NODISCARD FORCEINLINE float | RoundToZero (float F) |
|
static UE_NODISCARD FORCEINLINE double | RoundToZero (double F) |
|
static UE_NODISCARD FORCEINLINE float | RoundToNegativeInfinity (float F) |
|
static UE_NODISCARD FORCEINLINE double | RoundToNegativeInfinity (double F) |
|
static UE_NODISCARD FORCEINLINE float | RoundToPositiveInfinity (float F) |
|
static UE_NODISCARD FORCEINLINE double | RoundToPositiveInfinity (double F) |
|
static UE_NODISCARD FString | FormatIntToHumanReadable (int32 Val) |
|
static UE_NODISCARD bool | MemoryTest (void *BaseAddress, uint32 NumBytes) |
|
static bool | Eval (FString Str, float &OutValue) |
|
static UE_NODISCARD FVector | GetBaryCentric2D (const FVector &Point, const FVector &A, const FVector &B, const FVector &C) |
|
static UE_NODISCARD FVector | GetBaryCentric2D (const FVector2D &Point, const FVector2D &A, const FVector2D &B, const FVector2D &C) |
|
static UE_NODISCARD FVector | ComputeBaryCentric2D (const FVector &Point, const FVector &A, const FVector &B, const FVector &C) |
|
static UE_NODISCARD FVector4 | ComputeBaryCentric3D (const FVector &Point, const FVector &A, const FVector &B, const FVector &C, const FVector &D) |
|
template<typename T > |
static UE_NODISCARD constexpr T | SmoothStep (T A, T B, T X) |
|
static UE_NODISCARD constexpr bool | ExtractBoolFromBitfield (uint8 *Ptr, uint32 Index) |
|
static constexpr void | SetBoolInBitField (uint8 *Ptr, uint32 Index, bool bSet) |
|
static void | ApplyScaleToFloat (float &Dst, const FVector &DeltaScale, float Magnitude=1.0f) |
|
static UE_NODISCARD uint8 | Quantize8UnsignedByte (float x) |
|
static UE_NODISCARD uint8 | Quantize8SignedByte (float x) |
|
static UE_NODISCARD constexpr int32 | GreatestCommonDivisor (int32 a, int32 b) |
|
static UE_NODISCARD constexpr int32 | LeastCommonMultiplier (int32 a, int32 b) |
|
static UE_NODISCARD float | PerlinNoise1D (float Value) |
|
static UE_NODISCARD float | PerlinNoise2D (const FVector2D &Location) |
|
static UE_NODISCARD float | PerlinNoise3D (const FVector &Location) |
|
template<typename T > |
static UE_NODISCARD T | WeightedMovingAverage (T CurrentSample, T PreviousSample, T Weight) |
|
template<typename T > |
static UE_NODISCARD T | DynamicWeightedMovingAverage (T CurrentSample, T PreviousSample, T MaxDistance, T MinWeight, T MaxWeight) |
|