// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "AnimGraphNode_Base.h" #include "AnimNodes/AnimNode_MultiWayBlend.h" #include "AnimGraphNode_MultiWayBlend.generated.h" UCLASS(MinimalAPI) class UAnimGraphNode_MultiWayBlend : public UAnimGraphNode_Base { GENERATED_UCLASS_BODY() UPROPERTY(EditAnywhere, Category=Settings) FAnimNode_MultiWayBlend Node; // Adds a new pose pin //@TODO: Generalize this behavior (returning a list of actions/delegates maybe?) ANIMGRAPH_API virtual void AddPinToBlendNode(); ANIMGRAPH_API virtual void RemovePinFromBlendNode(UEdGraphPin* Pin); ANIMGRAPH_API virtual void ReallocatePinsDuringReconstruction(TArray& OldPins) override; //~ Begin UEdGraphNode Interface. virtual FLinearColor GetNodeTitleColor() const override; virtual FText GetTooltipText() const override; virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override; virtual void PostPlacedNewNode() override; //~ End UEdGraphNode Interface. //~ Begin UAnimGraphNode_Base Interface virtual FString GetNodeCategory() const override; //~ End UAnimGraphNode_Base Interface // UK2Node interface virtual void GetNodeContextMenuActions(class UToolMenu* Menu, class UGraphNodeContextMenuContext* Context) const override; // End of UK2Node interface private: int32 RemovedPinArrayIndex; // removes removed pins and adjusts array indices of remained pins void RemovePinsFromOldPins(TArray& OldPins, int32 RemovedArrayIndex); };