Navigation
API > API/Plugins > API/Plugins/UAFAnimGraph
Latent Property Handle A latent property handle represents:
- A 1-based index into the RigVM memory handles array during execution
- A flag that specifies if the latent property should always update or if it supports freezing
- A node instance local offset to the cached latent property value
A latent property can be in one of 3 states:
- Invalid (property is inline and not latent)
- Latent and Cached (property is latent and is cached at some offset)
- Cached Only (property is not latent but is cached at some offset)
The Cached Only state can occur if a base trait has duplicate entries within its property handles. Duplicate entries would have the same RigVM index but different offsets and thus evaluate it repeatedly. To avoid the waste of cycles and space, subsequent properties are marked as Cached Only with the same offset as the first property that is Latent and Cached (it will update the cached location).
| Name | FLatentPropertyHandle |
| Type | struct |
| Header File | /Engine/Plugins/Experimental/UAF/UAFAnimGraph/Source/UAFAnimGraph/Public/TraitCore/LatentPropertyHandle.h |
| Include Path | #include "TraitCore/LatentPropertyHandle.h" |
Syntax
struct FLatentPropertyHandle
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
constexpr FLatentPropertyHandle () |
Creates an invalid latent property handle. | TraitCore/LatentPropertyHandle.h | |
FLatentPropertyHandle
(
uint16 InRigRMIndex, |
Constructs a FLatentPropertyHandle instance. | TraitCore/LatentPropertyHandle.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| HANDLE_CAN_FREEZE_MASK | uint16 | A mask for the CanFreeze metadata flag in the packed value. | TraitCore/LatentPropertyHandle.h |
| HANDLE_CAN_FREEZE_SHIFT_OFFSET | uint16 | A shift offset for the CanFreeze metadata flag in the packed value. | TraitCore/LatentPropertyHandle.h |
| HANDLE_INDEX_MASK | uint16 | A mask for the RigVM index portion of the packed value. | TraitCore/LatentPropertyHandle.h |
| HANDLE_ON_BECOME_RELEVANT_MASK | uint16 | TraitCore/LatentPropertyHandle.h | |
| HANDLE_ON_BECOME_RELEVANT_SHIFT_OFFSET | uint16 | TraitCore/LatentPropertyHandle.h | |
| INVALID_HANDLE_VALUE | uint16 | Latent property handles are a 15 bit index and a 1 bit flag to denote if the property can freeze, ~0 is invalid. | TraitCore/LatentPropertyHandle.h |
| INVALID_OFFSET_VALUE | uint16 | Latent property offsets are relative to the start of the node instance data, 0 is invalid. | TraitCore/LatentPropertyHandle.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| FTraitReader | friend | TraitCore/LatentPropertyHandle.h | ||
| OffsetValue | uint16 | An offset relative to the start of the node instance where the latent property is cached. | TraitCore/LatentPropertyHandle.h | |
| PackedIndexCanFreezeValue | uint16 | A packed RigVM index and metadata flag for whether or not this property can be frozen. | TraitCore/LatentPropertyHandle.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool CanFreeze() |
Returns whether or not the latent property supports freezing during snapshots Latent properties that do not support freezing always update in a snapshot | TraitCore/LatentPropertyHandle.h | |
int32 GetLatentPropertyIndex() |
Returns the latent property RigVM index represented by this handle if valid, -1 otherwise. | TraitCore/LatentPropertyHandle.h | |
uint32 GetLatentPropertyOffset() |
Returns the latent property offset represented by this handle if valid, 0 otherwise This offset is relative to the start of the node instance data | TraitCore/LatentPropertyHandle.h | |
bool IsIndexValid() |
Returns true if this latent property handle has a valid RigVM index, false otherwise. | TraitCore/LatentPropertyHandle.h | |
bool IsOffsetValid() |
Returns true if this latent property handle has a valid property offset, false otherwise. | TraitCore/LatentPropertyHandle.h | |
bool OnBecomeRelevant() |
Returns whether or not the latent property evaluates only on become relevant. | TraitCore/LatentPropertyHandle.h |