#pragma once

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

// Package: ControlRig

#include "Basic.hpp"

#include "AnimGraphRuntime_classes.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "ControlRig_structs.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "MovieSceneTracks_classes.hpp"
#include "LevelSequence_classes.hpp"
#include "MovieScene_structs.hpp"
#include "MovieScene_classes.hpp"


namespace SDK
{

// Class ControlRig.ControlRigObjectHolder
// 0x0010 (0x0038 - 0x0028)
class UControlRigObjectHolder final : public UObject
{
public:
	TArray<class UObject*>                        Objects;                                           // 0x0028(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigObjectHolder">();
	}
	static class UControlRigObjectHolder* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRigObjectHolder>();
	}
};
static_assert(alignof(UControlRigObjectHolder) == 0x000008, "Wrong alignment on UControlRigObjectHolder");
static_assert(sizeof(UControlRigObjectHolder) == 0x000038, "Wrong size on UControlRigObjectHolder");
static_assert(offsetof(UControlRigObjectHolder, Objects) == 0x000028, "Member 'UControlRigObjectHolder::Objects' has a wrong offset!");

// Class ControlRig.ControlRig
// 0x0128 (0x0150 - 0x0028)
class UControlRig final : public UObject
{
public:
	uint8                                         Pad_28[0x14];                                      // 0x0028(0x0014)(Fixing Size After Last Property [ Dumper-7 ])
	ERigExecutionType                             ExecutionType;                                     // 0x003C(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_3D[0x3];                                       // 0x003D(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	struct FRigHierarchyContainer                 Hierarchy;                                         // 0x0040(0x00C0)(Edit, DisableEditOnInstance, EditConst, NativeAccessSpecifierPrivate)
	TArray<struct FControlRigOperator>            Operators;                                         // 0x0100(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	uint8                                         Pad_110[0x40];                                     // 0x0110(0x0040)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void SetGlobalTransform(const class FName JointName, const struct FTransform& InTransform);

	float GetDeltaTime() const;
	struct FTransform GetGlobalTransform(const class FName JointName) const;

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRig">();
	}
	static class UControlRig* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRig>();
	}
};
static_assert(alignof(UControlRig) == 0x000008, "Wrong alignment on UControlRig");
static_assert(sizeof(UControlRig) == 0x000150, "Wrong size on UControlRig");
static_assert(offsetof(UControlRig, ExecutionType) == 0x00003C, "Member 'UControlRig::ExecutionType' has a wrong offset!");
static_assert(offsetof(UControlRig, Hierarchy) == 0x000040, "Member 'UControlRig::Hierarchy' has a wrong offset!");
static_assert(offsetof(UControlRig, Operators) == 0x000100, "Member 'UControlRig::Operators' has a wrong offset!");

// Class ControlRig.ControlRigSequence
// 0x0058 (0x04F0 - 0x0498)
class UControlRigSequence final : public ULevelSequence
{
public:
	TSoftObjectPtr<class UAnimSequence>           LastExportedToAnimationSequence;                   // 0x0498(0x0028)(AssetRegistrySearchable, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TSoftObjectPtr<class USkeletalMesh>           LastExportedUsingSkeletalMesh;                     // 0x04C0(0x0028)(AssetRegistrySearchable, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         LastExportedFrameRate;                             // 0x04E8(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, AssetRegistrySearchable, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_4EC[0x4];                                      // 0x04EC(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigSequence">();
	}
	static class UControlRigSequence* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRigSequence>();
	}
};
static_assert(alignof(UControlRigSequence) == 0x000008, "Wrong alignment on UControlRigSequence");
static_assert(sizeof(UControlRigSequence) == 0x0004F0, "Wrong size on UControlRigSequence");
static_assert(offsetof(UControlRigSequence, LastExportedToAnimationSequence) == 0x000498, "Member 'UControlRigSequence::LastExportedToAnimationSequence' has a wrong offset!");
static_assert(offsetof(UControlRigSequence, LastExportedUsingSkeletalMesh) == 0x0004C0, "Member 'UControlRigSequence::LastExportedUsingSkeletalMesh' has a wrong offset!");
static_assert(offsetof(UControlRigSequence, LastExportedFrameRate) == 0x0004E8, "Member 'UControlRigSequence::LastExportedFrameRate' has a wrong offset!");

// Class ControlRig.ControlRigControl
// 0x0050 (0x0380 - 0x0330)
#pragma pack(push, 0x1)
class alignas(0x10) AControlRigControl : public AActor
{
public:
	class FString                                 PropertyPath;                                      // 0x0330(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FTransform                             Transform;                                         // 0x0340(0x0030)(Edit, BlueprintVisible, BlueprintReadOnly, EditConst, IsPlainOldData, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         bEnabled : 1;                                      // 0x0370(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Edit, BlueprintVisible, BlueprintReadOnly, EditConst, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bSelected : 1;                                     // 0x0370(0x0001)(BitIndex: 0x01, PropSize: 0x0001 (Edit, BlueprintVisible, BlueprintReadOnly, EditConst, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bHovered : 1;                                      // 0x0370(0x0001)(BitIndex: 0x02, PropSize: 0x0001 (Edit, BlueprintVisible, BlueprintReadOnly, EditConst, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         bManipulating : 1;                                 // 0x0370(0x0001)(BitIndex: 0x03, PropSize: 0x0001 (Edit, BlueprintVisible, BlueprintReadOnly, EditConst, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         Pad_371[0x7];                                      // 0x0371(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void OnEnabledChanged(bool bIsEnabled);
	void OnHoveredChanged(bool bIsSelected);
	void OnManipulatingChanged(bool bIsManipulating);
	void OnSelectionChanged(bool bIsSelected);
	void OnTransformChanged(const struct FTransform& NewTransform);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigControl">();
	}
	static class AControlRigControl* GetDefaultObj()
	{
		return GetDefaultObjImpl<AControlRigControl>();
	}
};
#pragma pack(pop)
static_assert(alignof(AControlRigControl) == 0x000010, "Wrong alignment on AControlRigControl");
static_assert(sizeof(AControlRigControl) == 0x000380, "Wrong size on AControlRigControl");
static_assert(offsetof(AControlRigControl, PropertyPath) == 0x000330, "Member 'AControlRigControl::PropertyPath' has a wrong offset!");
static_assert(offsetof(AControlRigControl, Transform) == 0x000340, "Member 'AControlRigControl::Transform' has a wrong offset!");

// Class ControlRig.ControlRigBindingTrack
// 0x0000 (0x0078 - 0x0078)
class UControlRigBindingTrack final : public UMovieSceneSpawnTrack
{
public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigBindingTrack">();
	}
	static class UControlRigBindingTrack* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRigBindingTrack>();
	}
};
static_assert(alignof(UControlRigBindingTrack) == 0x000008, "Wrong alignment on UControlRigBindingTrack");
static_assert(sizeof(UControlRigBindingTrack) == 0x000078, "Wrong size on UControlRigBindingTrack");

// Class ControlRig.ControlRigBlueprintGeneratedClass
// 0x0000 (0x02E0 - 0x02E0)
class UControlRigBlueprintGeneratedClass final : public UBlueprintGeneratedClass
{
public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigBlueprintGeneratedClass">();
	}
	static class UControlRigBlueprintGeneratedClass* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRigBlueprintGeneratedClass>();
	}
};
static_assert(alignof(UControlRigBlueprintGeneratedClass) == 0x000008, "Wrong alignment on UControlRigBlueprintGeneratedClass");
static_assert(sizeof(UControlRigBlueprintGeneratedClass) == 0x0002E0, "Wrong size on UControlRigBlueprintGeneratedClass");

// Class ControlRig.ControlRigComponent
// 0x0048 (0x0140 - 0x00F8)
class UControlRigComponent final : public UActorComponent
{
public:
	UMulticastDelegateProperty_                   OnPreInitializeDelegate;                           // 0x00F8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	UMulticastDelegateProperty_                   OnPostInitializeDelegate;                          // 0x0108(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	UMulticastDelegateProperty_                   OnPreEvaluateDelegate;                             // 0x0118(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	UMulticastDelegateProperty_                   OnPostEvaluateDelegate;                            // 0x0128(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	class UControlRig*                            ControlRig;                                        // 0x0138(0x0008)(Edit, ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	void OnPostEvaluate();
	void OnPostInitialize();
	void OnPreEvaluate();
	void OnPreInitialize();

	class UControlRig* BP_GetControlRig() const;

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigComponent">();
	}
	static class UControlRigComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRigComponent>();
	}
};
static_assert(alignof(UControlRigComponent) == 0x000008, "Wrong alignment on UControlRigComponent");
static_assert(sizeof(UControlRigComponent) == 0x000140, "Wrong size on UControlRigComponent");
static_assert(offsetof(UControlRigComponent, OnPreInitializeDelegate) == 0x0000F8, "Member 'UControlRigComponent::OnPreInitializeDelegate' has a wrong offset!");
static_assert(offsetof(UControlRigComponent, OnPostInitializeDelegate) == 0x000108, "Member 'UControlRigComponent::OnPostInitializeDelegate' has a wrong offset!");
static_assert(offsetof(UControlRigComponent, OnPreEvaluateDelegate) == 0x000118, "Member 'UControlRigComponent::OnPreEvaluateDelegate' has a wrong offset!");
static_assert(offsetof(UControlRigComponent, OnPostEvaluateDelegate) == 0x000128, "Member 'UControlRigComponent::OnPostEvaluateDelegate' has a wrong offset!");
static_assert(offsetof(UControlRigComponent, ControlRig) == 0x000138, "Member 'UControlRigComponent::ControlRig' has a wrong offset!");

// Class ControlRig.ControlRigLibrary
// 0x0000 (0x0028 - 0x0028)
class UControlRigLibrary final : public UBlueprintFunctionLibrary
{
public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigLibrary">();
	}
	static class UControlRigLibrary* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRigLibrary>();
	}
};
static_assert(alignof(UControlRigLibrary) == 0x000008, "Wrong alignment on UControlRigLibrary");
static_assert(sizeof(UControlRigLibrary) == 0x000028, "Wrong size on UControlRigLibrary");

// Class ControlRig.ControlRigSequencerAnimInstance
// 0x0000 (0x0270 - 0x0270)
class UControlRigSequencerAnimInstance final : public UAnimSequencerInstance
{
public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigSequencerAnimInstance">();
	}
	static class UControlRigSequencerAnimInstance* GetDefaultObj()
	{
		return GetDefaultObjImpl<UControlRigSequencerAnimInstance>();
	}
};
static_assert(alignof(UControlRigSequencerAnimInstance) == 0x000008, "Wrong alignment on UControlRigSequencerAnimInstance");
static_assert(sizeof(UControlRigSequencerAnimInstance) == 0x000270, "Wrong size on UControlRigSequencerAnimInstance");

// Class ControlRig.ControlRigStaticMeshControl
// 0x0010 (0x0390 - 0x0380)
class AControlRigStaticMeshControl final : public AControlRigControl
{
public:
	class USceneComponent*                        Scene;                                             // 0x0378(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UStaticMeshComponent*                   Mesh;                                              // 0x0380(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_388[0x8];                                      // 0x0388(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"ControlRigStaticMeshControl">();
	}
	static class AControlRigStaticMeshControl* GetDefaultObj()
	{
		return GetDefaultObjImpl<AControlRigStaticMeshControl>();
	}
};
static_assert(alignof(AControlRigStaticMeshControl) == 0x000010, "Wrong alignment on AControlRigStaticMeshControl");
static_assert(sizeof(AControlRigStaticMeshControl) == 0x000390, "Wrong size on AControlRigStaticMeshControl");
static_assert(offsetof(AControlRigStaticMeshControl, Scene) == 0x000378, "Member 'AControlRigStaticMeshControl::Scene' has a wrong offset!");
static_assert(offsetof(AControlRigStaticMeshControl, Mesh) == 0x000380, "Member 'AControlRigStaticMeshControl::Mesh' has a wrong offset!");

// Class ControlRig.MovieSceneControlRigSection
// 0x00B8 (0x0208 - 0x0150)
class UMovieSceneControlRigSection final : public UMovieSceneSubSection
{
public:
	bool                                          bAdditive;                                         // 0x0150(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bApplyBoneFilter;                                  // 0x0151(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_152[0x6];                                      // 0x0152(0x0006)(Fixing Size After Last Property [ Dumper-7 ])
	struct FInputBlendPose                        BoneFilter;                                        // 0x0158(0x0010)(Edit, NativeAccessSpecifierPublic)
	struct FMovieSceneFloatChannel                Weight;                                            // 0x0168(0x00A0)(NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"MovieSceneControlRigSection">();
	}
	static class UMovieSceneControlRigSection* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMovieSceneControlRigSection>();
	}
};
static_assert(alignof(UMovieSceneControlRigSection) == 0x000008, "Wrong alignment on UMovieSceneControlRigSection");
static_assert(sizeof(UMovieSceneControlRigSection) == 0x000208, "Wrong size on UMovieSceneControlRigSection");
static_assert(offsetof(UMovieSceneControlRigSection, bAdditive) == 0x000150, "Member 'UMovieSceneControlRigSection::bAdditive' has a wrong offset!");
static_assert(offsetof(UMovieSceneControlRigSection, bApplyBoneFilter) == 0x000151, "Member 'UMovieSceneControlRigSection::bApplyBoneFilter' has a wrong offset!");
static_assert(offsetof(UMovieSceneControlRigSection, BoneFilter) == 0x000158, "Member 'UMovieSceneControlRigSection::BoneFilter' has a wrong offset!");
static_assert(offsetof(UMovieSceneControlRigSection, Weight) == 0x000168, "Member 'UMovieSceneControlRigSection::Weight' has a wrong offset!");

// Class ControlRig.MovieSceneControlRigTrack
// 0x0000 (0x0068 - 0x0068)
class UMovieSceneControlRigTrack final : public UMovieSceneSubTrack
{
public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"MovieSceneControlRigTrack">();
	}
	static class UMovieSceneControlRigTrack* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMovieSceneControlRigTrack>();
	}
};
static_assert(alignof(UMovieSceneControlRigTrack) == 0x000008, "Wrong alignment on UMovieSceneControlRigTrack");
static_assert(sizeof(UMovieSceneControlRigTrack) == 0x000068, "Wrong size on UMovieSceneControlRigTrack");

}

