Files
UnrealEngine/Engine/Source/Editor/UnrealEd/Public/Utils.h
2025-05-18 13:04:45 +08:00

60 lines
1.8 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 );
}