#pragma once

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

// Package: LiveLink

#include "Basic.hpp"

#include "Engine_classes.hpp"
#include "CoreUObject_classes.hpp"
#include "LiveLinkInterface_structs.hpp"
#include "TimeManagement_classes.hpp"
#include "MovieScene_structs.hpp"
#include "MovieScene_classes.hpp"
#include "MovieSceneTracks_classes.hpp"


namespace SDK
{

// Class LiveLink.LiveLinkBlueprintLibrary
// 0x0000 (0x0028 - 0x0028)
class ULiveLinkBlueprintLibrary final : public UBlueprintFunctionLibrary
{
public:
	static int32 ChildCount(struct FLiveLinkTransform& LiveLinkTransform);
	static void ComponentSpaceTransform(struct FLiveLinkTransform& LiveLinkTransform, struct FTransform* Transform);
	static void GetChildren(struct FLiveLinkTransform& LiveLinkTransform, TArray<struct FLiveLinkTransform>* Children);
	static void GetCurves(struct FSubjectFrameHandle& SubjectFrameHandle, TMap<class FName, float>* Curves);
	static void GetMetadata(struct FSubjectFrameHandle& SubjectFrameHandle, struct FSubjectMetadata* MetaData);
	static void GetParent(struct FLiveLinkTransform& LiveLinkTransform, struct FLiveLinkTransform* Parent);
	static void GetRootTransform(struct FSubjectFrameHandle& SubjectFrameHandle, struct FLiveLinkTransform* LiveLinkTransform);
	static class FText GetSourceMachineName(struct FLiveLinkSourceHandle& SourceHandle);
	static class FText GetSourceStatus(struct FLiveLinkSourceHandle& SourceHandle);
	static class FText GetSourceType(struct FLiveLinkSourceHandle& SourceHandle);
	static void GetTransformByIndex(struct FSubjectFrameHandle& SubjectFrameHandle, int32 TransformIndex, struct FLiveLinkTransform* LiveLinkTransform);
	static void GetTransformByName(struct FSubjectFrameHandle& SubjectFrameHandle, class FName Param_TransformName, struct FLiveLinkTransform* LiveLinkTransform);
	static bool HasParent(struct FLiveLinkTransform& LiveLinkTransform);
	static bool IsSourceStillValid(struct FLiveLinkSourceHandle& SourceHandle);
	static int32 NumberOfTransforms(struct FSubjectFrameHandle& SubjectFrameHandle);
	static void ParentBoneSpaceTransform(struct FLiveLinkTransform& LiveLinkTransform, struct FTransform* Transform);
	static bool RequestShutdown(struct FLiveLinkSourceHandle& SourceHandle);
	static void TransformName(struct FLiveLinkTransform& LiveLinkTransform, class FName* Param_Name);
	static void TransformNames(struct FSubjectFrameHandle& SubjectFrameHandle, TArray<class FName>* Param_TransformNames);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"LiveLinkBlueprintLibrary">();
	}
	static class ULiveLinkBlueprintLibrary* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkBlueprintLibrary>();
	}
};
static_assert(alignof(ULiveLinkBlueprintLibrary) == 0x000008, "Wrong alignment on ULiveLinkBlueprintLibrary");
static_assert(sizeof(ULiveLinkBlueprintLibrary) == 0x000028, "Wrong size on ULiveLinkBlueprintLibrary");

// Class LiveLink.LiveLinkTimeSynchronizationSource
// 0x0060 (0x0090 - 0x0030)
class ULiveLinkTimeSynchronizationSource final : public UTimeSynchronizationSource
{
public:
	class FName                                   SubjectName;                                       // 0x0030(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_38[0x58];                                      // 0x0038(0x0058)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"LiveLinkTimeSynchronizationSource">();
	}
	static class ULiveLinkTimeSynchronizationSource* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkTimeSynchronizationSource>();
	}
};
static_assert(alignof(ULiveLinkTimeSynchronizationSource) == 0x000008, "Wrong alignment on ULiveLinkTimeSynchronizationSource");
static_assert(sizeof(ULiveLinkTimeSynchronizationSource) == 0x000090, "Wrong size on ULiveLinkTimeSynchronizationSource");
static_assert(offsetof(ULiveLinkTimeSynchronizationSource, SubjectName) == 0x000030, "Member 'ULiveLinkTimeSynchronizationSource::SubjectName' has a wrong offset!");

// Class LiveLink.LiveLinkComponent
// 0x0020 (0x0118 - 0x00F8)
class ULiveLinkComponent final : public UActorComponent
{
public:
	UMulticastDelegateProperty_                   OnLiveLinkUpdated;                                 // 0x00F8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_108[0x10];                                     // 0x0108(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void GetAvailableSubjectNames(TArray<class FName>* SubjectNames);
	void GetSubjectData(const class FName SubjectName, bool* bSuccess, struct FSubjectFrameHandle* SubjectFrameHandle);
	void GetSubjectDataAtSceneTime(const class FName SubjectName, const struct FTimecode& SceneTime, bool* bSuccess, struct FSubjectFrameHandle* SubjectFrameHandle);
	void GetSubjectDataAtWorldTime(const class FName SubjectName, const float WorldTime, bool* bSuccess, struct FSubjectFrameHandle* SubjectFrameHandle);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"LiveLinkComponent">();
	}
	static class ULiveLinkComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkComponent>();
	}
};
static_assert(alignof(ULiveLinkComponent) == 0x000008, "Wrong alignment on ULiveLinkComponent");
static_assert(sizeof(ULiveLinkComponent) == 0x000118, "Wrong size on ULiveLinkComponent");
static_assert(offsetof(ULiveLinkComponent, OnLiveLinkUpdated) == 0x0000F8, "Member 'ULiveLinkComponent::OnLiveLinkUpdated' has a wrong offset!");

// Class LiveLink.LiveLinkDrivenComponent
// 0x0020 (0x0118 - 0x00F8)
class ULiveLinkDrivenComponent final : public UActorComponent
{
public:
	struct FLiveLinkSubjectName                   SubjectName;                                       // 0x00F8(0x0008)(Edit, NoDestructor, NativeAccessSpecifierPublic)
	class FName                                   ActorTransformBone;                                // 0x0100(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bModifyActorTransform;                             // 0x0108(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bSetRelativeLocation;                              // 0x0109(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_10A[0xE];                                      // 0x010A(0x000E)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"LiveLinkDrivenComponent">();
	}
	static class ULiveLinkDrivenComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkDrivenComponent>();
	}
};
static_assert(alignof(ULiveLinkDrivenComponent) == 0x000008, "Wrong alignment on ULiveLinkDrivenComponent");
static_assert(sizeof(ULiveLinkDrivenComponent) == 0x000118, "Wrong size on ULiveLinkDrivenComponent");
static_assert(offsetof(ULiveLinkDrivenComponent, SubjectName) == 0x0000F8, "Member 'ULiveLinkDrivenComponent::SubjectName' has a wrong offset!");
static_assert(offsetof(ULiveLinkDrivenComponent, ActorTransformBone) == 0x000100, "Member 'ULiveLinkDrivenComponent::ActorTransformBone' has a wrong offset!");
static_assert(offsetof(ULiveLinkDrivenComponent, bModifyActorTransform) == 0x000108, "Member 'ULiveLinkDrivenComponent::bModifyActorTransform' has a wrong offset!");
static_assert(offsetof(ULiveLinkDrivenComponent, bSetRelativeLocation) == 0x000109, "Member 'ULiveLinkDrivenComponent::bSetRelativeLocation' has a wrong offset!");

// Class LiveLink.LiveLinkInstance
// 0x0008 (0x0270 - 0x0268)
class ULiveLinkInstance final : public UAnimInstance
{
public:
	class ULiveLinkRetargetAsset*                 CurrentRetargetAsset;                              // 0x0268(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"LiveLinkInstance">();
	}
	static class ULiveLinkInstance* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkInstance>();
	}
};
static_assert(alignof(ULiveLinkInstance) == 0x000008, "Wrong alignment on ULiveLinkInstance");
static_assert(sizeof(ULiveLinkInstance) == 0x000270, "Wrong size on ULiveLinkInstance");
static_assert(offsetof(ULiveLinkInstance, CurrentRetargetAsset) == 0x000268, "Member 'ULiveLinkInstance::CurrentRetargetAsset' has a wrong offset!");

// Class LiveLink.LiveLinkMessageBusFinder
// 0x0058 (0x0080 - 0x0028)
class ULiveLinkMessageBusFinder final : public UObject
{
public:
	uint8                                         Pad_28[0x58];                                      // 0x0028(0x0058)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static void ConnectToProvider(struct FProviderPollResult& Provider, struct FLiveLinkSourceHandle* SourceHandle);
	static class ULiveLinkMessageBusFinder* ConstructMessageBusFinder();

	void GetAvailableProviders(class UObject* WorldContextObject, const struct FLatentActionInfo& LatentInfo, float Duration, TArray<struct FProviderPollResult>* AvailableProviders);

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"LiveLinkMessageBusFinder">();
	}
	static class ULiveLinkMessageBusFinder* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkMessageBusFinder>();
	}
};
static_assert(alignof(ULiveLinkMessageBusFinder) == 0x000008, "Wrong alignment on ULiveLinkMessageBusFinder");
static_assert(sizeof(ULiveLinkMessageBusFinder) == 0x000080, "Wrong size on ULiveLinkMessageBusFinder");

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

// Class LiveLink.LiveLinkRemapAsset
// 0x00A8 (0x00D0 - 0x0028)
class ULiveLinkRemapAsset : public ULiveLinkRetargetAsset
{
public:
	uint8                                         Pad_28[0xA8];                                      // 0x0028(0x00A8)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	class FName GetRemappedBoneName(class FName BoneName) const;
	class FName GetRemappedCurveName(class FName CurveName) const;
	void RemapCurveElements(TMap<class FName, float>& CurveItems) const;

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"LiveLinkRemapAsset">();
	}
	static class ULiveLinkRemapAsset* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkRemapAsset>();
	}
};
static_assert(alignof(ULiveLinkRemapAsset) == 0x000008, "Wrong alignment on ULiveLinkRemapAsset");
static_assert(sizeof(ULiveLinkRemapAsset) == 0x0000D0, "Wrong size on ULiveLinkRemapAsset");

// Class LiveLink.MovieSceneLiveLinkSection
// 0x00C8 (0x01A8 - 0x00E0)
class UMovieSceneLiveLinkSection final : public UMovieSceneSection
{
public:
	class FName                                   SubjectName;                                       // 0x00E0(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FLiveLinkFrameData                     TemplateToPush;                                    // 0x00E8(0x0090)(NativeAccessSpecifierPublic)
	struct FLiveLinkRefSkeleton                   RefSkeleton;                                       // 0x0178(0x0020)(NativeAccessSpecifierPublic)
	TArray<struct FMovieSceneFloatChannel>        PropertyFloatChannels;                             // 0x0198(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"MovieSceneLiveLinkSection">();
	}
	static class UMovieSceneLiveLinkSection* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMovieSceneLiveLinkSection>();
	}
};
static_assert(alignof(UMovieSceneLiveLinkSection) == 0x000008, "Wrong alignment on UMovieSceneLiveLinkSection");
static_assert(sizeof(UMovieSceneLiveLinkSection) == 0x0001A8, "Wrong size on UMovieSceneLiveLinkSection");
static_assert(offsetof(UMovieSceneLiveLinkSection, SubjectName) == 0x0000E0, "Member 'UMovieSceneLiveLinkSection::SubjectName' has a wrong offset!");
static_assert(offsetof(UMovieSceneLiveLinkSection, TemplateToPush) == 0x0000E8, "Member 'UMovieSceneLiveLinkSection::TemplateToPush' has a wrong offset!");
static_assert(offsetof(UMovieSceneLiveLinkSection, RefSkeleton) == 0x000178, "Member 'UMovieSceneLiveLinkSection::RefSkeleton' has a wrong offset!");
static_assert(offsetof(UMovieSceneLiveLinkSection, PropertyFloatChannels) == 0x000198, "Member 'UMovieSceneLiveLinkSection::PropertyFloatChannels' has a wrong offset!");

// Class LiveLink.MovieSceneLiveLinkTrack
// 0x0000 (0x0080 - 0x0080)
class UMovieSceneLiveLinkTrack final : public UMovieScenePropertyTrack
{
public:
	static class UClass* StaticClass()
	{
		return StaticClassImpl<"MovieSceneLiveLinkTrack">();
	}
	static class UMovieSceneLiveLinkTrack* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMovieSceneLiveLinkTrack>();
	}
};
static_assert(alignof(UMovieSceneLiveLinkTrack) == 0x000008, "Wrong alignment on UMovieSceneLiveLinkTrack");
static_assert(sizeof(UMovieSceneLiveLinkTrack) == 0x000080, "Wrong size on UMovieSceneLiveLinkTrack");

}

