Files
UnrealEngineUWP/Engine/Plugins/Experimental/GeometryProcessing/Source/DynamicMesh/Public/Sampling/MeshResampleImageBaker.h
lonnie li 04eedbdd12 ModelingTools: Refactor new bake path to bake evaluators.
Add support for variable float size and bake results per evaluator.

#rb jimmy.andrews michael.balzer
#rnx
#jira UETOOL-3397
#preflight 60aea5a35f6905000159e87b

[CL 16475935 by lonnie li in ue5-main branch]
2021-05-26 17:14:57 -04:00

65 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Sampling/MeshImageBaker.h"
#include "Sampling/MeshImageBakingCache.h"
#include "Image/ImageBuilder.h"
namespace UE
{
namespace Geometry
{
class DYNAMICMESH_API FMeshResampleImageBaker : public FMeshImageBaker
{
public:
virtual ~FMeshResampleImageBaker() {}
//
// Required input data
//
TFunction<FVector4f(FVector2d)> SampleFunction = [](FVector2d Position) { return FVector4f::Zero(); };
const FDynamicMeshUVOverlay* DetailUVOverlay = nullptr;
FVector4f DefaultColor = FVector4f(0, 0, 0, 1);
//
// Compute functions
//
virtual void Bake() override;
//
// Output
//
const TUniquePtr<TImageBuilder<FVector4f>>& GetResult() const { return ResultBuilder; }
TUniquePtr<TImageBuilder<FVector4f>> TakeResult() { return MoveTemp(ResultBuilder); }
protected:
TUniquePtr<TImageBuilder<FVector4f>> ResultBuilder;
};
class DYNAMICMESH_API FMeshMultiResampleImageBaker : public FMeshResampleImageBaker
{
public:
TMap<int32, TSharedPtr<UE::Geometry::TImageBuilder<FVector4f>, ESPMode::ThreadSafe>> MultiTextures;
virtual void Bake() override;
protected:
void InitResult();
void BakeMaterial(int32 MaterialID);
};
} // end namespace UE::Geometry
} // end namespace UE