Files
UnrealEngineUWP/Engine/Source/Developer/GeometryProcessingInterfaces/Public/IGeometryProcessingInterfacesModule.h
Ryan Schmidt 946b918d4a Add GeometryProcessingInterfaces module in /Developer. This module exists to define abstract interfaces to high-level geometry operations, which the core Engine/Editor can see, but which can be implemented by plugins. Currently only ApproximateActors interface is defined, which will allow the ProxyLOD and HLOD systems to use implementations that depend on the MeshModelingToolset and GeometryProcessing plugins.
Add GeometryProcessingAdapters module to MeshModelingToolset, this is an Editor-only module that implements GeometryProcessingInterfaces APIs

Add ApproximateActors implementation in GeometryProcessingAdapters that uses GeometryProcessing (FastWindingNumber / MeshMorphology / Simplify / UVGen / Tangents) and a new material-baking process based on render captures to generate a new StaticMesh Asset / Material / Textures that approximate the input Actor set.

#rb none
#rnx
#jira none
#preflight 608b25ced4026b0001cbe9c4

[CL 16162961 by Ryan Schmidt in ue5-main branch]
2021-04-29 18:12:32 -04:00

31 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Modules/ModuleInterface.h"
class IGeometryProcessing_ApproximateActors;
/**
* 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;
};