// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "PropertyBindingBindingCollection.h" #include "SceneStateBinding.h" #include "SceneStateBindingDesc.h" #include "SceneStateBindingCollection.generated.h" namespace UE::SceneState::Editor { class FBindingCompiler; } USTRUCT() struct FSceneStateBindingCollection : public FPropertyBindingBindingCollection { GENERATED_BODY() TArrayView GetMutableBindingDescs() { return BindingDescs; } TArrayView GetMutableBindings() { return Bindings; } /** Finds the binding desc matching the given data handle */ SCENESTATEBINDING_API const FSceneStateBindingDesc* FindBindingDesc(FSceneStateBindingDataHandle InDataHandle) const; #if WITH_EDITOR //~ Begin FPropertyBindingBindingCollection SCENESTATEBINDING_API virtual FPropertyBindingBinding* AddBindingInternal(const FPropertyBindingPath& InSourcePath, const FPropertyBindingPath& InTargetPath) override; SCENESTATEBINDING_API virtual void RemoveBindingsInternal(TFunctionRef InPredicate) override; SCENESTATEBINDING_API virtual bool HasBindingInternal(TFunctionRef InPredicate) const override; SCENESTATEBINDING_API virtual const FPropertyBindingBinding* FindBindingInternal(TFunctionRef InPredicate) const override; #endif SCENESTATEBINDING_API virtual int32 GetNumBindings() const override; SCENESTATEBINDING_API virtual int32 GetNumBindableStructDescriptors() const override; SCENESTATEBINDING_API virtual const FPropertyBindingBindableStructDescriptor* GetBindableStructDescriptorFromHandle(FConstStructView InSourceHandleView) const override; SCENESTATEBINDING_API virtual void ForEachBinding(TFunctionRef InFunction) const override; SCENESTATEBINDING_API virtual void ForEachBinding(FPropertyBindingIndex16 InBegin, FPropertyBindingIndex16 InEnd, TFunctionRef InFunction) const override; SCENESTATEBINDING_API virtual void ForEachMutableBinding(TFunctionRef InFunction) override; SCENESTATEBINDING_API virtual void VisitBindings(TFunctionRef InFunction) const override; SCENESTATEBINDING_API virtual void VisitMutableBindings(TFunctionRef InFunction) override; SCENESTATEBINDING_API virtual void OnReset() override; SCENESTATEBINDING_API virtual void VisitSourceStructDescriptorInternal(TFunctionRef InFunction) const override; //~ End FPropertyBindingBindingCollection private: UPROPERTY() TArray BindingDescs; UPROPERTY() TArray Bindings; friend UE::SceneState::Editor::FBindingCompiler; };