Files
UnrealEngineUWP/Engine/Source/Editor/AnimGraph/Public/IAnimNodeEditMode.h
nick brett c675819ca1 [UE][FEATURE] Extend Pose Watches to support control of other aspects of animation node debug draw.
- Pose watches can now contain elements which represent different asspects of an anim nodes debug draw (i.e. bodies and constraints in RBAN)
- Elements can be used to enable anim node debug draw even when a node is not selected, acting in the same way as the previous pose watches
- The previous Pose watch behavior is now provided by an element within a pose watch
- RBAN nodes now make use of Pose Watch Elements
- Moved skeleton draw parameter UPROPERTIES from PoseWatch to specialised PoseWatchPoseElement class

#rb [at]Thomas.Sarkanen, [at]Lucas.Dower
#preflight 62d6a3e43c3df323901fca27

#ROBOMERGE-AUTHOR: nick.brett
#ROBOMERGE-SOURCE: CL 21174786 via CL 21175779 via CL 21181135
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21192394 by nick brett in ue5-main branch]
2022-07-20 18:29:30 -04:00

49 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UnrealWidgetFwd.h"
#include "AnimationEditMode.h"
class UAnimGraphNode_Base;
struct FAnimNode_Base;
/** 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(UAnimGraphNode_Base* InEditorNode, FAnimNode_Base* InRuntimeNode) = 0;
/** Called when exiting this edit mode */
virtual void ExitMode() = 0;
/** Called when a Pose Watch is created on a node edited by this edit mode */
virtual void RegisterPoseWatchedNode(UAnimGraphNode_Base* InEditorNode, FAnimNode_Base* InRuntimeNode) = 0;
};