Functions
DECLARE_DELEGATE_RetVal¶
DECLARE_DELEGATE_RetVal(bool, FGetIsSimulatingInEditor)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam¶
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnTickFloatCurve, float, Value)
DECLARE_DYNAMIC_MULTICAST_DELEGATE¶
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnCompleteFloatCurve)
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam¶
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnTickVectorCurve, FVector, Value)
DECLARE_DYNAMIC_MULTICAST_DELEGATE¶
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnCompleteVectorCurve)
DECLARE_MULTICAST_DELEGATE_ThreeParams¶
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnPreTick, float, const FComposableCameraPose &, FComposableCameraPose &)
Called before any internal node is executed.
DECLARE_MULTICAST_DELEGATE_ThreeParams¶
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnPostTick, float, const FComposableCameraPose &, FComposableCameraPose &)
Called after all internal nodes are executed.
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams¶
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnActionPreTick, float, DeltaTime, const FComposableCameraPose &, CurrentCameraPose, FComposableCameraPose &, OutputPose)
Called before any internal node is executed for camera actions.
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams¶
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnActionPostTick, float, DeltaTime, const FComposableCameraPose &, CurrentCameraPose, FComposableCameraPose &, OutputPose)
Called after all internal nodes are executed for camera actions.
DECLARE_DYNAMIC_DELEGATE_OneParam¶
DECLARE_DYNAMIC_DELEGATE_OneParam(FOnCameraFinishConstructed, AComposableCameraCameraBase *, Camera)
Called when the camera finishes constructed, before BeginPlay is called.
DECLARE_LOG_CATEGORY_EXTERN¶
DECLARE_LOG_CATEGORY_EXTERN(LogComposableCameraSystem, Log, All)
TryMapPropertyToPinType¶
inline bool TryMapPropertyToPinType(const FProperty * Property, EComposableCameraPinType & OutPinType, UScriptStruct *& OutStructType, UEnum *& OutEnumType, UFunction ** OutSignatureFunction)
Attempt to map an FProperty (from UClass reflection) to an EComposableCameraPinType.
Returns true if the property type has a direct pin-type mapping. Returns false for unsupported types (arrays, maps, sets, Instanced object properties, FString, etc.).
For Enum-typed properties (FEnumProperty for enum class, or FByteProperty whose IntPropertyEnum is set), OutEnumType receives the backing UEnum. For Struct-typed properties that aren't one of the hard-coded math types, OutStructType receives the specific UScriptStruct. Both are cleared on entry.
Used by DeclareSubobjectPins to auto-discover exposable sub-properties of an Instanced UObject, and by ApplySubobjectPinValues to dispatch typed reads.
GetPinTypeSize¶
inline int32 GetPinTypeSize(EComposableCameraPinType PinType, UScriptStruct * StructType)
Returns the size in bytes of a given pin type. For Struct types, returns 0 — caller must query StructType->GetStructureSize().
GetPinTypeAlignment¶
inline int32 GetPinTypeAlignment(EComposableCameraPinType PinType, UScriptStruct * StructType)
Returns the alignment requirement of a given pin type.
DECLARE_MULTICAST_DELEGATE¶
DECLARE_MULTICAST_DELEGATE(FOnTransitionFinishes)
DECLARE_DYNAMIC_DELEGATE_RetVal¶
DECLARE_DYNAMIC_DELEGATE_RetVal(TArray< float >, FOnReceiveMixingCameraWeights)
ComposableCameraDebug¶
Namespace for debug formatting utilities used by both the ShowDebug HUD (runtime) and the editor debug overlay (WITH_EDITOR).
All functions allocate FStrings — they are intended for debug display, not hot-path evaluation.
Functions¶
| Return | Name | Description |
|---|---|---|
FString |
FormatFloat inline |
Format a float to a compact display string. |
FString |
FormatVector inline |
Format an FVector to a compact display string. |
FString |
FormatRotator inline |
Format an FRotator to a compact display string. |
FString |
FormatTransform inline |
Format an FTransform to a compact display string. |
FString |
FormatTypedValue inline |
Read a typed value at a known byte offset from the data block and format as string. EnumType is consulted only when PinType == Enum; when supplied, the int64 slot is formatted as the corresponding entry name (e.g. "EMyEnum::Alpha"). When omitted for an Enum slot the raw int64 value is printed instead — debug-only fallback. |
FString |
FormatOutputPinValue inline |
Read a typed output pin value from the data block and format as string. |
FormatFloat¶
inline
inline FString FormatFloat(double Value)
Format a float to a compact display string.
FormatVector¶
inline
inline FString FormatVector(const FVector & V)
Format an FVector to a compact display string.
FormatRotator¶
inline
inline FString FormatRotator(const FRotator & R)
Format an FRotator to a compact display string.
FormatTransform¶
inline
inline FString FormatTransform(const FTransform & T)
Format an FTransform to a compact display string.
FormatTypedValue¶
inline
inline FString FormatTypedValue(const FComposableCameraRuntimeDataBlock & DataBlock, int32 Offset, EComposableCameraPinType PinType, const UEnum * EnumType)
Read a typed value at a known byte offset from the data block and format as string. EnumType is consulted only when PinType == Enum; when supplied, the int64 slot is formatted as the corresponding entry name (e.g. "EMyEnum::Alpha"). When omitted for an Enum slot the raw int64 value is printed instead — debug-only fallback.
FormatOutputPinValue¶
inline
inline FString FormatOutputPinValue(const FComposableCameraRuntimeDataBlock & DataBlock, int32 NodeIndex, FName PinName, EComposableCameraPinType PinType, const UEnum * EnumType)
Read a typed output pin value from the data block and format as string.
ComposableCameraSystem¶
Functions¶
| Return | Name | Description |
|---|---|---|
float |
SmoothStep inline |
|
float |
SmootherStep inline |
|
double |
SimpleExpDamp inline |
|
double |
NormalizeYaw inline |
|
FVector4 |
NormalizeVector4 inline |
|
FVector |
SlerpNormalized inline |
Apply Slerp to two normalized vectors. |
FVector |
Slerp inline |
Apply Slerp to two vectors, no normalization is needed. |
float |
UnsignedAngleBetweenVectors inline |
Get the unsigned angle between two vectors. |
float |
SignedAngleBetweenVectors inline |
Get the signed angle between two vectors. |
FQuat |
ApplyAdditiveCameraRotation inline |
Apply an additive rotation to camera rotation. First about world space yaw using AdditiveRotation.X, then about local space pitch using AdditiveRotation.Y. |
FVector2D |
GetCameraRotationFromTarget inline |
Get world space yaw and local space pitch change from a camera rotation to a look-at direction. |
FQuat |
GetCameraRotationFromVectors inline |
Get camera rotation from V1 to V2 with up vector Up. |
FVector4 |
FindEigenVectorByPowerIteration inline |
Power iteration to find eigenvector. Ref https://en.wikipedia.org/wiki/Power_iteration Rayleigh quotient iteration converges faster, but involving computing matrix inverse. Ref https://en.wikipedia.org/wiki/Rayleigh_quotient_iteration |
std::pair< FRotator, FVector4 > |
MatrixInterpRotation inline |
|
FRotator |
CircularInterpRotation inline |
|
FRotator |
QuaternionInterpRotation inline |
|
FRotator |
AngleInterpRotation inline |
|
float |
GetClosestAngleDegree inline |
|
float |
GetProjectPerpLength inline |
Get the perpendicular vector's length from any vector B projecting onto a unit vector A. i.e., (B - A * (A.Dot(B)).Length(). |
FVector |
GetProjectedPoint inline |
Get the point projected from B to a unit vector A. |
SmoothStep¶
inline
inline float SmoothStep(float T)
SmootherStep¶
inline
inline float SmootherStep(float T)
SimpleExpDamp¶
inline
inline double SimpleExpDamp(float DeltaTime, float DampTime, float Input)
NormalizeYaw¶
inline
inline double NormalizeYaw(double InYaw)
NormalizeVector4¶
inline
inline FVector4 NormalizeVector4(const FVector4 & V, float Tolerance)
SlerpNormalized¶
inline
inline FVector SlerpNormalized(const FVector & Start, const FVector & End, float Alpha)
Apply Slerp to two normalized vectors.
Slerp¶
inline
inline FVector Slerp(const FVector & Start, const FVector & End, float Alpha)
Apply Slerp to two vectors, no normalization is needed.
UnsignedAngleBetweenVectors¶
inline
inline float UnsignedAngleBetweenVectors(FVector V1, FVector V2)
Get the unsigned angle between two vectors.
SignedAngleBetweenVectors¶
inline
inline float SignedAngleBetweenVectors(FVector V1, FVector V2, FVector Up)
Get the signed angle between two vectors.
ApplyAdditiveCameraRotation¶
inline
inline FQuat ApplyAdditiveCameraRotation(FQuat CameraRotation, FVector2D AdditiveRotation)
Apply an additive rotation to camera rotation. First about world space yaw using AdditiveRotation.X, then about local space pitch using AdditiveRotation.Y.
GetCameraRotationFromTarget¶
inline
inline FVector2D GetCameraRotationFromTarget(FQuat CameraRotation, FVector LookAtDirection)
Get world space yaw and local space pitch change from a camera rotation to a look-at direction.
GetCameraRotationFromVectors¶
inline
inline FQuat GetCameraRotationFromVectors(FVector V1, FVector V2, FVector Up)
Get camera rotation from V1 to V2 with up vector Up.
FindEigenVectorByPowerIteration¶
inline
inline FVector4 FindEigenVectorByPowerIteration(const FMatrix & M, const FVector4 & V, const int Steps, const float Epsilon)
Power iteration to find eigenvector. Ref https://en.wikipedia.org/wiki/Power_iteration Rayleigh quotient iteration converges faster, but involving computing matrix inverse. Ref https://en.wikipedia.org/wiki/Rayleigh_quotient_iteration
MatrixInterpRotation¶
inline
inline std::pair< FRotator, FVector4 > MatrixInterpRotation(const TArray< FRotator > & Rotations, const TArray< float > & Weights, FVector4 InitialEigenVector)
CircularInterpRotation¶
inline
inline FRotator CircularInterpRotation(const TArray< FRotator > & Rotations, const TArray< float > & Weights, float Epsilon)
QuaternionInterpRotation¶
inline
inline FRotator QuaternionInterpRotation(const TArray< FRotator > & Rotations, const TArray< float > & Weights)
AngleInterpRotation¶
inline
inline FRotator AngleInterpRotation(const TArray< FRotator > & Rotations, const TArray< float > & Weights)
GetClosestAngleDegree¶
inline
template<typename... Args> inline float GetClosestAngleDegree(float InAngle, Args... Angles)
GetProjectPerpLength¶
inline
inline float GetProjectPerpLength(const FVector & A, const FVector & B)
Get the perpendicular vector's length from any vector B projecting onto a unit vector A. i.e., (B - A * (A.Dot(B)).Length().
GetProjectedPoint¶
inline
inline FVector GetProjectedPoint(const FVector & A, const FVector & B)
Get the point projected from B to a unit vector A.
ComposableCameraModifier¶
Classes¶
| Name | Description |
|---|---|
FModifierEntry |
Typedefs¶
| Return | Name | Description |
|---|---|---|
TSubclassOf< UComposableCameraCameraNodeBase > |
T_NodeClass |
|
TMap< T_NodeClass, FModifierEntry > |
T_NodeModifier |
|
TMap< T_NodeClass, TArray< FModifierEntry > > |
T_NodeModifierArray |
|
TMap< FGameplayTag, T_NodeModifierArray > |
T_CameraModifier |
T_NodeClass¶
TSubclassOf< UComposableCameraCameraNodeBase > T_NodeClass()
T_NodeModifier¶
TMap< T_NodeClass, FModifierEntry > T_NodeModifier()
T_NodeModifierArray¶
TMap< T_NodeClass, TArray< FModifierEntry > > T_NodeModifierArray()
T_CameraModifier¶
TMap< FGameplayTag, T_NodeModifierArray > T_CameraModifier()