#pragma once

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

// Package: RigLogicModule

#include "Basic.hpp"

#include "Engine_structs.hpp"
#include "ControlRig_structs.hpp"


SDK_NAMESPACE_START

// Enum RigLogicModule.EArchetype
// NumValues: 0x0007
enum class EArchetype : uint8
{
	Asian                                    = 0,
	Black                                    = 1,
	Caucasian                                = 2,
	Hispanic                                 = 3,
	Alien                                    = 4,
	Other                                    = 5,
	EArchetype_MAX                           = 6,
};

// Enum RigLogicModule.EGender
// NumValues: 0x0004
enum class EGender : uint8
{
	Male                                     = 0,
	Female                                   = 1,
	Other                                    = 2,
	EGender_MAX                              = 3,
};

// Enum RigLogicModule.ETranslationUnit
// NumValues: 0x0003
enum class ETranslationUnit : uint8
{
	CM                                       = 0,
	M                                        = 1,
	ETranslationUnit_MAX                     = 2,
};

// Enum RigLogicModule.ERotationUnit
// NumValues: 0x0003
enum class ERotationUnit : uint8
{
	Degrees                                  = 0,
	Radians                                  = 1,
	ERotationUnit_MAX                        = 2,
};

// Enum RigLogicModule.EDirection
// NumValues: 0x0007
enum class EDirection : uint8
{
	Left                                     = 0,
	Right                                    = 1,
	Up                                       = 2,
	Down                                     = 3,
	Front                                    = 4,
	Back                                     = 5,
	EDirection_MAX                           = 6,
};

// Enum RigLogicModule.ETranslationRepresentation
// NumValues: 0x0002
enum class ETranslationRepresentation : uint8
{
	Vector                                   = 0,
	ETranslationRepresentation_MAX           = 1,
};

// Enum RigLogicModule.ERotationRepresentation
// NumValues: 0x0003
enum class ERotationRepresentation : uint8
{
	EulerAngles                              = 0,
	Quaternion                               = 1,
	ERotationRepresentation_MAX              = 2,
};

// Enum RigLogicModule.EScaleRepresentation
// NumValues: 0x0002
enum class EScaleRepresentation : uint8
{
	Vector                                   = 0,
	EScaleRepresentation_MAX                 = 1,
};

// Enum RigLogicModule.EAutomaticRadius
// NumValues: 0x0003
enum class EAutomaticRadius : uint8
{
	On                                       = 0,
	Off                                      = 1,
	EAutomaticRadius_MAX                     = 2,
};

// Enum RigLogicModule.ETwistAxis
// NumValues: 0x0004
enum class ETwistAxis : uint8
{
	X                                        = 0,
	Y                                        = 1,
	Z                                        = 2,
	ETwistAxis_MAX                           = 3,
};

// Enum RigLogicModule.EDNADataLayer
// NumValues: 0x000A
enum class EDNADataLayer : uint8
{
	None                                     = 0,
	Descriptor                               = 1,
	Definition                               = 3,
	Behavior                                 = 7,
	Geometry                                 = 11,
	GeometryWithoutBlendShapes               = 19,
	MachineLearnedBehavior                   = 35,
	RBFBehavior                              = 71,
	All                                      = 111,
	EDNADataLayer_MAX                        = 112,
};

// Enum RigLogicModule.EActivationFunction
// NumValues: 0x0006
enum class EActivationFunction : uint8
{
	Linear                                   = 0,
	ReLU                                     = 1,
	LeakyReLU                                = 2,
	Tanh                                     = 3,
	Sigmoid                                  = 4,
	EActivationFunction_MAX                  = 5,
};

// Enum RigLogicModule.ERigLogicCalculationType
// NumValues: 0x0006
enum class ERigLogicCalculationType : uint8
{
	Scalar                                   = 0,
	SSE                                      = 1,
	AVX                                      = 2,
	NEON                                     = 3,
	AnyVector                                = 4,
	ERigLogicCalculationType_MAX             = 5,
};

// Enum RigLogicModule.ERigLogicTranslationType
// NumValues: 0x0003
enum class ERigLogicTranslationType : uint8
{
	None                                     = 0,
	Vector                                   = 3,
	ERigLogicTranslationType_MAX             = 4,
};

// Enum RigLogicModule.ERigLogicRotationType
// NumValues: 0x0004
enum class ERigLogicRotationType : uint8
{
	None                                     = 0,
	EulerAngles                              = 3,
	Quaternions                              = 4,
	ERigLogicRotationType_MAX                = 5,
};

// Enum RigLogicModule.ERigLogicRotationOrder
// NumValues: 0x0007
enum class ERigLogicRotationOrder : uint8
{
	XYZ                                      = 0,
	XZY                                      = 1,
	YXZ                                      = 2,
	YZX                                      = 3,
	ZXY                                      = 4,
	ZYX                                      = 5,
	ERigLogicRotationOrder_MAX               = 6,
};

// Enum RigLogicModule.ERigLogicScaleType
// NumValues: 0x0003
enum class ERigLogicScaleType : uint8
{
	None                                     = 0,
	Vector                                   = 3,
	ERigLogicScaleType_MAX                   = 4,
};

// Enum RigLogicModule.ELodUpdateOption
// NumValues: 0x0004
enum class ELodUpdateOption : uint8
{
	LOD0Only                                 = 0,
	LOD1AndHigher                            = 1,
	All                                      = 2,
	ELodUpdateOption_MAX                     = 3,
};

// ScriptStruct RigLogicModule.CoordinateSystem
// 0x0003 (0x0003 - 0x0000)
struct FCoordinateSystem final
{
public:
	EDirection                                    XAxis;                                             // 0x0000(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EDirection                                    YAxis;                                             // 0x0001(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	EDirection                                    ZAxis;                                             // 0x0002(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FCoordinateSystem;

// ScriptStruct RigLogicModule.MeshBlendShapeChannelMapping
// 0x0008 (0x0008 - 0x0000)
struct FMeshBlendShapeChannelMapping final
{
public:
	int32                                         MeshIndex;                                         // 0x0000(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         BlendShapeChannelIndex;                            // 0x0004(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FMeshBlendShapeChannelMapping;

// ScriptStruct RigLogicModule.TextureCoordinate
// 0x0008 (0x0008 - 0x0000)
struct FTextureCoordinate final
{
public:
	float                                         U;                                                 // 0x0000(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         V;                                                 // 0x0004(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FTextureCoordinate;

// ScriptStruct RigLogicModule.VertexLayout
// 0x000C (0x000C - 0x0000)
struct FVertexLayout final
{
public:
	int32                                         position;                                          // 0x0000(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         TextureCoordinate;                                 // 0x0004(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         Normal;                                            // 0x0008(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FVertexLayout;

// ScriptStruct RigLogicModule.RigLogicConfiguration
// 0x0018 (0x0018 - 0x0000)
struct FRigLogicConfiguration final
{
public:
	ERigLogicCalculationType                      CalculationType;                                   // 0x0000(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          LoadJoints;                                        // 0x0001(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          LoadBlendShapes;                                   // 0x0002(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          LoadAnimatedMaps;                                  // 0x0003(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          LoadMachineLearnedBehavior;                        // 0x0004(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          LoadRBFBehavior;                                   // 0x0005(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          LoadTwistSwingBehavior;                            // 0x0006(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ERigLogicTranslationType                      TranslationType;                                   // 0x0007(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ERigLogicRotationType                         RotationType;                                      // 0x0008(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ERigLogicRotationOrder                        RotationOrder;                                     // 0x0009(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	ERigLogicScaleType                            ScaleType;                                         // 0x000A(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_B[0x1];                                        // 0x000B(0x0001)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         TranslationPruningThreshold;                       // 0x000C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RotationPruningThreshold;                          // 0x0010(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         ScalePruningThreshold;                             // 0x0014(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FRigLogicConfiguration;

// ScriptStruct RigLogicModule.AnimNode_RigLogic
// 0x0060 (0x0070 - 0x0010)
struct FAnimNode_RigLogic final : public FAnimNode_Base
{
public:
	struct FPoseLink                              AnimSequence;                                      // 0x0010(0x0010)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	bool                                          CacheAnimCurveNames;                               // 0x0020(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_21[0x3];                                       // 0x0021(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         LODThreshold;                                      // 0x0024(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_28[0x48];                                      // 0x0028(0x0048)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FAnimNode_RigLogic;

// ScriptStruct RigLogicModule.BoneIndexControlAttributeMapping
// 0x0018 (0x0018 - 0x0000)
struct alignas(0x04) FBoneIndexControlAttributeMapping final
{
public:
	uint8                                         Pad_0[0x18];                                       // 0x0000(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FBoneIndexControlAttributeMapping;

// ScriptStruct RigLogicModule.RigUnit_RigLogic_IntArray
// 0x0010 (0x0010 - 0x0000)
struct FRigUnit_RigLogic_IntArray final
{
public:
	TArray<int32>                                 Values;                                            // 0x0000(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FRigUnit_RigLogic_IntArray;

// ScriptStruct RigLogicModule.RigUnit_RigLogic_Data
// 0x00A8 (0x00A8 - 0x0000)
struct FRigUnit_RigLogic_Data final
{
public:
	TWeakObjectPtr<class USkeletalMeshComponent>  SkelMeshComponent;                                 // 0x0000(0x0008)(ExportObject, ZeroConstructor, Transient, InstancedReference, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_8[0x18];                                       // 0x0008(0x0018)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<int32>                                 InputCurveIndices;                                 // 0x0020(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	TArray<int32>                                 NeuralNetMaskCurveIndices;                         // 0x0030(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	TArray<int32>                                 HierarchyBoneIndices;                              // 0x0040(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	TArray<struct FBoneIndexControlAttributeMapping> DriverJointsToControlAttributesMap;             // 0x0050(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	TArray<struct FRigUnit_RigLogic_IntArray>     MorphTargetCurveIndices;                           // 0x0060(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	TArray<struct FRigUnit_RigLogic_IntArray>     BlendShapeIndices;                                 // 0x0070(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	TArray<struct FRigUnit_RigLogic_IntArray>     CurveElementIndicesForAnimMaps;                    // 0x0080(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	TArray<struct FRigUnit_RigLogic_IntArray>     RigLogicIndicesForAnimMaps;                        // 0x0090(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPublic)
	uint32                                        CurrentLOD;                                        // 0x00A0(0x0004)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_A4[0x4];                                       // 0x00A4(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FRigUnit_RigLogic_Data;

// ScriptStruct RigLogicModule.RigUnit_RigLogic
// 0x00B0 (0x00C0 - 0x0010)
struct FRigUnit_RigLogic final : public FRigUnitMutable
{
public:
	struct FRigUnit_RigLogic_Data                 Data;                                              // 0x0010(0x00A8)(Transient, ContainsInstancedReference, NativeAccessSpecifierPrivate)
	bool                                          bIsInitialized;                                    // 0x00B8(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_B9[0x7];                                       // 0x00B9(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FRigUnit_RigLogic;

SDK_NAMESPACE_END
