Navigation
API > API/Plugins > API/Plugins/AnimNext > API/Plugins/AnimNext/DecoratorBase
References
| Module | AnimNext |
| Header | /Engine/Plugins/Experimental/AnimNext/Source/AnimNext/Public/DecoratorBase/LatentPropertyHandle.h |
| Include | #include "DecoratorBase/LatentPropertyHandle.h" |
Syntax
struct FLatentPropertyHandle
Remarks
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 decorator 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).
Constructors
| Type | Name | Description | |
|---|---|---|---|
| constexpr | Creates an invalid latent property handle. |
Functions
| Type | Name | Description | |
|---|---|---|---|
| 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 | |
| int32 | Returns the latent property RigVM index represented by this handle if valid, -1 otherwise. | ||
| uint32 | 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 | ||
| bool | IsIndexValid () |
Returns true if this latent property handle has a valid RigVM index, false otherwise. | |
| bool | Returns true if this latent property handle has a valid property offset, false otherwise. |
Constants
| Name | Description |
|---|---|
| HANDLE_CAN_FREEZE_MASK | A mask for the CanFreeze metadata flag in the packed value. |
| HANDLE_CAN_FREEZE_SHIFT_OFFSET | A shift offset for the CanFreeze metadata flag in the packed value. |
| HANDLE_INDEX_MASK | A mask for the RigVM index portion of the packed value. |
| INVALID_HANDLE_VALUE | Latent property handles are a 15 bit index and a 1 bit flag to denote if the property can freeze, ~0 is invalid. |
| INVALID_OFFSET_VALUE | Latent property offsets are relative to the start of the node instance data, 0 is invalid. |