56 lines
1.8 KiB
C++
56 lines
1.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Interface.h"
|
|
|
|
#include "GeometryBase.h"
|
|
|
|
#include "DynamicMeshProvider.generated.h"
|
|
|
|
#define UE_API MODELINGCOMPONENTS_API
|
|
|
|
struct FGetMeshParameters;
|
|
|
|
PREDECLARE_GEOMETRY(class FDynamicMesh3);
|
|
|
|
UINTERFACE(MinimalAPI)
|
|
class UDynamicMeshProvider : public UInterface
|
|
{
|
|
GENERATED_BODY()
|
|
};
|
|
|
|
class IDynamicMeshProvider
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
/**
|
|
* Gives a copy of a dynamic mesh for tools to operate on.
|
|
*/
|
|
virtual UE::Geometry::FDynamicMesh3 GetDynamicMesh() = 0;
|
|
|
|
/**
|
|
* Gives a copy of a dynamic mesh for tools to operate on.
|
|
*
|
|
* @param bRequestTangents Request tangents on the returned mesh. Not required if tangents are not on the source data and the provider does not have a standard way to generate them.
|
|
*
|
|
* Note: Default implementation simply returns GetDynamicMesh(). Overloaded implementations for e.g., Static and Skeletal Mesh sources will enable (and compute if needed) additional tangent data.
|
|
*/
|
|
UE_DEPRECATED(5.5, "Use GetDynamicMesh which takes a FGetMeshParameters instead.")
|
|
UE_API virtual UE::Geometry::FDynamicMesh3 GetDynamicMesh(bool bRequestTangents);
|
|
|
|
/**
|
|
* Gives a copy of a dynamic mesh for tools to operate on.
|
|
*
|
|
* @param InGetMeshParams Request specific LOD and/or tangents on the returned mesh.
|
|
* bWantMeshTangents not required if tangents are not on the source data and the provider does not have a standard way to generate them.
|
|
*
|
|
* Note: Default implementation simply returns GetDynamicMesh(). Overloaded implementations for e.g., Static and Skeletal Mesh sources will enable (and compute if needed) additional tangent data.
|
|
*/
|
|
UE_API virtual UE::Geometry::FDynamicMesh3 GetDynamicMesh(const FGetMeshParameters& InGetMeshParams);
|
|
};
|
|
|
|
#undef UE_API
|