EM_Task/UnrealEd/Public/Utils.h
Boshuang Zhao 5144a49c9b add
2026-02-13 16:18:33 +08:00

59 lines
2.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "HitProxies.h"
#include "Factories/Factory.h"
class FPrimitiveDrawInterface;
class FSceneView;
struct FViewportClick;
DECLARE_LOG_CATEGORY_EXTERN(LogUtils, Log, All);
enum EWidgetMovementMode
{
WMM_Rotate,
WMM_Translate,
WMM_Scale,
WMM_MAX
};
struct HWidgetUtilProxy: public HHitProxy
{
DECLARE_HIT_PROXY(UNREALED_API);
int32 Info1;
int32 Info2;
EAxisList::Type Axis;
FMatrix WidgetMatrix;
EWidgetMovementMode Mode;
HWidgetUtilProxy(int32 InInfo1, int32 InInfo2, EAxisList::Type InAxis, const FMatrix& InWidgetMatrix, EWidgetMovementMode bInMode): HHitProxy(HPP_UI),
Info1(InInfo1),
Info2(InInfo2),
Axis(InAxis),
WidgetMatrix(InWidgetMatrix),
Mode(bInMode)
{}
virtual void CalcVectors(FSceneView* SceneView, const FViewportClick& Click, FVector& LocalManDir, FVector& WorldManDir, float& DragDirX, float& DragDirY);
};
class FUnrealEdUtils
{
public:
UNREALED_API static void DrawWidget(const FSceneView* View, FPrimitiveDrawInterface* PDI, const FMatrix& WidgetMatrix, int32 InInfo1, int32 InInfo2, EAxisList::Type HighlightAxis, EWidgetMovementMode bInMode);
UNREALED_API static void DrawWidget(const FSceneView* View, FPrimitiveDrawInterface* PDI, const FMatrix& WidgetMatrix, int32 InInfo1, int32 InInfo2, EAxisList::Type HighlightAxis, EWidgetMovementMode bInMode, bool bHitTesting);
};
/**
* Import an object using a UFactory.
*/
template <class T>
T* ImportObject(UObject* Outer, FName Name, EObjectFlags Flags, const TCHAR* Filename = TEXT(""), UObject* Context = NULL, UFactory* Factory = NULL, const TCHAR* Parms = NULL, FFeedbackContext* Warn = GWarn)
{
return (T*)UFactory::StaticImportObject(T::StaticClass(), Outer, Name, Flags, Filename, Context, Factory, Parms, Warn);
}