// Copyright IHY. #pragma once #include "CoreMinimal.h" #include "Modules/ModuleInterface.h" /** * Editor-only module for the Mesh Optimizer. * * Registers a Tools-menu entry + nomad tab hosting the native Slate panel (SOptimizerPanel), * which drives UOptimizerSubsystem: scan level StaticMesh usage, group geometrically-identical * "sibling" meshes, rebase every user onto one canonical mesh with a pivot/rotation-corrected * transform, and optionally collapse the group into a HierarchicalInstancedStaticMesh. */ class FOptimizerEditorModule : public IModuleInterface { public: virtual void StartupModule() override; virtual void ShutdownModule() override; private: void RegisterMenus(); // deferred via UToolMenus startup callback TSharedRef SpawnPanelTab(const class FSpawnTabArgs& Args); bool bTabRegistered = false; };