![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <InstanceAttributeTracker.h>
Classes | |
| class | FAnyValidIterator |
| class | FDeltaRange |
| struct | FToBit |
Public Types | |
| enum class | EFlag : ElementType { Added , TransformChanged , CustomDataChanged , IndexChanged , Num } |
| using | ElementType = uint32 |
| using | FBitManip = UE::InstanceAttributeTracker::Implementation::FBitManip< ElementType > |
Public Member Functions | |
| FInstanceAttributeTracker () | |
| FInstanceAttributeTracker (FInstanceAttributeTracker &&Other) | |
| void | operator= (FInstanceAttributeTracker &&Other) |
| void | Reset () |
| TConstSetBitIterator | GetRemovedIterator () const |
| void | MarkRemoved (FPrimitiveInstanceId Id) |
| void | RemoveAtSwap (FPrimitiveInstanceId Id, int32 Index, int32 MaxInstanceIndex) |
| void | RemoveAt (FPrimitiveInstanceId Id, int32 Index, int32 MaxInstanceIndex) |
| template<EFlag Flag> | |
| void | MarkIndex (int32 Index, int32 MaxInstanceIndex) |
| ElementType | GetFlags (int32 Index) const |
| template<EFlag Flag> | |
| bool | TestFlag (int32 Index) const |
| void | SetNum (int32 InstanceIndexMax) |
| template<uint32 Mask = AnyFlagMask> | |
| FAnyValidIterator< Mask > | GetChangedIterator () const |
| void | Validate () const |
| template<EFlag Flag> | |
| FDeltaRange< Flag > | GetDeltaRange (bool bForceFullUpdate, int32 InNumItems) const |
| bool | HasAnyChanges () const |
| SIZE_T | GetAllocatedSize () const |
Static Public Member Functions | |
| static void | Move (FInstanceAttributeTracker &Dest, FInstanceAttributeTracker &Source) |
Static Public Attributes | |
| static constexpr uint32 | BitsPerElement = sizeof(ElementType) * 8u |
| static constexpr int32 | MasksPerElement = BitsPerElement / uint32(EFlag::Num) |
| static constexpr ElementType | AnyFlagMask = (ElementType(1U) << uint32(EFlag::Num)) - ElementType(1U) |
Tracks changes for instances, but that assumes storing stuff per index except the removed status which must be kept ID-based Removed items are tracked by ID and kept separate as we need to remember if an item was ever removed in order to handle these correctly. Designed to use move semantics to clear the state and transfer to the updating worker task.
| using FInstanceAttributeTracker::FBitManip = UE::InstanceAttributeTracker::Implementation::FBitManip<ElementType> |
|
strong |
| FInstanceAttributeTracker::FInstanceAttributeTracker | ( | ) |
| FInstanceAttributeTracker::FInstanceAttributeTracker | ( | FInstanceAttributeTracker && | Other | ) |
|
inline |
|
inline |
|
inline |
|
inline |
Get the masked flags for a given index.
| TConstSetBitIterator FInstanceAttributeTracker::GetRemovedIterator | ( | ) | const |
Get an iterator that iterates over the IDs (note, not index as they don't exist any more) of removed instances. The remove flag is not cleared when a new instances is added.
|
inline |
|
inline |
|
inline |
Lazy allocate bits in the bit vector tracking removed instances and set the flag for the instance ID. Also updates the FirstRemovedIdIndex, such that we can start iteration from that bit.
|
static |
| void FInstanceAttributeTracker::operator= | ( | FInstanceAttributeTracker && | Other | ) |
|
inline |
Mark removed & update the tracked bits (remove & move operation) Note: this is not something that should be used really as it forces the tracker to touch all the masks after the removed item...
|
inline |
Mark removed & update the tracked bits (remove & swap operation)
| void FInstanceAttributeTracker::Reset | ( | ) |
Test a specific flag at a given index.
|
inline |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |