You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
* Only nodes which have been setup to have drawable elements should be drawn when pose watched, such as 'RigidBody'. * Anim nodes with custom edit modes should only draw their widgets when explicitly selected or override IAnimNodeEditMode::SupportsPoseWatch #jira 165766 #rb thomas.sarkanen #preflight 63514130047f3570adddd035 [CL 22655755 by lucas dower in ue5-main branch]
52 lines
1.9 KiB
C++
52 lines
1.9 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 to determine whether this edit mode should be drawn when nodes edited by this edit mode are pose watched */
|
|
virtual bool SupportsPoseWatch() = 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;
|
|
};
|