5#include "Containers/Array.h"
109 return !(*
this ==
Other);
121 return Min.Equals(
Other.Min, Tolerance) &&
Max.Equals(
Other.Max, Tolerance);
230 return (T)DistSquared;
437 return Ar <<
Box.Min <<
Box.Max <<
Box.bIsValid;
453 if constexpr (std::is_same_v<T, float>)
457 else if constexpr (std::is_same_v<T, double>)
463 static_assert(
sizeof(T) == 0,
"Unimplemented");
469 template<
typename FArg UE_REQUIRES(!std::is_same_v<T, FArg>)>
531 if (bIsValid &&
Other.bIsValid)
539 else if (
Other.bIsValid)
556 ClosestPoint.
X =
Min.X;
560 ClosestPoint.
X =
Max.X;
566 ClosestPoint.
Y =
Min.Y;
570 ClosestPoint.
Y =
Max.Y;
579 if (Intersect(
Other) ==
false)
617 return FString::Printf(
TEXT(
"bIsValid=%s, Min=(%s), Max=(%s)"), bIsValid ?
TEXT(
"true") :
TEXT(
"false"), *
Min.ToString(), *
Max.ToString());
636template<
typename FReal>
647 if (
Box.IsInsideOrOn(Start) ||
Box.IsInsideOrOn(
End))
#define check(expr)
Definition AssertionMacros.h:314
EForceInit
Definition CoreMiscDefines.h:154
@ ForceInit
Definition CoreMiscDefines.h:155
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define FVector
Definition IOSSystemIncludes.h:8
#define UE_SERIALIZE_VARIANT_FROM_MISMATCHED_TAG(AR_OR_SLOT, ALIAS, TYPE, ALT_TYPE)
Definition LargeWorldCoordinatesSerializer.h:9
#define UE_DECLARE_LWC_TYPE(...)
Definition LargeWorldCoordinates.h:27
FVector MaxVector(const FVector &VectorA, const FVector &VectorB)
Definition PhysicsFieldComponent.cpp:172
FVector MinVector(const FVector &VectorA, const FVector &VectorB)
Definition PhysicsFieldComponent.cpp:167
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
Definition NameTypes.h:617
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
static CORE_API bool SegmentIntersection2D(const FVector &SegmentStartA, const FVector &SegmentEndA, const FVector &SegmentStartB, const FVector &SegmentEndB, FVector &out_IntersectionPoint)
Definition UnrealMath.cpp:1972
static constexpr UE_FORCEINLINE_HINT T Square(const T A)
Definition UnrealMathUtility.h:578
static bool LineBoxIntersection2D(const UE::Math::TBox2< FReal > &Box, const UE::Math::TVector2< FReal > &Start, const UE::Math::TVector2< FReal > &End)
Definition Box2D.h:638
static UE_FORCEINLINE_HINT void * Memset(void *Dest, uint8 Char, SIZE_T Count)
Definition UnrealMemory.h:119
Definition IsPODType.h:12
@ Value
Definition IsPODType.h:13
Definition IsUECoreType.h:19
@ Value
Definition IsUECoreType.h:20
TBox2< T > ExpandBy(const TVector2< T > &V) const
Definition Box2D.h:250
TBox2< T > MoveTo(const TVector2< T > &Destination) const
Definition Box2D.h:398
TBox2< T > & operator+=(const TVector2< T > &Other)
Definition Box2D.h:508
TBox2< T > & operator+=(const TBox2< T > &Other)
Definition Box2D.h:529
TBox2< T > operator+(const TBox2< T > &Other) const
Definition Box2D.h:157
bool operator==(const TBox2< T > &Other) const
Definition Box2D.h:96
TBox2< T > ShiftBy(const TVector2< T > &Offset) const
Definition Box2D.h:387
bool IsInside(const TBox2< T > &Other) const
Definition Box2D.h:376
TBox2(const TBox2< FArg > &From)
Definition Box2D.h:470
FString ToString() const
Definition Box2D.h:615
TVector2< T > & operator[](int32 Index)
Definition Box2D.h:168
TBox2< T > operator+(const TVector2< T > &Other) const
Definition Box2D.h:138
void Init()
Definition Box2D.h:325
T GetArea() const
Definition Box2D.h:261
TBox2< T > Overlap(const TBox2< T > &Other) const
Definition Box2D.h:577
bool SerializeFromMismatchedTag(FName StructTag, FArchive &Ar)
Definition Box2D.h:451
bool IsInsideOrOn(const TVector2< T > &TestPoint) const
Definition Box2D.h:365
bool operator!=(const TBox2< T > &Other) const
Definition Box2D.h:107
TVector2< T > Max
Definition Box2D.h:39
bool Intersect(const TBox2< T > &Other) const
Definition Box2D.h:599
bool bIsValid
Definition Box2D.h:42
bool Equals(const TBox2< T > &Other, T Tolerance=UE_KINDA_SMALL_NUMBER) const
Definition Box2D.h:119
TBox2< T > ExpandBy(const T W) const
Definition Box2D.h:239
TVector2< T > GetClosestPointTo(const TVector2< T > &Point) const
Definition Box2D.h:548
bool Serialize(FArchive &Ar)
Definition Box2D.h:441
T ComputeSquaredDistanceToPoint(const TVector2< T > &Point) const
Definition Box2D.h:207
const TVector2< T > & operator[](int32 Index) const
Definition Box2D.h:186
static TBox2< T > BuildAABB(const TVector2< T > &Origin, const TVector2< T > &Extent)
Definition Box2D.h:418
friend FArchive & operator<<(FArchive &Ar, TBox2< T > &Box)
Definition Box2D.h:435
TVector2< T > GetSize() const
Definition Box2D.h:317
TVector2< T > GetExtent() const
Definition Box2D.h:305
T FReal
Definition Box2D.h:33
bool IsInside(const TVector2< T > &TestPoint) const
Definition Box2D.h:353
TVector2< T > Min
Definition Box2D.h:36
TVector2< T > GetCenter() const
Definition Box2D.h:272
void GetCenterAndExtents(TVector2< T > ¢er, TVector2< T > &Extents) const
Definition Box2D.h:284
T Y
Definition Vector2D.h:52
T X
Definition Vector2D.h:49
T Y
Definition Vector.h:65
T X
Definition Vector.h:62