4#include "Containers/Array.h"
5#include "Algo/BinarySearch.h"
20 : bIsActive(bActive ? 1 : 0)
26 return !!bIsActive && Offset > 0;
36 bIsActive = bActivate;
45 template<
typename TItemsType>
94 UE_DEPRECATED(5.6,
"This method has been deprecated as the underlying type of Ranges has changed. Use GetAllRanges instead.")
113 template <
class TItemsType>
116 const int32 Offset = Ranges.
Num() ? Ranges.Last().GetOffset() : 0;
120 Ranges.Emplace(
Size, bActivate);
125 template <
class TItemsType>
133 template <
class TItemsType>
137 Ranges[
Index].SetActive(bActivate);
140 template <
class TItemsType>
146 if (Range.IsActive())
154 Offset = Range.GetOffset();
158 template <
class TItemsType>
164 if (Range.IsActive())
167 const int32 RangeSize = Range.GetOffset() -
Offset;
173 Offset = Range.GetOffset();
177 template <
class TItemsType>
184 const int32 Offset = ActiveRanges[RangeIndex][0];
185 const int32 RangeSize = ActiveRanges[RangeIndex][1] - Offset;
186 PhysicsParallelFor(RangeSize, [this, Offset, &Function](int32 Index)
188 Function(Items, Offset + Index);
193 template <
class TItemsType>
199 if (Range.IsActive())
204 Offset = Range.GetOffset();
208 template <
class TItemsType>
215 const TVector<int32, 2>& ActiveRange = ActiveRanges[RangeIndex];
216 const int32 Offset = ActiveRange[0];
217 const int32 Range = ActiveRange[1];
218 Function(Items, Offset, Range);
222 template <
class TItemsType>
229 Ranges.SetNum(
Index);
235 template <
class TItemsType>
240 if (Range.IsActive())
248 template <
class TItemsType>
255 if (Range.IsActive())
259 Offset = Range.GetOffset();
264 template <
class TItemsType>
272 if (Range.IsActive())
276 Offset = Range.GetOffset();
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
Definition PBDActiveView.h:12
void SetActive(bool bActivate)
Definition PBDActiveView.h:34
FActiveViewRange(int32 InOffset, bool bActive=false)
Definition PBDActiveView.h:19
FActiveViewRange()
Definition PBDActiveView.h:14
int32 GetOffset() const
Definition PBDActiveView.h:29
bool IsActive() const
Definition PBDActiveView.h:24
Definition PBDActiveView.h:47
TConstArrayView< FActiveViewRange > GetAllRanges() const
Definition PBDActiveView.h:93
int32 AddRange(int32 NumItems, bool bActivate=true)
Definition PBDActiveView.h:114
void Reset(int32 Offset=0)
Definition PBDActiveView.h:223
int32 GetActiveSize() const
Definition PBDActiveView.h:249
void ParallelFor(TFunctionRef< void(TItemsType &, int32)> Function, bool bForceSingleThreadedRange, int32 MinParallelSize=TNumericLimits< int32 >::Max()) const
Definition PBDActiveView.h:178
void RangeFor(TFunctionRef< void(TItemsType &, int32, int32)> Function) const
Definition PBDActiveView.h:194
TArray< TVector< int32, 2 >, TInlineAllocator< 8 > > GetActiveRanges() const
Definition PBDActiveView.h:265
int32 GetNumRanges() const
Definition PBDActiveView.h:97
void ParallelFor(TFunctionRef< void(TItemsType &, int32)> Function, int32 MinParallelSize=TNumericLimits< int32 >::Max()) const
Definition PBDActiveView.h:159
TItemsType & GetItems() const
Definition PBDActiveView.h:54
int32 GetRangeSize(int32 Offset) const
Definition PBDActiveView.h:126
TPBDActiveView(TItemsType &InItems)
Definition PBDActiveView.h:49
bool HasActiveRange() const
Definition PBDActiveView.h:236
void RangeFor(TFunctionRef< void(TItemsType &, int32, int32)> Function, bool bForceSingleThreadedRange) const
Definition PBDActiveView.h:209
void SequentialFor(TFunctionRef< void(TItemsType &, int32)> Function) const
Definition PBDActiveView.h:141
void ActivateRange(int32 Offset, bool bActivate)
Definition PBDActiveView.h:134
TConstArrayView< int32 > GetRanges() const
Definition PBDActiveView.h:95
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition AssetRegistryState.h:50
Definition ContainerAllocationPolicies.h:894
UE_REWRITE auto UpperBound(const RangeType &Range, const ValueType &Value, SortPredicateType SortPredicate) -> decltype(GetNum(Range))
Definition BinarySearch.h:133
Definition SkeletalMeshComponent.h:307
void CHAOS_API PhysicsParallelFor(int32 InNum, TFunctionRef< void(int32)> InCallable, bool bForceSingleThreaded=false)
Definition Parallel.cpp:55
U16 Index
Definition radfft.cpp:71
Definition NumericLimits.h:41