Files
UnrealEngine/Engine/Source/Runtime/MovieScene/Public/MovieSceneBindingProxy.h
2025-05-18 13:04:45 +08:00

58 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "Misc/Guid.h"
#include "UObject/ObjectMacros.h"
#include "UObject/ObjectPtr.h"
#include "Templates/TypeHash.h"
#include "MovieSceneBindingProxy.generated.h"
class UMovieScene;
class UMovieSceneSequence;
//
// Movie Scene Binding Proxy represents the binding ID (an FGuid) and the corresponding sequence that it relates to.
// This is primarily used for scripting where there is no support for FMovieSceneSequenceID and use cases where
// managing multiple bindings with their corresponding sequences is necessary.
//
USTRUCT(BlueprintType)
struct FMovieSceneBindingProxy
{
GENERATED_BODY()
FMovieSceneBindingProxy()
: Sequence(nullptr)
{}
FMovieSceneBindingProxy(const FGuid& InBindingID, UMovieSceneSequence* InSequence)
: BindingID(InBindingID)
, Sequence(InSequence)
{}
FORCEINLINE friend bool operator==(const FMovieSceneBindingProxy &LHS, const FMovieSceneBindingProxy &RHS)
{
return LHS.BindingID == RHS.BindingID && LHS.Sequence == RHS.Sequence;
}
FORCEINLINE friend bool operator!=(const FMovieSceneBindingProxy &LHS, const FMovieSceneBindingProxy &RHS)
{
return LHS.BindingID != RHS.BindingID || LHS.Sequence != RHS.Sequence;
}
FORCEINLINE friend uint32 GetTypeHash(const FMovieSceneBindingProxy& In)
{
return HashCombine(GetTypeHash(In.BindingID), GetTypeHash(In.Sequence));
}
MOVIESCENE_API UMovieScene* GetMovieScene() const;
UPROPERTY(BlueprintReadOnly, Category=Binding)
FGuid BindingID;
UPROPERTY(BlueprintReadOnly, Category=Binding)
TObjectPtr<UMovieSceneSequence> Sequence;
};