Files
UnrealEngine/Engine/Plugins/Runtime/nDisplay/Source/DisplayCluster/Public/DisplayClusterChromakeyCardActor.h
2025-05-18 13:04:45 +08:00

53 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "DisplayClusterLightCardActor.h"
#include "DisplayClusterChromakeyCardActor.generated.h"
class UDisplayClusterICVFXCameraComponent;
UCLASS(Blueprintable, NotPlaceable, DisplayName = "Chromakey Card", HideCategories = (Tick, Physics, Collision, Networking, Replication, Cooking, Input, Actor, HLOD))
class DISPLAYCLUSTER_API ADisplayClusterChromakeyCardActor : public ADisplayClusterLightCardActor
{
GENERATED_BODY()
public:
ADisplayClusterChromakeyCardActor(const FObjectInitializer& ObjectInitializer);
virtual ~ADisplayClusterChromakeyCardActor() override;
virtual void Tick(float DeltaSeconds) override;
#if WITH_EDITOR
// ~Begin UObject interface
virtual void PostEditUndo() override;
// ~End UObject interface
#endif
// ~Begin ADisplayClusterLightCardActor interface
virtual void AddToRootActor(ADisplayClusterRootActor* InRootActor) override;
virtual void RemoveFromRootActor() override;
// ~End ADisplayClusterLightCardActor interface
/**
* Checks if the given ICVFX camera has chroma key settings supporting this actor.
*
* @param InCamera The ICVFX camera component to compare against.
*
* @return true if the camera component references this actor.
*/
bool IsReferencedByICVFXCamera(const UDisplayClusterICVFXCameraComponent* InCamera) const;
protected:
void UpdateChromakeySettings();
#if WITH_EDITOR
private:
/** Called when any UObject has its property changed. */
void OnObjectPropertyChanged(UObject* InObject, FPropertyChangedEvent& InPropertyChangedEvent);
private:
/** Handle for UObject property change. */
FDelegateHandle PropertyChangedHandle;
#endif
};