2022-01-24 11:36:13 -05:00
|
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "ComponentVisualizer.h"
|
|
|
|
|
|
|
|
|
|
|
|
class USmartObjectComponent;
|
2022-11-01 15:11:25 -04:00
|
|
|
|
class USmartObjectDefinition;
|
|
|
|
|
|
class USmartObjectAssetEditorTool;
|
2023-03-02 05:58:30 -05:00
|
|
|
|
class USmartObjectSubsystem;
|
2022-11-01 15:11:25 -04:00
|
|
|
|
|
|
|
|
|
|
/**
|
2023-08-29 07:48:32 -04:00
|
|
|
|
* Hit proxy for Smart Object slots and annotations.
|
2022-11-01 15:11:25 -04:00
|
|
|
|
*/
|
2024-02-15 17:34:56 -05:00
|
|
|
|
struct SMARTOBJECTSEDITORMODULE_API HSmartObjectItemProxy : public HHitProxy
|
2022-11-01 15:11:25 -04:00
|
|
|
|
{
|
|
|
|
|
|
DECLARE_HIT_PROXY();
|
|
|
|
|
|
|
2024-02-15 17:34:56 -05:00
|
|
|
|
HSmartObjectItemProxy(const FGuid InID)
|
|
|
|
|
|
: HHitProxy(HPP_Foreground)
|
2023-08-29 07:48:32 -04:00
|
|
|
|
, ItemID(InID)
|
2022-11-01 15:11:25 -04:00
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
|
|
virtual EMouseCursor::Type GetMouseCursor() override
|
|
|
|
|
|
{
|
|
|
|
|
|
return EMouseCursor::CardinalCross;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-08-29 07:48:32 -04:00
|
|
|
|
FGuid ItemID;
|
2022-11-01 15:11:25 -04:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Helper functions to draw Smart Object definition visualization.
|
|
|
|
|
|
*/
|
2023-11-27 10:57:29 -05:00
|
|
|
|
namespace UE::SmartObject::Editor
|
2022-11-01 15:11:25 -04:00
|
|
|
|
{
|
2023-08-29 07:48:32 -04:00
|
|
|
|
void Draw(const USmartObjectDefinition& Definition, TConstArrayView<FGuid> Selection, const FTransform& OwnerLocalToWorld, const FSceneView& View, FPrimitiveDrawInterface& PDI, const UWorld& World, const AActor* PreviewActor);
|
|
|
|
|
|
void DrawCanvas(const USmartObjectDefinition& Definition, TConstArrayView<FGuid> Selection, const FTransform& OwnerLocalToWorld, const FSceneView& View, FCanvas& Canvas, const UWorld& World, const AActor* PreviewActor);
|
2023-11-27 10:57:29 -05:00
|
|
|
|
}; // UE::SmartObject::Editor
|
2022-11-01 15:11:25 -04:00
|
|
|
|
|
2022-01-24 11:36:13 -05:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Visualizer for SmartObjectComponent
|
|
|
|
|
|
*/
|
|
|
|
|
|
class SMARTOBJECTSEDITORMODULE_API FSmartObjectComponentVisualizer : public FComponentVisualizer
|
|
|
|
|
|
{
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void DrawVisualization(const UActorComponent* Component, const FSceneView* View, FPrimitiveDrawInterface* PDI) override;
|
2022-11-01 15:11:25 -04:00
|
|
|
|
virtual void DrawVisualizationHUD(const UActorComponent* Component, const FViewport* Viewport, const FSceneView* View, FCanvas* Canvas) override;
|
2022-01-24 11:36:13 -05:00
|
|
|
|
};
|