35 lines
946 B
C++
35 lines
946 B
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "ISnappingPolicy.h"
|
|
#include "Math/Plane.h"
|
|
|
|
class FPrimitiveDrawInterface;
|
|
class FSceneView;
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// FPlanarConstraintSnapPolicy
|
|
|
|
class FPlanarConstraintSnapPolicy : public ISnappingPolicy
|
|
{
|
|
public:
|
|
FPlane SnapPlane;
|
|
|
|
virtual bool IsEnabled() const;
|
|
void ToggleEnabled();
|
|
|
|
private:
|
|
bool bIsEnabled;
|
|
public:
|
|
FPlanarConstraintSnapPolicy();
|
|
|
|
// ISnappingPolicy interface
|
|
virtual void SnapScale(FVector& Point, const FVector& GridBase) override;
|
|
virtual void SnapPointToGrid(FVector& Point, const FVector& GridBase) override;
|
|
virtual void SnapRotatorToGrid(FRotator& Rotation) override;
|
|
virtual void ClearSnappingHelpers(bool bClearImmediately) override;
|
|
virtual void DrawSnappingHelpers(const FSceneView* View, FPrimitiveDrawInterface* PDI) override;
|
|
// End of ISnappingPolicy interface
|
|
};
|