Files
UnrealEngineUWP/Engine/Source/Editor/AnimGraph/Public/IAnimNodeEditMode.h
zach rammell 99738c0f68 Refactor persona editor modes/mode manager to use ITF context objects for persona-only interfaces instead of static casting
#rb brooke.hubert Thomas.Sarkanen
#jira UE-143249
#preflight 628549709e72602f6ab62b3b

[CL 20282438 by zach rammell in ue5-main branch]
2022-05-19 12:34:51 -04:00

43 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UnrealWidgetFwd.h"
#include "AnimationEditMode.h"
/** Base interface for skeletal control edit modes */
class IAnimNodeEditMode : public FAnimationEditMode
{
public:
/** Returns the coordinate system that should be used for this bone */
virtual ECoordSystem GetWidgetCoordinateSystem() const = 0;
/** @return current widget mode this anim graph node supports */
virtual UE::Widget::EWidgetMode GetWidgetMode() const = 0;
/** Called when the user changed widget mode by pressing "Space" key */
virtual UE::Widget::EWidgetMode ChangeToNextWidgetMode(UE::Widget::EWidgetMode CurWidgetMode) = 0;
/** Called when the user set widget mode directly, returns true if InWidgetMode is available */
virtual bool SetWidgetMode(UE::Widget::EWidgetMode InWidgetMode) = 0;
/** Get the bone that the skeletal control is manipulating */
virtual FName GetSelectedBone() const = 0;
/** Called when the widget is dragged in translation mode */
virtual void DoTranslation(FVector& InTranslation) = 0;
/** Called when the widget is dragged in rotation mode */
virtual void DoRotation(FRotator& InRotation) = 0;
/** Called when the widget is dragged in scale mode */
virtual void DoScale(FVector& InScale) = 0;
/** Called when entering this edit mode */
virtual void EnterMode(class UAnimGraphNode_Base* InEditorNode, struct FAnimNode_Base* InRuntimeNode) = 0;
/** Called when exiting this edit mode */
virtual void ExitMode() = 0;
};