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

53 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
class FPrimitiveDrawInterface;
class FSceneView;
class ISnappingPolicy
{
public:
virtual ~ISnappingPolicy() {}
/**
* Snaps a scale value to the scale grid
*
* @param Point The point to snap. This value will be modified to account for snapping
* @param GridBase Base grid offset
*/
virtual void SnapScale(FVector& Point, const FVector& GridBase)=0;
/**
* Snaps a point value to the positional grid
*
* @param Point The point to snap. This value will be modified to account for snapping
* @param GridBase Base grid offset
*/
virtual void SnapPointToGrid(FVector& Point, const FVector& GridBase)=0;
/**
* Snaps a rotator to the rotational grid
*
* @param Rotation The rotator to snap. This value will be modified to account for snapping
*/
virtual void SnapRotatorToGrid(FRotator& Rotation)=0;
/**
* Clears all vertices being drawn to help a user snap
*
* @param bClearImmediatley true to clear helpers without fading them out
*/
virtual void ClearSnappingHelpers(bool bClearImmediately = false)=0;
/**
* Draws snapping helpers
*
* @param View The current view of the scene
* @param PDI Drawing interface
*/
virtual void DrawSnappingHelpers(const FSceneView* View, FPrimitiveDrawInterface* PDI)=0;
};