24 FReal CellIndex = Coordinate * DirtyElementGridCellSizeInv;
68 template <
typename T,
typename FunctionType>
91 template <
typename T,
typename FunctionType>
134 int32 TestIndex = (EndIndex + StartIndex) / 2;
141 if (StartIndex == EndIndex)
152 if (StartIndex == TestIndex)
163 int32 TestIndex = (EndIndex + StartIndex) / 2;
170 if (StartIndex == EndIndex)
172 return FindValue >
TestValue ? StartIndex + 1 : StartIndex;
181 if (StartIndex == TestIndex)
258 template <
typename FunctionType>
441 template <
typename FunctionType>
477 DoForSweepIntersectCellsImp(
QueryHalfExtents.Y,
QueryHalfExtents.X, StartPoint.Y, StartPoint.X, Dir.Y *
Length, Dir.X *
Length, DirtyElementGridCellSize, DirtyElementGridCellSizeInv, [&](
auto X,
auto Y) {InFunction(Y, X); });
515 template <
typename FunctionType>
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define FORCEINLINE_DEBUGGABLE
Definition CoreMiscDefines.h:74
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
FORCEINLINE const TVector< T, d > & Max() const
Definition AABB.h:596
FORCEINLINE const TVector< T, d > & Min() const
Definition AABB.h:595
Definition SkeletalMeshComponent.h:307
FORCEINLINE_DEBUGGABLE bool TooManyRaycastQueryCells(const FVec3 &StartPoint, const FVec3 &Dir, const FReal Length, FReal DirtyElementGridCellSizeInv, int32 DirtyElementMaxGridCellQueryCount)
Definition AABBTreeDirtyGridUtils.h:483
FORCEINLINE_DEBUGGABLE int32 HashCell(int64 XCell, int64 YCell)
Definition AABBTreeDirtyGridUtils.h:31
FORCEINLINE_DEBUGGABLE bool DoForOverlappedCells(const TAABB< T, 3 > &AABB, FReal DirtyElementGridCellSize, FReal DirtyElementGridCellSizeInv, FunctionType Function)
Definition AABBTreeDirtyGridUtils.h:69
FORCEINLINE_DEBUGGABLE void DoForSweepIntersectCellsImp(const FReal QueryHalfExtentsX, const FReal QueryHalfExtentsY, const FReal StartPointX, const FReal StartPointY, const FReal RayX, const FReal RayY, FReal DirtyElementGridCellSize, FReal DirtyElementGridCellSizeInv, FunctionType InFunction)
Definition AABBTreeDirtyGridUtils.h:259
FORCEINLINE_DEBUGGABLE int64 GetDirtyCellIndexFromWorldCoordinate(FReal Coordinate, FReal DirtyElementGridCellSizeInv)
Definition AABBTreeDirtyGridUtils.h:22
@ Y
Definition SimulationModuleBase.h:153
@ X
Definition SimulationModuleBase.h:152
FORCEINLINE_DEBUGGABLE int32 FindInSortedArray(const TArray< int32 > &Array, int32 FindValue, int32 StartIndex, int32 EndIndex)
Definition AABBTreeDirtyGridUtils.h:132
FRealDouble FReal
Definition Real.h:22
FORCEINLINE_DEBUGGABLE bool DeleteValueFromSortedSubArray(TArray< int32 > &Array, int32 Value, int32 StartIndex, int32 Count)
Definition AABBTreeDirtyGridUtils.h:223
FORCEINLINE_DEBUGGABLE void DoForRaycastIntersectCells(const FVec3 &StartPoint, const FVec3 &Dir, FReal Length, FReal DirtyElementGridCellSize, FReal DirtyElementGridCellSizeInv, FunctionType InFunction)
Definition AABBTreeDirtyGridUtils.h:516
FORCEINLINE_DEBUGGABLE int32 FindInsertIndexIntoSortedArray(const TArray< int32 > &Array, int32 FindValue, int32 StartIndex, int32 EndIndex)
Definition AABBTreeDirtyGridUtils.h:161
FORCEINLINE_DEBUGGABLE bool TooManySweepQueryCells(const TVec3< FReal > &QueryHalfExtents, const FVec3 &StartPoint, const FVec3 &Dir, FReal Length, FReal DirtyElementGridCellSizeInv, int32 DirtyElementMaxGridCellQueryCount)
Definition AABBTreeDirtyGridUtils.h:241
FORCEINLINE_DEBUGGABLE int32 HashCoordinates(FReal Xcoordinate, FReal Ycoordinate, FReal DirtyElementGridCellSizeInv)
Definition AABBTreeDirtyGridUtils.h:36
FORCEINLINE_DEBUGGABLE bool TooManyOverlapQueryCells(const TAABB< T, 3 > &AABB, FReal DirtyElementGridCellSizeInv, int32 MaximumOverlap)
Definition AABBTreeDirtyGridUtils.h:46
FORCEINLINE_DEBUGGABLE bool InsertValueIntoSortedSubArray(TArray< int32 > &Array, int32 Value, int32 StartIndex, int32 Count)
Definition AABBTreeDirtyGridUtils.h:192
FORCEINLINE_DEBUGGABLE bool DoForOverlappedCellsExclude(const TAABB< T, 3 > &AABB, const TAABB< T, 3 > &AABBExclude, FReal DirtyElementGridCellSize, FReal DirtyElementGridCellSizeInv, FunctionType Function)
Definition AABBTreeDirtyGridUtils.h:92
FORCEINLINE_DEBUGGABLE uint32 InterleaveWithZeros(uint16 input)
Definition AABBTreeDirtyGridUtils.h:12
void DoForSweepIntersectCells(const FVec3 QueryHalfExtents, const FVec3 &StartPoint, const FVec3 &Dir, FReal Length, FReal DirtyElementGridCellSize, FReal DirtyElementGridCellSizeInv, FunctionType InFunction)
Definition AABBTreeDirtyGridUtils.h:442
U16 Index
Definition radfft.cpp:71
static UE_FORCEINLINE_HINT float Floor(float F)
Definition UnrealMathUtility.h:525
Definition NumericLimits.h:41