#include <ComposableCameraCameraNodeBase.h>

Cached description of a single pin ↔ UPROPERTY binding on a camera node class.

Produced once per concrete UClass by UComposableCameraCameraNodeBase::GetOrBuildPinBindings() and reused by every instance of that class to resolve declared input pins without per-frame reflection. Bindings are indexed by raw byte offset into the node UObject, not by FProperty*, so the hot path is a straight pointer + switch.

Only top-level pins matched to a top-level UPROPERTY on the node are recorded here. Subobject property pins (compound "Subobject.Field" names) are still handled by ApplySubobjectPinValues and are NOT included.

Public Attributes

Return Name Description
FName PinName Pin name as declared in GetPinDeclarations and matched against a UPROPERTY FName.
EComposableCameraPinType PinType Pin type for typed dispatch at resolve time.
UScriptStruct * StructType For PinType == Struct: the specific USTRUCT type. Ignored otherwise.
TWeakObjectPtr< UEnum > EnumType For PinType == Enum: the specific UEnum the pin represents. Ignored otherwise. The data block stores the value as a normalized int64; we use the backing FProperty (by offset) to narrow-cast into the actual storage width (uint8 / int32 / int64) at write time. Held as a weak ref so we don't keep the enum alive via a non-UPROPERTY cache.
const FProperty * BackingProperty For PinType == Enum: the backing FProperty, captured when the binding table is built. Used to narrow-cast the int64 value from the data block into the property's actual underlying width. nullptr for non-Enum pins.
int32 FieldOffset Byte offset of the backing UPROPERTY into the node UObject (via FProperty::GetOffset_ForInternal).

PinName

FName PinName

Pin name as declared in GetPinDeclarations and matched against a UPROPERTY FName.


PinType

EComposableCameraPinType PinType = 

Pin type for typed dispatch at resolve time.


StructType

UScriptStruct * StructType = nullptr

For PinType == Struct: the specific USTRUCT type. Ignored otherwise.


EnumType

TWeakObjectPtr< UEnum > EnumType

For PinType == Enum: the specific UEnum the pin represents. Ignored otherwise. The data block stores the value as a normalized int64; we use the backing FProperty (by offset) to narrow-cast into the actual storage width (uint8 / int32 / int64) at write time. Held as a weak ref so we don't keep the enum alive via a non-UPROPERTY cache.


BackingProperty

const FProperty * BackingProperty = nullptr

For PinType == Enum: the backing FProperty, captured when the binding table is built. Used to narrow-cast the int64 value from the data block into the property's actual underlying width. nullptr for non-Enum pins.


FieldOffset

int32 FieldOffset = 0

Byte offset of the backing UPROPERTY into the node UObject (via FProperty::GetOffset_ForInternal).