53 lines
1.3 KiB
C++
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;
|
|
};
|