RealtimeStyleTransferRuntime/Plugins/GameFeatures/TopDownArena/Source/TopDownArenaRuntime/Private/LyraCameraMode_TopDownArena...

33 lines
1001 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "LyraCameraMode_TopDownArenaCamera.h"
#include "Curves/RichCurve.h"
#include "Math/Box.h"
#include "Math/MathFwd.h"
#include "Math/Vector.h"
ULyraCameraMode_TopDownArenaCamera::ULyraCameraMode_TopDownArenaCamera()
{
ArenaWidth = 1000.0f;
ArenaHeight = 1000.0f;
}
void ULyraCameraMode_TopDownArenaCamera::UpdateView(float DeltaTime)
{
FBox ArenaBounds(FVector(-ArenaWidth, -ArenaHeight, 0.0f), FVector(ArenaWidth, ArenaHeight, 100.0f));
const double BoundsMaxComponent = ArenaBounds.GetSize().GetMax();
const double CameraLoftDistance = BoundsSizeToDistance.GetRichCurveConst()->Eval(BoundsMaxComponent);
FVector PivotLocation = ArenaBounds.GetCenter() - DefaultPivotRotation.Vector() * CameraLoftDistance;
FRotator PivotRotation = DefaultPivotRotation;
View.Location = PivotLocation;
View.Rotation = PivotRotation;
View.ControlRotation = View.Rotation;
View.FieldOfView = FieldOfView;
}