#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: InteractiveToolsFramework

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "InputCore_structs.hpp"


SDK_NAMESPACE_START

// Enum InteractiveToolsFramework.EGizmoElementState
// NumValues: 0x0005
enum class EGizmoElementState : uint8
{
	None                                     = 0,
	Visible                                  = 2,
	Hittable                                 = 4,
	VisibleAndHittable                       = 6,
	EGizmoElementState_MAX                   = 7,
};

// Enum InteractiveToolsFramework.EGizmoElementInteractionState
// NumValues: 0x0004
enum class EGizmoElementInteractionState : uint32
{
	None                                     = 0,
	Hovering                                 = 1,
	Interacting                              = 2,
	EGizmoElementInteractionState_MAX        = 3,
};

// Enum InteractiveToolsFramework.EGizmoElementViewDependentType
// NumValues: 0x0004
enum class EGizmoElementViewDependentType : uint32
{
	None                                     = 0,
	Axis                                     = 1,
	Plane                                    = 2,
	EGizmoElementViewDependentType_MAX       = 3,
};

// Enum InteractiveToolsFramework.EGizmoElementViewAlignType
// NumValues: 0x0006
enum class EGizmoElementViewAlignType : uint32
{
	None                                     = 0,
	PointOnly                                = 1,
	PointEye                                 = 2,
	PointScreen                              = 3,
	Axial                                    = 4,
	EGizmoElementViewAlignType_MAX           = 5,
};

// Enum InteractiveToolsFramework.EGizmoElementPartialType
// NumValues: 0x0004
enum class EGizmoElementPartialType : uint32
{
	None                                     = 0,
	Partial                                  = 1,
	PartialViewDependent                     = 2,
	EGizmoElementPartialType_MAX             = 3,
};

// Enum InteractiveToolsFramework.EGizmoElementDrawType
// NumValues: 0x0005
enum class EGizmoElementDrawType : uint8
{
	None                                     = 0,
	Fill                                     = 2,
	Line                                     = 4,
	FillAndLine                              = 6,
	EGizmoElementDrawType_MAX                = 7,
};

// Enum InteractiveToolsFramework.EStandardToolContextMaterials
// NumValues: 0x0002
enum class EStandardToolContextMaterials : uint8
{
	VertexColorMaterial                      = 1,
	EStandardToolContextMaterials_MAX        = 2,
};

// Enum InteractiveToolsFramework.EToolContextCoordinateSystem
// NumValues: 0x0004
enum class EToolContextCoordinateSystem : uint8
{
	World                                    = 0,
	Local                                    = 1,
	Screen                                   = 2,
	EToolContextCoordinateSystem_MAX         = 3,
};

// Enum InteractiveToolsFramework.EToolContextTransformGizmoMode
// NumValues: 0x0006
enum class EToolContextTransformGizmoMode : uint8
{
	NoGizmo                                  = 0,
	Translation                              = 1,
	Rotation                                 = 2,
	Scale                                    = 3,
	Combined                                 = 8,
	EToolContextTransformGizmoMode_MAX       = 9,
};

// Enum InteractiveToolsFramework.EToolMessageLevel
// NumValues: 0x0006
enum class EToolMessageLevel : uint8
{
	Internal                                 = 0,
	UserMessage                              = 1,
	UserNotification                         = 2,
	UserWarning                              = 3,
	UserError                                = 4,
	EToolMessageLevel_MAX                    = 5,
};

// Enum InteractiveToolsFramework.ESelectedObjectsModificationType
// NumValues: 0x0005
enum class ESelectedObjectsModificationType : uint8
{
	Replace                                  = 0,
	Add                                      = 1,
	Remove                                   = 2,
	Clear                                    = 3,
	ESelectedObjectsModificationType_MAX     = 4,
};

// Enum InteractiveToolsFramework.EViewInteractionState
// NumValues: 0x0004
enum class EViewInteractionState : uint8
{
	None                                     = 0,
	Hovered                                  = 1,
	Focused                                  = 2,
	EViewInteractionState_MAX                = 3,
};

// Enum InteractiveToolsFramework.EGizmoElementArrowHeadType
// NumValues: 0x0003
enum class EGizmoElementArrowHeadType : uint32
{
	Cone                                     = 0,
	Cube                                     = 1,
	EGizmoElementArrowHeadType_MAX           = 2,
};

// Enum InteractiveToolsFramework.EInputCaptureSide
// NumValues: 0x0006
enum class EInputCaptureSide : uint8
{
	None                                     = 0,
	Left                                     = 1,
	Right                                    = 2,
	Both                                     = 3,
	Any                                      = 99,
	EInputCaptureSide_MAX                    = 100,
};

// Enum InteractiveToolsFramework.EInputCaptureRequestType
// NumValues: 0x0003
enum class EInputCaptureRequestType : uint8
{
	Begin                                    = 1,
	Ignore                                   = 2,
	EInputCaptureRequestType_MAX             = 3,
};

// Enum InteractiveToolsFramework.EInputCaptureState
// NumValues: 0x0005
enum class EInputCaptureState : uint8
{
	Begin                                    = 1,
	Continue                                 = 2,
	End                                      = 3,
	Ignore                                   = 4,
	EInputCaptureState_MAX                   = 5,
};

// Enum InteractiveToolsFramework.EInputDevices
// NumValues: 0x0009
enum class EInputDevices : uint32
{
	None                                     = 0,
	Keyboard                                 = 1,
	Mouse                                    = 2,
	Gamepad                                  = 4,
	OculusTouch                              = 8,
	HTCViveWands                             = 16,
	AnySpatialDevice                         = 24,
	TabletFingers                            = 1024,
	EInputDevices_MAX                        = 1025,
};

// Enum InteractiveToolsFramework.ETransformGizmoSubElements
// NumValues: 0x001C
enum class ETransformGizmoSubElements : uint32
{
	None                                     = 0,
	TranslateAxisX                           = 2,
	TranslateAxisY                           = 4,
	TranslateAxisZ                           = 8,
	TranslateAllAxes                         = 14,
	TranslatePlaneXY                         = 16,
	TranslatePlaneXZ                         = 32,
	TranslatePlaneYZ                         = 64,
	TranslateAllPlanes                       = 112,
	RotateAxisX                              = 128,
	RotateAxisY                              = 256,
	RotateAxisZ                              = 512,
	RotateAllAxes                            = 896,
	ScaleAxisX                               = 1024,
	ScaleAxisY                               = 2048,
	ScaleAxisZ                               = 4096,
	ScaleAllAxes                             = 7168,
	ScalePlaneYZ                             = 8192,
	ScalePlaneXZ                             = 16384,
	ScalePlaneXY                             = 32768,
	ScaleAllPlanes                           = 57344,
	ScaleUniform                             = 65536,
	FreeTranslate                            = 131072,
	FreeRotate                               = 262144,
	StandardTranslateRotate                  = 394238,
	TranslateRotateUniformScale              = 459774,
	FullTranslateRotateScale                 = 524286,
	ETransformGizmoSubElements_MAX           = 524287,
};

// Enum InteractiveToolsFramework.EToolShutdownType
// NumValues: 0x0004
enum class EToolShutdownType : uint8
{
	Completed                                = 0,
	Accept                                   = 1,
	Cancel                                   = 2,
	EToolShutdownType_MAX                    = 3,
};

// Enum InteractiveToolsFramework.EToolSide
// NumValues: 0x0004
enum class EToolSide : uint8
{
	Left                                     = 1,
	Mouse                                    = 1,
	Right                                    = 2,
	EToolSide_MAX                            = 3,
};

// Enum InteractiveToolsFramework.EToolChangeTrackingMode
// NumValues: 0x0004
enum class EToolChangeTrackingMode : uint8
{
	NoChangeTracking                         = 1,
	UndoToExit                               = 2,
	FullUndoRedo                             = 3,
	EToolChangeTrackingMode_MAX              = 4,
};

// Enum InteractiveToolsFramework.EToolManagerToolSwitchMode
// NumValues: 0x0005
enum class EToolManagerToolSwitchMode : uint8
{
	AcceptIfAble                             = 0,
	CancelIfAble                             = 1,
	CustomizableAcceptIfAble                 = 2,
	CustomizableCancelIfAble                 = 3,
	EToolManagerToolSwitchMode_MAX           = 4,
};

// Enum InteractiveToolsFramework.ESceneSnapQueryType
// NumValues: 0x0006
enum class ESceneSnapQueryType : uint8
{
	Position                                 = 1,
	Rotation                                 = 2,
	RotationAngle                            = 3,
	Scale                                    = 4,
	Transform                                = 5,
	ESceneSnapQueryType_MAX                  = 6,
};

// Enum InteractiveToolsFramework.ESceneSnapQueryTargetType
// NumValues: 0x0008
enum class ESceneSnapQueryTargetType : uint8
{
	None                                     = 0,
	MeshVertex                               = 1,
	MeshEdge                                 = 2,
	Grid                                     = 4,
	ObjectTransform                          = 8,
	Custom                                   = 16,
	All                                      = 31,
	ESceneSnapQueryTargetType_MAX            = 32,
};

// Enum InteractiveToolsFramework.ESceneSnapQueryTargetResult
// NumValues: 0x0005
enum class ESceneSnapQueryTargetResult : uint8
{
	NotSnapped                               = 0,
	Snapped                                  = 1,
	Disabled                                 = 2,
	Unsupported                              = 3,
	ESceneSnapQueryTargetResult_MAX          = 4,
};

// ScriptStruct InteractiveToolsFramework.GizmoVec2ParameterChange
// 0x0020 (0x0020 - 0x0000)
struct FGizmoVec2ParameterChange final
{
public:
	struct FVector2D                              InitialValue;                                      // 0x0000(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FVector2D                              CurrentValue;                                      // 0x0010(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FGizmoVec2ParameterChange;

// ScriptStruct InteractiveToolsFramework.GizmoElementColorAttribute
// 0x0014 (0x0014 - 0x0000)
struct FGizmoElementColorAttribute final
{
public:
	struct FLinearColor                           Value;                                             // 0x0000(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bHasValue;                                         // 0x0010(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bOverridesChildState;                              // 0x0011(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_12[0x2];                                       // 0x0012(0x0002)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FGizmoElementColorAttribute;

// ScriptStruct InteractiveToolsFramework.GizmoElementMaterialAttribute
// 0x000C (0x000C - 0x0000)
struct FGizmoElementMaterialAttribute final
{
public:
	TWeakObjectPtr<class UMaterialInterface>      Value;                                             // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bOverridesChildState;                              // 0x0008(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_9[0x3];                                        // 0x0009(0x0003)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FGizmoElementMaterialAttribute;

// ScriptStruct InteractiveToolsFramework.GizmoElementMeshRenderStateAttributes
// 0x0060 (0x0060 - 0x0000)
struct FGizmoElementMeshRenderStateAttributes final
{
public:
	struct FGizmoElementMaterialAttribute         Material;                                          // 0x0000(0x000C)(NoDestructor, NativeAccessSpecifierPublic)
	struct FGizmoElementMaterialAttribute         HoverMaterial;                                     // 0x000C(0x000C)(NoDestructor, NativeAccessSpecifierPublic)
	struct FGizmoElementMaterialAttribute         InteractMaterial;                                  // 0x0018(0x000C)(NoDestructor, NativeAccessSpecifierPublic)
	struct FGizmoElementColorAttribute            VertexColor;                                       // 0x0024(0x0014)(NoDestructor, NativeAccessSpecifierPublic)
	struct FGizmoElementColorAttribute            HoverVertexColor;                                  // 0x0038(0x0014)(NoDestructor, NativeAccessSpecifierPublic)
	struct FGizmoElementColorAttribute            InteractVertexColor;                               // 0x004C(0x0014)(NoDestructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FGizmoElementMeshRenderStateAttributes;

// ScriptStruct InteractiveToolsFramework.GizmoElementLineRenderStateAttributes
// 0x003C (0x003C - 0x0000)
struct FGizmoElementLineRenderStateAttributes final
{
public:
	struct FGizmoElementColorAttribute            LineColor;                                         // 0x0000(0x0014)(NoDestructor, NativeAccessSpecifierPublic)
	struct FGizmoElementColorAttribute            HoverLineColor;                                    // 0x0014(0x0014)(NoDestructor, NativeAccessSpecifierPublic)
	struct FGizmoElementColorAttribute            InteractLineColor;                                 // 0x0028(0x0014)(NoDestructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FGizmoElementLineRenderStateAttributes;

// ScriptStruct InteractiveToolsFramework.GizmoFloatParameterChange
// 0x0008 (0x0008 - 0x0000)
struct FGizmoFloatParameterChange final
{
public:
	float                                         InitialValue;                                      // 0x0000(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         CurrentValue;                                      // 0x0004(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FGizmoFloatParameterChange;

// ScriptStruct InteractiveToolsFramework.BrushStampData
// 0x0140 (0x0140 - 0x0000)
struct alignas(0x08) FBrushStampData final
{
public:
	uint8                                         Pad_0[0x140];                                      // 0x0000(0x0140)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FBrushStampData;

// ScriptStruct InteractiveToolsFramework.BehaviorInfo
// 0x0020 (0x0020 - 0x0000)
struct FBehaviorInfo final
{
public:
	class UInputBehavior*                         Behavior;                                          // 0x0000(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	uint8                                         Pad_8[0x18];                                       // 0x0008(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FBehaviorInfo;

// ScriptStruct InteractiveToolsFramework.InputRayHit
// 0x0040 (0x0040 - 0x0000)
struct FInputRayHit final
{
public:
	bool                                          bHit;                                              // 0x0000(0x0001)(BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_1[0x7];                                        // 0x0001(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	double                                        HitDepth;                                          // 0x0008(0x0008)(BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FVector                                HitNormal;                                         // 0x0010(0x0018)(BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bHasHitNormal;                                     // 0x0028(0x0001)(BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_29[0x3];                                       // 0x0029(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         HitIdentifier;                                     // 0x002C(0x0004)(BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_30[0x8];                                       // 0x0030(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	TWeakObjectPtr<class UObject>                 HitObject;                                         // 0x0038(0x0008)(BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FInputRayHit;

// ScriptStruct InteractiveToolsFramework.DeviceButtonState
// 0x0020 (0x0020 - 0x0000)
struct FDeviceButtonState final
{
public:
	struct FKey                                   Button;                                            // 0x0000(0x0018)(BlueprintVisible, Transient, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bPressed;                                          // 0x0018(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bDown;                                             // 0x0019(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bReleased;                                         // 0x001A(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bDoubleClicked;                                    // 0x001B(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_1C[0x4];                                       // 0x001C(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FDeviceButtonState;

// ScriptStruct InteractiveToolsFramework.KeyboardInputDeviceState
// 0x0020 (0x0020 - 0x0000)
struct FKeyboardInputDeviceState final
{
public:
	struct FDeviceButtonState                     ActiveKey;                                         // 0x0000(0x0020)(BlueprintVisible, Transient, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FKeyboardInputDeviceState;

// ScriptStruct InteractiveToolsFramework.MouseInputDeviceState
// 0x00B8 (0x00B8 - 0x0000)
struct FMouseInputDeviceState final
{
public:
	struct FDeviceButtonState                     Left;                                              // 0x0000(0x0020)(BlueprintVisible, Transient, NativeAccessSpecifierPublic)
	struct FDeviceButtonState                     Middle;                                            // 0x0020(0x0020)(BlueprintVisible, Transient, NativeAccessSpecifierPublic)
	struct FDeviceButtonState                     Right;                                             // 0x0040(0x0020)(BlueprintVisible, Transient, NativeAccessSpecifierPublic)
	float                                         WheelDelta;                                        // 0x0060(0x0004)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_64[0x4];                                       // 0x0064(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	struct FVector2D                              Position2D;                                        // 0x0068(0x0010)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FVector2D                              Delta2D;                                           // 0x0078(0x0010)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FRay                                   WorldRay;                                          // 0x0088(0x0030)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FMouseInputDeviceState;

// ScriptStruct InteractiveToolsFramework.InputDeviceState
// 0x00E0 (0x00E0 - 0x0000)
struct FInputDeviceState final
{
public:
	EInputDevices                                 InputDevice;                                       // 0x0000(0x0004)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bShiftKeyDown;                                     // 0x0004(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bAltKeyDown;                                       // 0x0005(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bCtrlKeyDown;                                      // 0x0006(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bCmdKeyDown;                                       // 0x0007(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FKeyboardInputDeviceState              keyboard;                                          // 0x0008(0x0020)(BlueprintVisible, Transient, NativeAccessSpecifierPublic)
	struct FMouseInputDeviceState                 Mouse;                                             // 0x0028(0x00B8)(BlueprintVisible, Transient, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FInputDeviceState;

// ScriptStruct InteractiveToolsFramework.InputDeviceRay
// 0x0048 (0x0048 - 0x0000)
struct FInputDeviceRay final
{
public:
	struct FRay                                   WorldRay;                                          // 0x0000(0x0030)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, NativeAccessSpecifierPublic)
	bool                                          bHas2D;                                            // 0x0030(0x0001)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_31[0x7];                                       // 0x0031(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	struct FVector2D                              ScreenPosition;                                    // 0x0038(0x0010)(BlueprintVisible, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FInputDeviceRay;

// ScriptStruct InteractiveToolsFramework.ActiveGizmo
// 0x0030 (0x0030 - 0x0000)
struct FActiveGizmo final
{
public:
	class UInteractiveGizmo*                      Gizmo;                                             // 0x0000(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	uint8                                         Pad_8[0x28];                                       // 0x0008(0x0028)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FActiveGizmo;

SDK_NAMESPACE_END
