#pragma once

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

// Package: InterchangeEngine

#include "Basic.hpp"

#include "InterchangeCore_structs.hpp"
#include "InterchangeCore_classes.hpp"
#include "Engine_classes.hpp"
#include "DeveloperSettings_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "InterchangeEngine_structs.hpp"


SDK_NAMESPACE_START

// Class InterchangeEngine.InterchangeBlueprintPipelineBase
// 0x0000 (0x00A8 - 0x00A8)
class UInterchangeBlueprintPipelineBase final : public UBlueprint
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("InterchangeBlueprintPipelineBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"InterchangeBlueprintPipelineBase")
	}
	static class UInterchangeBlueprintPipelineBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UInterchangeBlueprintPipelineBase>();
	}
};
DUMPER7_ASSERTS_UInterchangeBlueprintPipelineBase;

// Class InterchangeEngine.InterchangeEditorUtilitiesBase
// 0x0000 (0x0028 - 0x0028)
class UInterchangeEditorUtilitiesBase final : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("InterchangeEditorUtilitiesBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"InterchangeEditorUtilitiesBase")
	}
	static class UInterchangeEditorUtilitiesBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UInterchangeEditorUtilitiesBase>();
	}
};
DUMPER7_ASSERTS_UInterchangeEditorUtilitiesBase;

// Class InterchangeEngine.InterchangeFilePickerBase
// 0x0000 (0x0028 - 0x0028)
class UInterchangeFilePickerBase final : public UObject
{
public:
	bool ScriptedFilePickerForTranslatorAssetType(const EInterchangeTranslatorAssetType TranslatorAssetType, struct FInterchangeFilePickerParameters* Parameters, TArray<class FString>* OutFilenames);
	bool ScriptedFilePickerForTranslatorType(const EInterchangeTranslatorType TranslatorType, struct FInterchangeFilePickerParameters* Parameters, TArray<class FString>* OutFilenames);

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

// Class InterchangeEngine.InterchangePipelineConfigurationBase
// 0x0000 (0x0028 - 0x0028)
class UInterchangePipelineConfigurationBase final : public UObject
{
public:
	EInterchangePipelineConfigurationDialogResult ScriptedShowPipelineConfigurationDialog(TArray<struct FInterchangeStackInfo>* PipelineStacks, TArray<class UInterchangePipelineBase*>* OutPipelines, class UInterchangeSourceData* SourceData, class UInterchangeTranslatorBase* Translator, class UInterchangeBaseNodeContainer* BaseNodeContainer);
	EInterchangePipelineConfigurationDialogResult ScriptedShowReimportPipelineConfigurationDialog(TArray<struct FInterchangeStackInfo>* PipelineStacks, TArray<class UInterchangePipelineBase*>* OutPipelines, class UInterchangeSourceData* SourceData, class UInterchangeTranslatorBase* Translator, class UInterchangeBaseNodeContainer* BaseNodeContainer, class UObject* ReimportAsset, bool bSceneImport);
	EInterchangePipelineConfigurationDialogResult ScriptedShowScenePipelineConfigurationDialog(TArray<struct FInterchangeStackInfo>* PipelineStacks, TArray<class UInterchangePipelineBase*>* OutPipelines, class UInterchangeSourceData* SourceData, class UInterchangeTranslatorBase* Translator, class UInterchangeBaseNodeContainer* BaseNodeContainer);
	EInterchangePipelineConfigurationDialogResult ScriptedShowTestPlanConfigurationDialog(TArray<struct FInterchangeStackInfo>* PipelineStacks, TArray<class UInterchangePipelineBase*>* OutPipelines, class UInterchangeSourceData* SourceData, class UInterchangeTranslatorBase* Translator, class UInterchangeBaseNodeContainer* BaseNodeContainer, class UObject* ReimportAsset, bool bSceneImport, bool bReimport);

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

// Class InterchangeEngine.InterchangeProjectSettings
// 0x0248 (0x0280 - 0x0038)
class UInterchangeProjectSettings final : public UDeveloperSettings
{
public:
	struct FInterchangeContentImportSettings      ContentImportSettings;                             // 0x0038(0x0128)(Edit, Config, NativeAccessSpecifierPublic)
	struct FInterchangeSceneImportSettings        SceneImportSettings;                               // 0x0160(0x0098)(Edit, Config, NativeAccessSpecifierPublic)
	TSoftClassPtr<class UClass>                   FilePickerClass;                                   // 0x01F8(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bStaticMeshUseSmoothEdgesIfSmoothingInformationIsMissing; // 0x0220(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_221[0x7];                                      // 0x0221(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TSoftClassPtr<class UClass>                   GenericPipelineClass;                              // 0x0228(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FSoftObjectPath                        ConverterDefaultPipeline;                          // 0x0250(0x0020)(Edit, ZeroConstructor, Config, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<struct FInterchangeGroup>              InterchangeGroups;                                 // 0x0270(0x0010)(Edit, ZeroConstructor, Config, NativeAccessSpecifierPublic)

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

// Class InterchangeEngine.InterchangeEditorSettings
// 0x0020 (0x0058 - 0x0038)
class UInterchangeEditorSettings final : public UDeveloperSettings
{
public:
	bool                                          bShowImportDialogAtReimport;                       // 0x0038(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_39[0x3];                                       // 0x0039(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	class FName                                   UsedGroupName;                                     // 0x003C(0x0008)(Edit, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	struct FGuid                                  UsedGroupUID;                                      // 0x0044(0x0010)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_54[0x4];                                       // 0x0054(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void SetUsedGroupName(const class FName& InUsedGroupName);

	TArray<class FName> GetSelectableItems() const;
	const class FName GetUsedGroupName() const;

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

// Class InterchangeEngine.InterchangePythonPipelineBase
// 0x0000 (0x0128 - 0x0128)
class UInterchangePythonPipelineBase final : public UInterchangePipelineBase
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("InterchangePythonPipelineBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"InterchangePythonPipelineBase")
	}
	static class UInterchangePythonPipelineBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UInterchangePythonPipelineBase>();
	}
};
DUMPER7_ASSERTS_UInterchangePythonPipelineBase;

// Class InterchangeEngine.InterchangePythonPipelineAsset
// 0x0040 (0x0068 - 0x0028)
class UInterchangePythonPipelineAsset final : public UObject
{
public:
	TSoftClassPtr<class UClass>                   PythonClass;                                       // 0x0028(0x0028)(Edit, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UInterchangePythonPipelineBase*         GeneratedPipeline;                                 // 0x0050(0x0008)(Edit, ZeroConstructor, Transient, EditConst, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	class FString                                 JsonDefaultProperties;                             // 0x0058(0x0010)(Edit, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

// Class InterchangeEngine.InterchangeSceneImportAsset
// 0x0008 (0x0030 - 0x0028)
class UInterchangeSceneImportAsset final : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class InterchangeEngine.InterchangeAssetImportData
// 0x00B0 (0x00D8 - 0x0028)
class UInterchangeAssetImportData final : public UAssetImportData
{
public:
	struct FSoftObjectPath                        SceneImportAsset;                                  // 0x0028(0x0020)(Edit, ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FString                                 NodeUniqueID;                                      // 0x0048(0x0010)(Edit, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UInterchangeBaseNodeContainer*          NodeContainer;                                     // 0x0058(0x0008)(ZeroConstructor, Deprecated, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	TArray<class UObject*>                        Pipelines;                                         // 0x0060(0x0010)(ZeroConstructor, Deprecated, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	class UInterchangeBaseNodeContainer*          TransientNodeContainer;                            // 0x0070(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	TArray<class UObject*>                        TransientPipelines;                                // 0x0078(0x0010)(ZeroConstructor, Transient, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	class UInterchangeTranslatorSettings*         TransientTranslatorSettings;                       // 0x0088(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_90[0x48];                                      // 0x0090(0x0048)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void SetPipelines(const TArray<class UObject*>& InPipelines);

	class UInterchangeBaseNodeContainer* GetNodeContainer() const;
	int32 GetNumberOfPipelines() const;
	TArray<class UObject*> GetPipelines() const;
	class UInterchangeFactoryBaseNode* GetStoredFactoryNode(const class FString& InNodeUniqueId) const;
	const class UInterchangeBaseNode* GetStoredNode(const class FString& InNodeUniqueId) const;
	const class UInterchangeTranslatorSettings* GetTranslatorSettings() const;
	TArray<class FString> ScriptExtractDisplayLabels() const;
	TArray<class FString> ScriptExtractFilenames() const;
	class FString ScriptGetFirstFilename() const;
	void SetNodeContainer(class UInterchangeBaseNodeContainer* InNodeContainer) const;
	void SetTranslatorSettings(class UInterchangeTranslatorSettings* TranslatorSettings) const;

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

// Class InterchangeEngine.InterchangeAssetImportDataConverterBase
// 0x0000 (0x0028 - 0x0028)
class UInterchangeAssetImportDataConverterBase final : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("InterchangeAssetImportDataConverterBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"InterchangeAssetImportDataConverterBase")
	}
	static class UInterchangeAssetImportDataConverterBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UInterchangeAssetImportDataConverterBase>();
	}
};
DUMPER7_ASSERTS_UInterchangeAssetImportDataConverterBase;

// Class InterchangeEngine.InterchangePipelineStackOverride
// 0x0010 (0x0038 - 0x0028)
class UInterchangePipelineStackOverride final : public UObject
{
public:
	TArray<struct FSoftObjectPath>                OverridePipelines;                                 // 0x0028(0x0010)(Edit, BlueprintVisible, ZeroConstructor, NativeAccessSpecifierPublic)

public:
	void AddBlueprintPipeline(class UInterchangeBlueprintPipelineBase* PipelineBase);
	void AddPipeline(class UInterchangePipelineBase* PipelineBase);
	void AddPythonPipeline(class UInterchangePythonPipelineBase* PipelineBase);

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

// Class InterchangeEngine.InterchangeManager
// 0x03D8 (0x0400 - 0x0028)
class alignas(0x10) UInterchangeManager final : public UObject
{
public:
	uint8                                         Pad_28[0x210];                                     // 0x0028(0x0210)(Fixing Size After Last Property [ Dumper-7 ])
	TSet<TSubclassOf<class UObject>>              RegisteredTranslatorsClass;                        // 0x0238(0x0050)(UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	TMap<TSubclassOf<class UObject>, TSubclassOf<class UObject>> RegisteredFactoryClasses;           // 0x0288(0x0050)(UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	TMap<TSubclassOf<class UObject>, class UInterchangeWriterBase*> RegisteredWriters;               // 0x02D8(0x0050)(UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	TMap<TSubclassOf<class UObject>, class UInterchangeAssetImportDataConverterBase*> RegisteredConverters; // 0x0328(0x0050)(UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_378[0x88];                                     // 0x0378(0x0088)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UInterchangeSourceData* CreateSourceData(const class FString& InFilename);
	static class UInterchangeManager* GetInterchangeManagerScripted();

	void CancelAllTasks();
	bool ExportAsset(const class UObject* Asset, bool bIsAutomated);
	bool ExportScene(const class UObject* World, bool bIsAutomated);
	bool ImportAsset(const class FString& ContentPath, const class UInterchangeSourceData* SourceData, const struct FImportAssetParameters& ImportAssetParameters, TArray<class UObject*>* OutImportedObjects);
	bool ImportScene(const class FString& ContentPath, const class UInterchangeSourceData* SourceData, const struct FImportAssetParameters& ImportAssetParameters);
	bool IsInterchangeActive();
	bool ReimportAsset(class UObject* ObjectToReimport, const struct FImportAssetParameters& ImportAssetParameters, TArray<class UObject*>* OutImportedObjects);
	bool ScriptedImportAssetAsync(const class FString& ContentPath, const class UInterchangeSourceData* SourceData, const struct FImportAssetParameters& ImportAssetParameters);
	bool ScriptedImportSceneAsync(const class FString& ContentPath, const class UInterchangeSourceData* SourceData, const struct FImportAssetParameters& ImportAssetParameters);
	bool ScriptedReimportAssetAsync(class UObject* ObjectToReimport, const struct FImportAssetParameters& ImportAssetParameters);
	void WaitUntilAllTasksDone(bool bCancel);
	bool WarnIfInterchangeIsActive();

	bool CanReimport(const class UObject* Object, TArray<class FString>* OutFilenames) const;
	bool CanTranslateSourceData(const class UInterchangeSourceData* SourceData, bool bSceneImportOnly) const;
	class UInterchangeAssetImportData* GetAssetImportData(class UObject* Asset) const;
	const class UClass* GetRegisteredFactoryClass(const class UClass* ClassToMake) const;
	TArray<class FString> GetSupportedAssetTypeFormats(const EInterchangeTranslatorAssetType ForTranslatorAssetType, const EInterchangeTranslatorType ForTranslatorType, bool bStrictMatchTranslatorType) const;
	TArray<class FString> GetSupportedFormats(const EInterchangeTranslatorType ForTranslatorType) const;
	TArray<class FString> GetSupportedFormatsForObject(const class UObject* Object, int32 SourceFileIndex) const;
	class UInterchangeTranslatorBase* GetTranslatorForSourceData(const class UInterchangeSourceData* SourceData) const;
	bool IsObjectBeingImported(class UObject* Object) const;

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

// Class InterchangeEngine.InterchangeMeshUtilities
// 0x0000 (0x0028 - 0x0028)
class UInterchangeMeshUtilities final : public UObject
{
public:
	bool ScriptedImportMorphTarget(class USkeletalMesh* SkeletalMesh, const int32 LODIndex, const class UInterchangeSourceData* SourceData, const class FString& MorphTargetName) const;

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

SDK_NAMESPACE_END
