#include <ComposableCameraCollisionPushNode.h>

Inherits: UComposableCameraCameraNodeBase

Node for resolving collision using self-spherical collision and trace collision.
This node does two things for collision:
(1) Casts a trace (either line or sphere) from camera to the target point and resolves any occlusion in-between;
(2) Carries a sphere around the camera and only resolves occlusion when the sphere collides with objects.
The first we call it TraceCollision, and the second SelfCollision, both dealt with collision channels.

Public Attributes

Return Name Description
TObjectPtr< AActor > PivotActor
TEnumAsByte< ETraceTypeQuery > TraceCollisionChannel
bool bTraceUseSphere
double TraceSphereRadius
double TraceOcclusionExemptionTime
TEnumAsByte< ETraceTypeQuery > SelfCollisionChannel
double SelfSphereRadius
double SelfSphereDistanceOffsetFromCenter
TArray< TSoftClassPtr< AActor > > ActorTypesToIgnore
double ExtraPushDistance
TObjectPtr< UComposableCameraInterpolatorBase > PushInterpolator
TObjectPtr< UComposableCameraInterpolatorBase > PullInterpolator
double PivotZOffset
bool bUseBoneForDetection
FName BoneName

PivotActor

TObjectPtr< AActor > PivotActor

TraceCollisionChannel

TEnumAsByte< ETraceTypeQuery > TraceCollisionChannel

bTraceUseSphere

bool bTraceUseSphere { true }

TraceSphereRadius

double TraceSphereRadius { 12. }

TraceOcclusionExemptionTime

double TraceOcclusionExemptionTime { 0. }

SelfCollisionChannel

TEnumAsByte< ETraceTypeQuery > SelfCollisionChannel

SelfSphereRadius

double SelfSphereRadius { 12. }

SelfSphereDistanceOffsetFromCenter

double SelfSphereDistanceOffsetFromCenter { 10. }

ActorTypesToIgnore

TArray< TSoftClassPtr< AActor > > ActorTypesToIgnore

ExtraPushDistance

double ExtraPushDistance { 5. }

PushInterpolator

TObjectPtr< UComposableCameraInterpolatorBase > PushInterpolator

PullInterpolator

TObjectPtr< UComposableCameraInterpolatorBase > PullInterpolator

PivotZOffset

double PivotZOffset { 50. }

bUseBoneForDetection

bool bUseBoneForDetection { false }

BoneName

FName BoneName

Public Methods

Return Name Description
void OnInitialize_Implementation virtual
void OnTickNode_Implementation virtual
void OnPreTick virtual
void GetPinDeclarations_Implementation virtual const

OnInitialize_Implementation

virtual

virtual void OnInitialize_Implementation()

OnTickNode_Implementation

virtual

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

OnPreTick

virtual

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

GetPinDeclarations_Implementation

virtual const

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

Private Attributes

Return Name Description
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > PushInterpolator_T
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > PullInterpolator_T
USkeletalMeshComponent * SkeletalMeshComponentForPivotActor
double ElapsedExemptionTime
double CurrentDistanceFromCamera
FVector OriginalCameraPosition

PushInterpolator_T

TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > PushInterpolator_T

PullInterpolator_T

TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > PullInterpolator_T

SkeletalMeshComponentForPivotActor

USkeletalMeshComponent * SkeletalMeshComponentForPivotActor { nullptr }

ElapsedExemptionTime

double ElapsedExemptionTime { 0. }

CurrentDistanceFromCamera

double CurrentDistanceFromCamera { 0. }

OriginalCameraPosition

FVector OriginalCameraPosition

Private Methods

Return Name Description
FComposableCameraHitResult FindCollisionPoint
FVector StartResolveCollision
FVector ResumeFromCollision

FindCollisionPoint

FComposableCameraHitResult FindCollisionPoint(double DeltaTime, const FVector & Start, const FVector & End, const FRotator & CameraRotation)

StartResolveCollision

FVector StartResolveCollision(double DeltaTime, const FVector & TargetLocation, const FVector & CameraPosition)

ResumeFromCollision

FVector ResumeFromCollision(double DeltaTime, const FVector & PivotPosition, const FVector & CameraPosition)