5#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
34template <
int32 InNumLevels = 3,
int32 InLevelRatio = 4,
typename InItemIDType = u
int32>
84 return !(*
this == RHS);
194 const int32 Idx =
Items.AddUninitialized().Index;
249 if (
Items[Idx].ID == ID)
259 Items.RemoveAtUninitialized(Idx);
272 if (
Items[Idx].ID == ID)
282 Items.RemoveAtUninitialized(Idx);
341 template <
typename OutT>
383 template <
typename OutT>
434 if (
Cell->ChildItemCount > 0)
494 Result.MinX = FMath::Max(
Left.MinX,
Right.MinX);
495 Result.MinY = FMath::Max(
Left.MinY,
Right.MinY);
496 Result.MaxX = FMath::Min(
Left.MaxX,
Right.MaxX);
497 Result.MaxY = FMath::Min(
Left.MaxY,
Right.MaxY);
521 for (Location.Level = 0; Location.Level <
NumLevels; Location.Level++)
626 static_cast<int64>(std::numeric_limits<int32>::lowest()),
627 static_cast<int64>(std::numeric_limits<int32>::max())));
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define FVector
Definition IOSSystemIncludes.h:8
UE::Math::TBox< double > FBox
Definition MathFwd.h:55
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32 Size
Definition VulkanMemory.cpp:4034
Definition SetUtilities.h:95
Definition HierarchicalHashGrid2D.h:36
const TSet< FCell > & GetCells() const
Definition HierarchicalHashGrid2D.h:611
void QuerySmall(const FBox &Bounds, OutT &OutResults) const
Definition HierarchicalHashGrid2D.h:342
FCellLocation Add(const ItemIDType ID, const FBox &Bounds)
Definition HierarchicalHashGrid2D.h:180
void Add(const ItemIDType ID, const FCellLocation &Location)
Definition HierarchicalHashGrid2D.h:192
FCellLocation Move(const ItemIDType ID, const FCellLocation &OldLocation, const FBox &NewBounds)
Definition HierarchicalHashGrid2D.h:325
FCell & FindOrAddCell(const int X, const int Y, const int Level)
Definition HierarchicalHashGrid2D.h:562
void Initialize(const float InCellSize)
Definition HierarchicalHashGrid2D.h:147
FCellRect CalcQueryBounds(const FBox &Bounds, const int32 Level) const
Definition HierarchicalHashGrid2D.h:476
FBox CalcCellBounds(const FCellLocation &CellLocation) const
Definition HierarchicalHashGrid2D.h:548
int32 GetLevelItemCount(const int32 Level) const
Definition HierarchicalHashGrid2D.h:608
FCellRect IntersectRect(const FCellRect &Left, const FCellRect &Right) const
Definition HierarchicalHashGrid2D.h:491
int32 SpillList
Definition HierarchicalHashGrid2D.h:635
FCellLocation CalcCellLocation(const FBox &Bounds) const
Definition HierarchicalHashGrid2D.h:515
const FCell * FindCell(const int X, const int Y, const int Level) const
Definition HierarchicalHashGrid2D.h:594
float GetInvCellSize(const int32 Level) const
Definition HierarchicalHashGrid2D.h:605
const TSparseArray< FItem > & GetItems() const
Definition HierarchicalHashGrid2D.h:614
static const int32 LevelRatio
Definition HierarchicalHashGrid2D.h:41
static constexpr int32 ClampInt32(const int64 Value)
Definition HierarchicalHashGrid2D.h:622
TStaticArray< float, NumLevels > InvCellSize
Definition HierarchicalHashGrid2D.h:631
TSparseArray< FItem > Items
Definition HierarchicalHashGrid2D.h:634
TStaticArray< int32, NumLevels > LevelItemCount
Definition HierarchicalHashGrid2D.h:632
THierarchicalHashGrid2D(const float InCellSize=500.f)
Definition HierarchicalHashGrid2D.h:125
int32 GetFirstSpillListItem() const
Definition HierarchicalHashGrid2D.h:617
TSet< FCell > Cells
Definition HierarchicalHashGrid2D.h:633
FCell * FindCellMutable(const int X, const int Y, const int Level)
Definition HierarchicalHashGrid2D.h:581
float GetCellSize(const int32 Level) const
Definition HierarchicalHashGrid2D.h:602
FCellLocation Move(const ItemIDType ID, const FBox &OldBounds, const FBox &NewBounds)
Definition HierarchicalHashGrid2D.h:313
TStaticArray< float, NumLevels > CellSize
Definition HierarchicalHashGrid2D.h:630
void Query(const FBox &Bounds, OutT &OutResults) const
Definition HierarchicalHashGrid2D.h:384
void Remove(const ItemIDType ID, const FBox &OldBounds)
Definition HierarchicalHashGrid2D.h:231
InItemIDType ItemIDType
Definition HierarchicalHashGrid2D.h:39
void Reset()
Definition HierarchicalHashGrid2D.h:163
void Remove(const ItemIDType ID, const FCellLocation &OldLocation)
Definition HierarchicalHashGrid2D.h:241
static int32 LevelDown(int32 X)
Definition HierarchicalHashGrid2D.h:505
static const int32 NumLevels
Definition HierarchicalHashGrid2D.h:40
Definition SparseArray.h:524
Definition StaticArray.h:26
U16 Index
Definition radfft.cpp:71
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition LinuxPlatformSplash.cpp:43
Definition HierarchicalHashGrid2D.h:73
int32 X
Definition HierarchicalHashGrid2D.h:87
bool operator!=(const FCellLocation &RHS) const
Definition HierarchicalHashGrid2D.h:82
bool operator==(const FCellLocation &RHS) const
Definition HierarchicalHashGrid2D.h:77
FCellLocation(const int32 InX, const int32 InY, const int32 InLevel)
Definition HierarchicalHashGrid2D.h:75
int32 Y
Definition HierarchicalHashGrid2D.h:88
int32 Level
Definition HierarchicalHashGrid2D.h:89
Definition HierarchicalHashGrid2D.h:113
int64 X
Definition HierarchicalHashGrid2D.h:115
int32 Level
Definition HierarchicalHashGrid2D.h:117
FCellRect Rect
Definition HierarchicalHashGrid2D.h:118
int64 Y
Definition HierarchicalHashGrid2D.h:116
Definition HierarchicalHashGrid2D.h:101
int32 MinX
Definition HierarchicalHashGrid2D.h:105
int32 MaxY
Definition HierarchicalHashGrid2D.h:108
int32 MinY
Definition HierarchicalHashGrid2D.h:106
FCellRect(const int32 InMinX, const int32 InMinY, const int32 InMaxX, const int32 InMaxY)
Definition HierarchicalHashGrid2D.h:103
int32 MaxX
Definition HierarchicalHashGrid2D.h:107
Definition HierarchicalHashGrid2D.h:47
int32 Level
Definition HierarchicalHashGrid2D.h:51
FCell()
Definition HierarchicalHashGrid2D.h:48
int32 ChildItemCount
Definition HierarchicalHashGrid2D.h:53
int32 Y
Definition HierarchicalHashGrid2D.h:51
bool operator==(const FCell &RHS) const
Definition HierarchicalHashGrid2D.h:65
FCell(const int32 InX, const int32 InY, const int32 InLevel)
Definition HierarchicalHashGrid2D.h:49
int32 X
Definition HierarchicalHashGrid2D.h:51
friend uint32 GetTypeHash(const FCell &Cell)
Definition HierarchicalHashGrid2D.h:56
int32 First
Definition HierarchicalHashGrid2D.h:52
Definition HierarchicalHashGrid2D.h:94
ItemIDType ID
Definition HierarchicalHashGrid2D.h:95
int32 Next
Definition HierarchicalHashGrid2D.h:96
TVector< T > GetCenter() const
Definition Box.h:375
TVector< T > Min
Definition Box.h:39
TVector< T > Max
Definition Box.h:42
T Y
Definition Vector.h:65
double FReal
Definition Vector.h:55
T X
Definition Vector.h:62