Files
UnrealEngineUWP/Engine/Source/Editor/LandscapeEditor/Public/LandscapeEditorModule.h
Patrick Enfedaque 92b6346f13 Landscape: New Import/Export Tool allows importing/exporting multiple files to support large worlds (WorldPartition)
#rb richard.malo

[CL 14651731 by Patrick Enfedaque in ue5-main branch]
2020-11-04 09:21:48 -04:00

55 lines
2.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Templates/SharedPointer.h"
#include "Templates/UnrealTypeTraits.h"
#include "Templates/EnableIf.h"
template<class T>
class ILandscapeFileFormat;
using ILandscapeHeightmapFileFormat = ILandscapeFileFormat<uint16>;
using ILandscapeWeightmapFileFormat = ILandscapeFileFormat<uint8>;
class FUICommandList;
/**
* LandscapeEditor module interface
*/
class ILandscapeEditorModule : public IModuleInterface
{
public:
// Register / unregister a landscape file format plugin
virtual void RegisterHeightmapFileFormat(TSharedRef<ILandscapeHeightmapFileFormat> FileFormat) = 0;
virtual void RegisterWeightmapFileFormat(TSharedRef<ILandscapeWeightmapFileFormat> FileFormat) = 0;
virtual void UnregisterHeightmapFileFormat(TSharedRef<ILandscapeHeightmapFileFormat> FileFormat) = 0;
virtual void UnregisterWeightmapFileFormat(TSharedRef<ILandscapeWeightmapFileFormat> FileFormat) = 0;
// Gets the type string used by the import/export file dialog
virtual const TCHAR* GetHeightmapImportDialogTypeString() const = 0;
virtual const TCHAR* GetWeightmapImportDialogTypeString() const = 0;
virtual const TCHAR* GetHeightmapExportDialogTypeString() const = 0;
virtual const TCHAR* GetWeightmapExportDialogTypeString() const = 0;
// Gets the heightmap/weightmap format associated with a given extension (null if no plugin is registered for this extension)
virtual const ILandscapeHeightmapFileFormat* GetHeightmapFormatByExtension(const TCHAR* Extension) const = 0;
virtual const ILandscapeWeightmapFileFormat* GetWeightmapFormatByExtension(const TCHAR* Extension) const = 0;
template<typename T>
typename TEnableIf<TIsSame<T, uint16>::Value, const ILandscapeHeightmapFileFormat*>::Type GetFormatByExtension(const TCHAR* Extension)
{
return GetHeightmapFormatByExtension(Extension);
}
template<typename T>
typename TEnableIf<TIsSame<T, uint8>::Value, const ILandscapeWeightmapFileFormat*>::Type GetFormatByExtension(const TCHAR* Extension)
{
return GetWeightmapFormatByExtension(Extension);
}
virtual TSharedPtr<FUICommandList> GetLandscapeLevelViewportCommandList() const = 0;
};