#pragma once

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

// Package: TressFX

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "TressFX_structs.hpp"


namespace SDK
{

// Class TressFX.TFXCardMeshComponent
// 0x0020 (0x0F80 - 0x0F60)
class UTFXCardMeshComponent final : public USkeletalMeshComponent
{
public:
	struct FSoftObjectPath                        CardMesh;                                          // 0x0F60(0x0018)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         VisibleQualityLevel;                               // 0x0F78(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_F7C[0x4];                                      // 0x0F7C(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TFXCardMeshComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TFXCardMeshComponent")
	}
	static class UTFXCardMeshComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTFXCardMeshComponent>();
	}
};
DUMPER7_ASSERTS_UTFXCardMeshComponent;

// Class TressFX.TressFXAsset
// 0x0248 (0x0270 - 0x0028)
class UTressFXAsset final : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         NumFollowStrandsPerGuide;                          // 0x0030(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RootSeparationFactor;                              // 0x0034(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         ClippingPercentage;                                // 0x0038(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         SegmentDivisor;                                    // 0x003C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         HairLengthScale;                                   // 0x0040(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         NumVerticesFromRootNoSimulation;                   // 0x0044(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UTressFXBoneSkinningAsset*              TressFXBoneSkinningAsset;                          // 0x0048(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class USkeletalMesh*                          BaseSkeleton;                                      // 0x0050(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bIsValid;                                          // 0x0058(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_59[0x3];                                       // 0x0059(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         RawGuideCount;                                     // 0x005C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         TotalStrandCount;                                  // 0x0060(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         VertexCountPerStrand;                              // 0x0064(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         TotalVertexCount;                                  // 0x0068(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         TotalTriangleCount;                                // 0x006C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         NumDependHairGroups;                               // 0x0070(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_74[0x4];                                       // 0x0074(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	struct FBoxSphereBounds                       PreCalculateBounds;                                // 0x0078(0x0038)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_B0[0x8];                                       // 0x00B0(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FTressFXSimulationSettings             TressFXSimulationSettings;                         // 0x00B8(0x0170)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	TArray<struct FTressFXSimulationSettings>     TressFXSimulationSettingsArray;                    // 0x0228(0x0010)(Edit, BlueprintVisible, ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FAnimationTressFXSimulationSettings> AnimationSimulationSettingsMap;               // 0x0238(0x0010)(Edit, BlueprintVisible, ZeroConstructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_248[0x28];                                     // 0x0248(0x0028)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXAsset")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXAsset")
	}
	static class UTressFXAsset* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXAsset>();
	}
};
DUMPER7_ASSERTS_UTressFXAsset;

// Class TressFX.TressFXBindingAsset
// 0x0038 (0x0060 - 0x0028)
class UTressFXBindingAsset final : public UObject
{
public:
	uint8                                         Pad_28[0x10];                                      // 0x0028(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
	class UTressFXAsset*                          TressFXAsset;                                      // 0x0038(0x0008)(Edit, BlueprintVisible, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class USkeletalMesh*                          TargetSkeletalMesh;                                // 0x0040(0x0008)(Edit, BlueprintVisible, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_48[0x18];                                      // 0x0048(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXBindingAsset")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXBindingAsset")
	}
	static class UTressFXBindingAsset* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXBindingAsset>();
	}
};
DUMPER7_ASSERTS_UTressFXBindingAsset;

// Class TressFX.TressFXBoneSkinningAsset
// 0x0040 (0x0068 - 0x0028)
class UTressFXBoneSkinningAsset final : public UObject
{
public:
	uint8                                         Pad_28[0x40];                                      // 0x0028(0x0040)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXBoneSkinningAsset")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXBoneSkinningAsset")
	}
	static class UTressFXBoneSkinningAsset* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXBoneSkinningAsset>();
	}
};
DUMPER7_ASSERTS_UTressFXBoneSkinningAsset;

// Class TressFX.TressFXComponent
// 0x04A0 (0x0A10 - 0x0570)
class UTressFXComponent final : public UPrimitiveComponent
{
public:
	bool                                          EnableRuntimeBounds;                               // 0x0568(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          EnableSimulation;                                  // 0x0569(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          EnableCapsuleCollision;                            // 0x056A(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_56B[0x5];                                      // 0x056B(0x0005)(Fixing Size After Last Property [ Dumper-7 ])
	class UPhysicsAsset*                          HairPhysicsAsset;                                  // 0x0570(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UTressFXAsset*                          Asset;                                             // 0x0578(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, Interp, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UMaterialInterface*                     HairMaterial;                                      // 0x0580(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UMaterialInterface*                     HairMaterialLowQuality;                            // 0x0588(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FTressFXShadeSettings                  ShadeSettings;                                     // 0x0590(0x0014)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	float                                         LodScreenSize;                                     // 0x05A4(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UTressFXBindingAsset*                   MorphTargetBindingAsset;                           // 0x05A8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint32                                        LocalSDFIdRef;                                     // 0x05B0(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bGenerateCardMesh;                                 // 0x05B4(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_5B5[0x3];                                      // 0x05B5(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	struct FComponentReference                    CardMeshComponentReference;                        // 0x05B8(0x0028)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	bool                                          IsInGamePlay;                                      // 0x05E0(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_5E1[0x3];                                      // 0x05E1(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         SimulationDelayTime;                               // 0x05E4(0x0004)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	float                                         SimulationDelayRemain;                             // 0x05E8(0x0004)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	bool                                          InitedBounds;                                      // 0x05EC(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_5ED[0x423];                                    // 0x05ED(0x0423)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void ResetPositions();

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXComponent")
	}
	static class UTressFXComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXComponent>();
	}
};
DUMPER7_ASSERTS_UTressFXComponent;

// Class TressFX.TressFXMesh
// 0x0068 (0x0090 - 0x0028)
class UTressFXMesh final : public UObject
{
public:
	uint8                                         Pad_28[0x68];                                      // 0x0028(0x0068)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXMesh")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXMesh")
	}
	static class UTressFXMesh* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXMesh>();
	}
};
DUMPER7_ASSERTS_UTressFXMesh;

// Class TressFX.TressFXMeshAsset
// 0x00C0 (0x00E8 - 0x0028)
class UTressFXMeshAsset final : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	bool                                          EnableVisualizeMesh;                               // 0x0030(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          EnableVisualizeMeshAABB;                           // 0x0031(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_32[0x2];                                       // 0x0032(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         CollisionMeshBoxMargin;                            // 0x0034(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          EnableVisualizeSDF;                                // 0x0038(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_39[0x3];                                       // 0x0039(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	struct FIntVector                             NumSDFCells;                                       // 0x003C(0x000C)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         NumGridOffset;                                     // 0x0048(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         SDFCollisionMargin;                                // 0x004C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_50[0x98];                                      // 0x0050(0x0098)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXMeshAsset")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXMeshAsset")
	}
	static class UTressFXMeshAsset* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXMeshAsset>();
	}
};
DUMPER7_ASSERTS_UTressFXMeshAsset;

// Class TressFX.TressFXMeshImportOptions
// 0x0008 (0x0030 - 0x0028)
class UTressFXMeshImportOptions final : public UObject
{
public:
	class USkeletalMesh*                          Skeleton;                                          // 0x0028(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXMeshImportOptions")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXMeshImportOptions")
	}
	static class UTressFXMeshImportOptions* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXMeshImportOptions>();
	}
};
DUMPER7_ASSERTS_UTressFXMeshImportOptions;

// Class TressFX.TressFXSDFComponent
// 0x0040 (0x05D0 - 0x0590)
class UTressFXSDFComponent final : public UMeshComponent
{
public:
	uint8                                         Pad_590[0x8];                                      // 0x0590(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	bool                                          EnableSDF;                                         // 0x0598(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, Interp, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_599[0x3];                                      // 0x0599(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	uint32                                        LocalSDFId;                                        // 0x059C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UTressFXMeshAsset*                      TressFXMeshAsset;                                  // 0x05A0(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, Interp, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          HasBlendShapes;                                    // 0x05A8(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_5A9[0x27];                                     // 0x05A9(0x0027)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void SetTressFXMeshAsset(class UTressFXMeshAsset* Asset);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TressFXSDFComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TressFXSDFComponent")
	}
	static class UTressFXSDFComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTressFXSDFComponent>();
	}
};
DUMPER7_ASSERTS_UTressFXSDFComponent;

}

