#include <ComposableCameraParameterBlock.h>
A single parameter value in a ParameterBlock. Type-erased storage using a byte array.
Public Attributes¶
| Return | Name | Description |
|---|---|---|
EComposableCameraPinType |
PinType |
The pin type of this value. |
TArray< uint8 > |
Data |
Raw bytes holding the value. Size depends on PinType. |
PinType¶
EComposableCameraPinType PinType =
The pin type of this value.
Data¶
TArray< uint8 > Data
Raw bytes holding the value. Size depends on PinType.
Public Methods¶
| Return | Name | Description |
|---|---|---|
void |
Set inline |
Set a typed value. |
bool |
Get const inline |
Get a typed value. Returns false on: |
Set¶
inline
template<typename T> inline void Set(EComposableCameraPinType InPinType, const T & Value)
Set a typed value.
Get¶
const inline
template<typename T> inline bool Get(T & OutValue) const
Get a typed value. Returns false on:
-
byte-size mismatch (
Data.Num() != sizeof(T)), -
PinType mismatch (e.g.
Get<float>on an Int32 entry — same size, wrong meaning), -
unsupported T (no PinType maps to this template parameter),
-
for UObject pointers, when the stored pointer fails
IsA<T>().
Strict validation rationale: the prior signature only checked Data.Num(), so any same-size cross-type read silently succeeded — Get<float> would read an int32 entry's bit pattern as a float, Get<UCurveFloat*> would return any UObject* cast to UCurveFloat* regardless of actual class. The runtime path is already guarded by CopyRawTo's PinType + size check; this validates the public C++ template entry point so manual callers cannot type-pun through it either.