Files
UnrealEngineUWP/Engine/Plugins/Runtime/SmartObjects/Source/SmartObjectsModule/Public/SmartObjectAnnotation.h
nat parkinson 1004be8d8a [Backout] - CL24460758 to resolve nonunity errors
[FYI] mikko.mononen
Original CL Desc
-----------------------------------------------------------------
SmartObjects: Added entry annotation selection and validation.
- Added USmartObjectSubsystem::FindEntryLocationForSlot() which allows to query entry points which are on navigable surface
- Improved debug visualizations
- Added visualization shape and size for slots
- Added gameplay interaction state tree task to query entry location

#jira UE-174418,FORT-572969
#preflight 63ff4702437ce3e7f3f60cf4

[CL 24469441 by nat parkinson in ue5-main branch]
2023-03-01 15:40:51 -05:00

44 lines
1.7 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "SmartObjectTypes.h"
#include "SmartObjectAnnotation.generated.h"
struct FSmartObjectVisualizationContext;
/**
* Base class for Smart Object Slot annotations. Annotation is a specific type of slot definition data that has methods to visualize it.
*/
USTRUCT(meta=(Hidden))
struct SMARTOBJECTSMODULE_API FSmartObjectSlotAnnotation : public FSmartObjectSlotDefinitionData
{
GENERATED_BODY()
virtual ~FSmartObjectSlotAnnotation() override {}
#if UE_ENABLE_DEBUG_DRAWING
// @todo: Try to find a way to add visualization without requiring virtual functions.
/** Methods to override to draw 3D visualization of the annotation. */
virtual void DrawVisualization(FSmartObjectVisualizationContext& VisContext) const {}
/** Methods to override to draw canvas visualization of the annotation. */
virtual void DrawVisualizationHUD(FSmartObjectVisualizationContext& VisContext) const {}
/**
* Returns the world space transform of the annotation.
* @param SlotTransform World space transform of the slot.
* @return world transform of the annotation, or empty if annotation does not have transform.
*/
virtual TOptional<FTransform> GetWorldTransform(const FTransform& SlotTransform) const { return TOptional<FTransform>(); }
/**
* Called in editor to adjust the transform of the annotation.
* @param SlotTransform World space transform of the slot.
* @param DeltaTranslation World space delta translation to apply.
* @param DeltaRotation World space delta rotation to apply.
**/
virtual void AdjustWorldTransform(const FTransform& SlotTransform, const FVector& DeltaTranslation, const FRotator& DeltaRotation) {}
#endif
};