// Copyright IHY. #pragma once #include "CoreMinimal.h" #include "Widgets/SCompoundWidget.h" class STextBlock; class SCheckBox; class SWidget; /** * Native Slate panel for the Mesh Optimizer (hosted in a nomad tab). Drives UOptimizerSubsystem: * Scan (dry-run report) / Unify (reassign siblings) / Build HISM (collapse). Uses editor styling * so it reads as a native tool rather than raw UMG. */ class SOptimizerPanel : public SCompoundWidget { public: SLATE_BEGIN_ARGS(SOptimizerPanel) {} SLATE_END_ARGS() void Construct(const FArguments& InArgs); private: TSharedRef MakeLabeledCheck(TSharedPtr& Out, const FText& Label, bool bDefault); TSharedRef MakeButton(const FText& Label, FOnClicked OnClicked); FReply OnScan(); FReply OnUnify(); FReply OnBuildHISM(); void SetReport(const FString& Text); bool IsChecked(const TSharedPtr& Chk) const; TSharedPtr ChkMirror; TSharedPtr ChkScale; TSharedPtr ChkMergeMat; TSharedPtr ChkDestroy; TSharedPtr ResultsBox; };