// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "MeshProcessingNodes/MeshProcessingBaseNodes.h" #include "MeshProcessingNodes/MeshProcessingDataTypes.h" #include "MeshProcessingNodes/MeshTangentsNodes.h" #include "DataTypes/MeshImageBakingData.h" #include "DataTypes/TextureImageData.h" namespace UE { namespace GeometryFlow { struct GEOMETRYFLOWMESHPROCESSING_API FBakeMeshTextureImageSettings { DECLARE_GEOMETRYFLOW_DATA_TYPE_IDENTIFIER(EMeshProcessingDataTypes::BakeTextureImageSettings); int32 DetailUVLayer = 0; double MaxDistance = 0.0; }; GEOMETRYFLOW_DECLARE_SETTINGS_TYPES(FBakeMeshTextureImageSettings, BakeMeshTextureImage); class GEOMETRYFLOWMESHPROCESSING_API FBakeMeshTextureImageNode : public FNode { protected: using SettingsDataType = TMovableData; public: static const FString InParamBakeCache() { return TEXT("BakeCache"); } static const FString InParamImage() { return TEXT("TextureImage"); } static const FString InParamSettings() { return TEXT("Settings"); } static const FString OutParamTextureImage() { return TEXT("TextureImage"); } public: FBakeMeshTextureImageNode() { AddInput(InParamBakeCache(), MakeUnique>()); AddInput(InParamImage(), MakeUnique>()); AddInput(InParamSettings(), MakeUnique>()); AddOutput(OutParamTextureImage(), MakeUnique>()); } virtual void Evaluate( const FNamedDataMap& DatasIn, FNamedDataMap& DatasOut, TUniquePtr& EvaluationInfo) override; }; } // end namespace GeometryFlow } // end namespace UE