Files
UnrealEngineUWP/Engine/Source/Developer/Datasmith/DatasmithExporter/Public/DatasmithMeshExporter.h
Johan Duparc 985b598c27 Datasmith: Mesh Exporter: add a way to silent the deprecation ensure
#jira UE-155625
#rb none
#rnx
#preflight 6298dd541941378d7c6ac718

[CL 20470794 by Johan Duparc in ue5-main branch]
2022-06-02 12:07:51 -04:00

53 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "DatasmithExportOptions.h"
#include "Templates/SharedPointer.h"
class FDatasmithMesh;
class IDatasmithMeshElement;
class DATASMITHEXPORTER_API FDatasmithMeshExporter
{
public:
FDatasmithMeshExporter(bool bAllowOldSerialization);
FDatasmithMeshExporter() : FDatasmithMeshExporter(false) {}
virtual ~FDatasmithMeshExporter();
/**
* Exports the DatasmithMesh as a UObject.
*
* @param Filepath The path where the resulting file will be written
* @param Filename The name of the file to export to, without any path or extension
* @param Mesh The mesh to export
* @param CollisionMesh An optional collision mesh
* @param LightmapUV The UV generation export option
*
* @return A IDatasmithMeshElement that refers to the exported file
*/
TSharedPtr< IDatasmithMeshElement > ExportToUObject( const TCHAR* Filepath, const TCHAR* Filename, FDatasmithMesh& Mesh, FDatasmithMesh* CollisionMesh, EDSExportLightmapUV LightmapUV, bool NewFormat=true );
/**
* Exports a FDatasmithMesh as a UObject and link it to the given IDatasmithMeshElementElement.
*
* @param MeshElement The existing MeshElement for which we want to export a FDatasmithMesh, the name of the MeshElement will determine the name of the exported file.
* @param Filepath The path where the resulting file will be written
* @param Mesh The mesh to export
* @param CollisionMesh An optional collision mesh
* @param LightmapUV The UV generation export option
*
* @return True if export was successful.
*/
bool ExportToUObject( TSharedPtr< IDatasmithMeshElement >& MeshElement, const TCHAR* Filepath, FDatasmithMesh& Mesh, FDatasmithMesh* CollisionMesh, EDSExportLightmapUV LightmapUV, bool NewFormat=true );
/**
* @return The error that happened during the last export, if any
*/
FString GetLastError() const;
private:
TUniquePtr<class FDatasmithMeshExporterLegacyImpl> LegacyImpl;
TUniquePtr<class FDatasmithMeshExporterImpl> Impl;
bool bAllowOldSerialization = false;
};