Files
UnrealEngineUWP/Engine/Source/Developer/GeometryProcessingInterfaces/Public/IGeometryProcessingInterfacesModule.h
sebastien lussier 320ff53c05 Added MeshAutoUV to GeometryProcessingInterface
* Required for future changes to improve the mesh merging capability to cope with missing/invalid UVs when trying to perform material baking.
#rb ryan.schmidt

[CL 26014245 by sebastien lussier in ue5-main branch]
2023-06-15 10:37:22 -04:00

44 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Modules/ModuleInterface.h"
class IGeometryProcessing_ApproximateActors;
class IGeometryProcessing_CombineMeshInstances;
class IGeometryProcessing_MeshAutoUV;
/**
* Abstract interface to a Module that provides functions to access
* different "Operation" interfaces, which are high-level APIs to
* run complex geometry operations on engine inputs without the caller
* needing to know about the potential dependencies (ie, the implementations
* can be provided by plugins, and this non-plugin module can find them for
* the Engine/Editor core, avoiding the no-core-dependencies-on-plugins limitation)
*
* This interface is implemented by FGeometryProcessingInterfacesModule.
* Client code that wants access to the operations should get this interface like so:
*
* IGeometryProcessingInterfacesModule& GeomProcInterfaces = FModuleManager::Get().LoadModuleChecked<IGeometryProcessingInterfacesModule>("GeometryProcessingInterfaces");
*
*/
class IGeometryProcessingInterfacesModule : public IModuleInterface
{
public:
/**
* @return implementation of IGeometryProcessing_ApproximateActors, if available
*/
virtual IGeometryProcessing_ApproximateActors* GetApproximateActorsImplementation() = 0;
/**
* @return implementation of IGeometryProcessing_CombineMeshInstances, if available, or nullptr (result is cached internally)
*/
virtual IGeometryProcessing_CombineMeshInstances* GetCombineMeshInstancesImplementation() = 0;
/**
* @return implementation of IGeometryProcessing_MeshAutoUV, if available, or nullptr (result is cached internally)
*/
virtual IGeometryProcessing_MeshAutoUV* GetMeshAutoUVImplementation() = 0;
};