22 inline bool IsEmpty()
const {
return NumItems == 0; }
26 inline bool IsDelta()
const {
return false; }
70template <
typename ElementType,
typename DeltaType>
104 for (
auto It =
Setup.
Delta.GetIterator(); It; ++It)
113 template <
typename InElementType>
140 for (
auto It =
Setup.
Delta.GetIterator(); It; ++It)
173 for (
auto It =
Setup.
Delta.GetIterator(); It; ++It)
193 template <
typename IndexRemapType>
196 static_assert(std::is_same_v<
decltype(
OutDataArray),
decltype(
Setup.
DeltaDataArray)>,
"The types should match or it won't be able to use MoveTemp properly");
206 if (bIsFull && IndexRemap.IsIdentity())
214 for (
auto It =
Setup.
Delta.GetIterator(); It; ++It)
216 int32 ItemIndex = It.GetItemIndex();
225 template <
typename ElementTransformFuncType,
typename IndexRemapType>
228 static_assert(std::is_same_v<
decltype(
OutDataArray),
decltype(
Setup.
DeltaDataArray)>,
"The types should match or it won't be able to use MoveTemp properly");
237 if (bIsFull && IndexRemap.IsIdentity())
253 for (
auto It =
Setup.
Delta.GetIterator(); It; ++It)
255 int32 ItemIndex = It.GetItemIndex();
321 template <FInstanceAttributeTracker::EFlag Flag>
341 template <FInstanceAttributeTracker::EFlag DeltaFlag,
typename ElementType>
348 template <
typename ElementType>
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition InstanceUpdateChangeSet.h:16
bool IsEmpty() const
Definition InstanceUpdateChangeSet.h:22
int32 GetNumItems() const
Definition InstanceUpdateChangeSet.h:31
FIdentityDeltaRange(int32 InNum)
Definition InstanceUpdateChangeSet.h:18
FConstIterator GetIterator() const
Definition InstanceUpdateChangeSet.h:61
bool IsDelta() const
Definition InstanceUpdateChangeSet.h:26
Definition InstanceAttributeTracker.h:416
Definition InstanceAttributeTracker.h:67
FDeltaRange< Flag > GetDeltaRange(bool bForceFullUpdate, int32 InNumItems) const
Definition InstanceAttributeTracker.h:530
Definition InstanceUpdateChangeSet.h:298
auto GetTransformReader()
Definition InstanceUpdateChangeSet.h:371
ENGINE_API void SetSharedLocalBounds(const FRenderBounds &Bounds)
Definition InstanceUpdateChangeSet.cpp:62
FVector PrimitiveWorldSpaceOffset
Definition InstanceUpdateChangeSet.h:433
TArray< FRenderTransform > PrevTransforms
Definition InstanceUpdateChangeSet.h:417
FInstanceDataFlags Flags
Definition InstanceUpdateChangeSet.h:402
FInstanceUpdateChangeSet(bool bInNeedFullUpdate, FInstanceAttributeTracker &&InInstanceAttributeTracker, int32 InNumSourceInstances)
Definition InstanceUpdateChangeSet.h:314
int32 MaxInstanceId
Definition InstanceUpdateChangeSet.h:437
auto GetCustomDataReader()
Definition InstanceUpdateChangeSet.h:373
TArray< FRenderTransform > Transforms
Definition InstanceUpdateChangeSet.h:416
auto GetLocalBoundsSetup()
Definition InstanceUpdateChangeSet.h:361
auto GetSkinningDataWriter()
Definition InstanceUpdateChangeSet.h:369
auto GetCustomDataWriter()
Definition InstanceUpdateChangeSet.h:367
FInstanceAttributeTracker::FDeltaRange< Flag > GetDelta(bool bForceEmpty, bool bForceFull=false) const
Definition InstanceUpdateChangeSet.h:322
auto GetTransformSetup()
Definition InstanceUpdateChangeSet.h:357
auto GetLocalBoundsWriter()
Definition InstanceUpdateChangeSet.h:368
auto GetLocalBoundsReader()
Definition InstanceUpdateChangeSet.h:374
int32 NumCustomDataFloats
Definition InstanceUpdateChangeSet.h:415
TFunction< void(TArray< float > &InstanceRandomIDs)> GeneratePerInstanceRandomIds
Definition InstanceUpdateChangeSet.h:430
bool bIdentityIdMap
Definition InstanceUpdateChangeSet.h:412
bool bNeedFullUpdate
Definition InstanceUpdateChangeSet.h:396
FInstanceAttributeTracker::FDeltaRange< FInstanceAttributeTracker::EFlag::TransformChanged > GetTransformDelta() const
Definition InstanceUpdateChangeSet.h:331
auto GetSkinningDataSetup()
Definition InstanceUpdateChangeSet.h:362
auto GetTransformWriter()
Definition InstanceUpdateChangeSet.h:365
auto GetPrevTransformWriter()
Definition InstanceUpdateChangeSet.h:366
TArray< FVector4f > InstanceLightShadowUVBias
Definition InstanceUpdateChangeSet.h:420
TArray< float > PerInstanceCustomData
Definition InstanceUpdateChangeSet.h:418
auto GetPrevTransformSetup()
Definition InstanceUpdateChangeSet.h:358
float AbsMaxDisplacement
Definition InstanceUpdateChangeSet.h:435
auto GetPrevTransformReader()
Definition InstanceUpdateChangeSet.h:372
auto GetCustomDataSetup()
Definition InstanceUpdateChangeSet.h:359
bool IsFullUpdate() const
Definition InstanceUpdateChangeSet.h:390
FInstanceUpdateChangeSet(int32 InNumSourceInstances, FInstanceDataFlags InFlags)
Definition InstanceUpdateChangeSet.h:303
int32 NumSourceInstances
Definition InstanceUpdateChangeSet.h:436
TOptional< FRenderTransform > PreviousPrimitiveToRelativeWorld
Definition InstanceUpdateChangeSet.h:434
TDeltaSetup< ElementType, FInstanceAttributeTracker::FDeltaRange< DeltaFlag > > GetSetup(bool bEnabledFlag, bool bForceFullFlag, TArray< ElementType > &DataArray, int32 ElementStride=1)
Definition InstanceUpdateChangeSet.h:342
FRenderTransform PrimitiveToRelativeWorld
Definition InstanceUpdateChangeSet.h:432
TArray< FPrimitiveInstanceId > IndexToIdMapDeltaData
Definition InstanceUpdateChangeSet.h:413
auto GetLightShadowUVBiasReader()
Definition InstanceUpdateChangeSet.h:377
FInstanceAttributeTracker::FDeltaRange< FInstanceAttributeTracker::EFlag::IndexChanged > GetIndexChangedDelta() const
Definition InstanceUpdateChangeSet.h:336
bool bUpdateAllInstanceTransforms
Definition InstanceUpdateChangeSet.h:411
FInstanceDataFlags ForceFullFlags
Definition InstanceUpdateChangeSet.h:408
auto GetSkinningDataReader()
Definition InstanceUpdateChangeSet.h:375
FInstanceAttributeTracker InstanceAttributeTracker
Definition InstanceUpdateChangeSet.h:395
TArray< FRenderBounds > InstanceLocalBounds
Definition InstanceUpdateChangeSet.h:421
TArray< uint32 > InstanceSkinningData
Definition InstanceUpdateChangeSet.h:419
TDeltaSetup< ElementType, FIdentityDeltaRange > GetSetup(bool bEnabledFlag, TArray< ElementType > &DataArray, int32 ElementStride=1)
Definition InstanceUpdateChangeSet.h:349
FPrecomputedInstanceSpatialHashDataPtr PrecomputedOptimizationData
Definition InstanceUpdateChangeSet.h:444
Definition InstanceUpdateChangeSet.h:284
TArray< int32 > ProxyIndexToComponentIndexRemap
Definition InstanceUpdateChangeSet.h:287
TArray< FInstanceSceneDataBuffers::FCompressedSpatialHashItem > Hashes
Definition InstanceUpdateChangeSet.h:286
Definition HitProxies.h:135
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
void Init(const ElementType &Element, SizeType Number)
Definition Array.h:3043
void Append(const TArray< OtherElementType, OtherAllocatorType > &Source)
Definition Array.h:2412
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
Definition RefCounting.h:454
U16 Index
Definition radfft.cpp:71
Definition InstanceUpdateChangeSet.h:36
int32 MaxNum
Definition InstanceUpdateChangeSet.h:38
FConstIterator(int32 InIndex, int32 InMaxNum)
Definition InstanceUpdateChangeSet.h:40
int32 GetItemIndex() const
Definition InstanceUpdateChangeSet.h:56
void operator++()
Definition InstanceUpdateChangeSet.h:46
int32 ItemIndex
Definition InstanceUpdateChangeSet.h:37
int32 GetIndex() const
Definition InstanceUpdateChangeSet.h:51
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
Definition RenderTransform.h:272
Definition InstanceUpdateChangeSet.h:190
void Scatter(TArray< ElementType > &OutDataArray, const IndexRemapType &IndexRemap)
Definition InstanceUpdateChangeSet.h:194
TDeltaSetup Setup
Definition InstanceUpdateChangeSet.h:191
void Scatter(TArray< ElementType > &OutDataArray, ElementTransformFuncType ElementTransformFunc, const IndexRemapType &IndexRemap)
Definition InstanceUpdateChangeSet.h:226
Definition InstanceUpdateChangeSet.h:87
void Gather(const TArrayView< InElementType > SourceData, int32 InElementStride=1)
Definition InstanceUpdateChangeSet.h:114
void Gather(const FElement &SingleSourceElement)
Definition InstanceUpdateChangeSet.h:149
void Gather(TFunctionRef< FElement(int32)> DataSourceFunc)
Definition InstanceUpdateChangeSet.h:90
TDeltaSetup Setup
Definition InstanceUpdateChangeSet.h:88
Definition InstanceUpdateChangeSet.h:72
ElementType FElement
Definition InstanceUpdateChangeSet.h:73
bool bIsEnabled
Definition InstanceUpdateChangeSet.h:79
FDelta Delta
Definition InstanceUpdateChangeSet.h:77
FWriter GetWriter()
Definition InstanceUpdateChangeSet.h:273
TArray< FElement > & DeltaDataArray
Definition InstanceUpdateChangeSet.h:76
int32 NumInstances
Definition InstanceUpdateChangeSet.h:80
FReader GetReader()
Definition InstanceUpdateChangeSet.h:267
DeltaType FDelta
Definition InstanceUpdateChangeSet.h:74
int32 ElementStride
Definition InstanceUpdateChangeSet.h:78
Definition Optional.h:131
Definition InstanceDataTypes.h:36
uint16 bHasPerInstanceDynamicData
Definition InstanceDataTypes.h:42
uint16 bHasPerInstanceLocalBounds
Definition InstanceDataTypes.h:45
uint16 bHasPerInstanceLMSMUVBias
Definition InstanceDataTypes.h:44
uint16 bHasPerInstanceCustomData
Definition InstanceDataTypes.h:41
uint16 bHasPerInstanceEditorData
Definition InstanceDataTypes.h:49
uint16 bHasPerInstanceSkinningData
Definition InstanceDataTypes.h:43