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