You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
63 lines
2.0 KiB
// Copyright Voulz 2021-2025. All Rights Reserved.
|
|
|
|
#include "ArchVisSceneCaptureComponent2D.h"
|
|
|
|
#include "ArchVisCineCameraActor.h"
|
|
#include "ArchVisCineCameraComponent.h"
|
|
|
|
|
|
#define CURRENT_LOG_CATEGORY LogArchVisTools
|
|
|
|
const AActor* UArchVisSceneCaptureComponent2D::GetViewOwner() const
|
|
{
|
|
return GetOwner(); // Needed for the View Extension to find the ArchVisCineCameraComponent
|
|
}
|
|
|
|
void UArchVisSceneCaptureComponent2D::GetCameraView(float DeltaTime, FMinimalViewInfo& OutMinimalViewInfo)
|
|
{
|
|
if (UArchVisCineCameraComponent* CameraComponent = FindCameraComponent())
|
|
{
|
|
CameraComponent->GetCameraView(DeltaTime, OutMinimalViewInfo);
|
|
SetCameraView(OutMinimalViewInfo); //to ensure its location matches the given view
|
|
return;
|
|
}
|
|
Super::GetCameraView(DeltaTime, OutMinimalViewInfo);
|
|
}
|
|
|
|
UArchVisCineCameraComponent* UArchVisSceneCaptureComponent2D::FindCameraComponent() const
|
|
{
|
|
UArchVisCineCameraComponent* CameraComponent = nullptr;
|
|
if (ArchVisCineCameraComponent.IsValid())
|
|
{
|
|
CameraComponent = ArchVisCineCameraComponent.Get();
|
|
}
|
|
else if (const AArchVisCineCameraActor* CameraActor = ArchVisCineCameraActor.Get())
|
|
{
|
|
CameraComponent = CameraActor->GetArchVisCineCameraComponent();
|
|
}
|
|
else if (UArchVisCineCameraComponent* Parent = Cast<UArchVisCineCameraComponent>(GetAttachParent()))
|
|
{
|
|
CameraComponent = Parent;
|
|
}
|
|
else if (const AArchVisCineCameraActor* Owner = Cast<AArchVisCineCameraActor>(GetOwner()))
|
|
{
|
|
CameraComponent = Owner->GetArchVisCineCameraComponent();
|
|
}
|
|
return CameraComponent;
|
|
}
|
|
|
|
void UArchVisSceneCaptureComponent2D::UpdateSceneCaptureContents(FSceneInterface* Scene, ISceneRenderBuilder& SceneRenderBuilder)
|
|
{
|
|
bUseCustomProjectionMatrix = false; // need to ensure this is reset to false as we forced it to be true previously
|
|
FMinimalViewInfo ViewInfo;
|
|
GetCameraView(0.0f, ViewInfo);
|
|
|
|
if (const UArchVisCineCameraComponent* CameraComponent = FindCameraComponent())
|
|
{
|
|
CustomNearClippingPlane = CameraComponent->CustomNearClippingPlane;
|
|
}
|
|
|
|
Super::UpdateSceneCaptureContents(Scene, SceneRenderBuilder);
|
|
}
|
|
|
|
#undef CURRENT_LOG_CATEGORY
|
|
|