Files
UnrealEngine/Engine/Source/Editor/ViewportInteraction/Public/ViewportInteractableInterface.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

70 lines
2.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "CoreTypes.h"
#include "Misc/AssertionMacros.h"
#include "UObject/Interface.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "ViewportInteractableInterface.generated.h"
PRAGMA_DISABLE_DEPRECATION_WARNINGS
class UActorComponent;
class UObject;
class UViewportInteractor;
struct FHitResult;
UINTERFACE( MinimalAPI )
class
#if CPP
UE_DEPRECATED(5.7, "The ViewportInteraction module is being deprecated alongside VR Editor mode.")
#endif
UViewportInteractableInterface : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
/**
* Interface for custom objects that can be interacted with by a interactor
*/
class
#if CPP
UE_DEPRECATED(5.7, "The ViewportInteraction module is being deprecated alongside VR Editor mode.")
#endif
IViewportInteractableInterface
{
GENERATED_IINTERFACE_BODY()
public:
/** Called when an interactor presses this object */
virtual void OnPressed( UViewportInteractor* Interactor, const FHitResult& InHitResult, bool& bOutResultedInDrag ) PURE_VIRTUAL( IViewportInteractableInterface::OnPressed, );
/** Called when an interactor hover over this object */
virtual void OnHover( UViewportInteractor* Interactor ) PURE_VIRTUAL( IViewportInteractableInterface::OnHover, );
/** Called when an interactor starts hovering over this object */
virtual void OnHoverEnter( UViewportInteractor* Interactor, const FHitResult& InHitResult ) PURE_VIRTUAL( IViewportInteractableInterface::OnHoverEnter, );
/** Called when an interactor leave hovering over this object */
virtual void OnHoverLeave( UViewportInteractor* Interactor, const UActorComponent* NewComponent ) PURE_VIRTUAL( IViewportInteractableInterface::OnHoverLeave, );
/** Called when an interactor stops dragging this object */
virtual void OnDragRelease( UViewportInteractor* Interactor ) PURE_VIRTUAL( IViewportInteractableInterface::OnDragRelease, );
/** Get dragging operation */
virtual class UViewportDragOperationComponent* GetDragOperationComponent() PURE_VIRTUAL( IViewportInteractableInterface::GetDragOperationComponent, return nullptr; );
/** Whether this interactable can be selected. */
virtual bool CanBeSelected() PURE_VIRTUAL( IViewportInteractableInterface::CanBeSelected, return false; );
};
PRAGMA_ENABLE_DEPRECATION_WARNINGS