#include <ComposableCameraMixingCameraNode.h>

Inherits: UComposableCameraCameraNodeBase

Node for mixing multiple cameras.
This node will instantiate new camera instances specified by parameter Cameras.
During runtime, you should pass in a UpdateWeight function that provides weights for these cameras. Make sure all weights are greater than zero.
If one camera instance is not valid, its weight will be set to zero, then a squared normalization will be applied to normalize all weights.

Public Attributes

Return Name Description
EComposableCameraMixingCameraMode MixMode
EComposableCameraMixingCameraWeightNormalizationMethod WeightNormalizationMethod
EComposableCameraMixingCameraRotationMethod MixRotationMethod
float CircularInterpEpsilon
TArray< FComposableCameraMixingCameraNodeCameraDefinition > Cameras
FOnReceiveMixingCameraWeights OnReceiveMixingCameraWeights

MixMode

EComposableCameraMixingCameraMode MixMode {  }

WeightNormalizationMethod

EComposableCameraMixingCameraWeightNormalizationMethod WeightNormalizationMethod {  }

MixRotationMethod

EComposableCameraMixingCameraRotationMethod MixRotationMethod {  }

CircularInterpEpsilon

float CircularInterpEpsilon { 0.25f }

Cameras

TArray< FComposableCameraMixingCameraNodeCameraDefinition > Cameras

OnReceiveMixingCameraWeights

FOnReceiveMixingCameraWeights OnReceiveMixingCameraWeights

Public Methods

Return Name Description
void OnInitialize_Implementation virtual
void OnTickNode_Implementation virtual
void BeginDestroy virtual
void GetPinDeclarations_Implementation virtual const
void SetUpdateWeights

OnInitialize_Implementation

virtual

virtual void OnInitialize_Implementation()

OnTickNode_Implementation

virtual

virtual void OnTickNode_Implementation(float DeltaTime, const FComposableCameraPose & CurrentCameraPose, FComposableCameraPose & OutCameraPose)

BeginDestroy

virtual

virtual void BeginDestroy()

GetPinDeclarations_Implementation

virtual const

virtual void GetPinDeclarations_Implementation(TArray< FComposableCameraNodePinDeclaration > & OutPins) const

SetUpdateWeights

void SetUpdateWeights(FOnReceiveMixingCameraWeights OnUpdateMixingCameraWeights)

Private Attributes

Return Name Description
TArray< TObjectPtr< AComposableCameraCameraBase > > CameraInstances
FVector4 InitialEigenVector

CameraInstances

TArray< TObjectPtr< AComposableCameraCameraBase > > CameraInstances

InitialEigenVector

FVector4 InitialEigenVector { 0, 0, 0, 1 }

Private Methods

Return Name Description
void NormalizeWeights
void TickCameras
FVector GetMixedPosition
FRotator GetMixedRotation
double GetMixedFieldOfView

NormalizeWeights

void NormalizeWeights(TArray< float > & Array)

TickCameras

void TickCameras(TArray< FComposableCameraPose > & Poses, float DeltaTime)

GetMixedPosition

FVector GetMixedPosition(const TArray< FComposableCameraPose > & Poses, const TArray< float > & Weights)

GetMixedRotation

FRotator GetMixedRotation(const TArray< FComposableCameraPose > & Poses, const TArray< float > & Weights)

GetMixedFieldOfView

double GetMixedFieldOfView(const TArray< FComposableCameraPose > & Poses, const TArray< float > & Weights)