// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Resources/Windows/resource.h" #include "DatasmithMaxClassIDs.h" #include "DatasmithLogger.h" #include "Templates/SharedPointer.h" #include "Windows/AllowWindowsPlatformTypes.h" class INode; class Mtl; class Texmap; class DatasmithMaxLogger :public FDatasmithLogger, public TSharedFromThis { public: static DatasmithMaxLogger& Get(); void Purge(); void AddPartialSupportedMat(Mtl* Mat); void AddUnsupportedMat(Mtl* Mat); void AddPartialSupportedMap(Texmap* Map); void AddUnsupportedMap(Texmap* Map); void AddOtherMapWarning(FString Warning); void AddUnsupportedLight(INode* Light); void AddUnsupportedUV(INode* Node); void AddInvalidObj(INode* Node); TArrayGetInvalidObjects() const; void AddInvalidTransform(INode* Node); bool HasWarnings(); void Show(HWND hDlg); bool CopyToClipBoard(); FString GetLightDescription(INode* LightNode); private: void AddItem(const TCHAR* Msg, HWND Handle, FString& FullMsg); void AddObjectList(TArray< INode* > ObjectList, HWND Handle, const TCHAR* Header, const TCHAR* Description = nullptr); TArray PartialSupportedMats; TArray UnsupportedMats; TArray PartialSupportedMaps; TArray UnsupportedMaps; TArray UnsupportedLight; TArray FailUVs; TArray FailObjs; TArray InvalidTransforms; FString ShowMessage; }; INT_PTR CALLBACK MsgListDlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam); #include "Windows/HideWindowsPlatformTypes.h"