// Copyright 2020 Phyronnaz #pragma once #include "CoreMinimal.h" #include "SEditorViewport.h" #include "SCommonEditorViewportToolbarBase.h" class FVoxelGraphPreviewViewportClient; class IVoxelGraphEditorToolkit; class FEditorViewportClient; class FAdvancedPreviewScene; class SDockTab; /** * Material Editor Preview viewport widget */ class SVoxelGraphPreviewViewport : public SEditorViewport, public ICommonEditorViewportToolbarInfoProvider { public: SLATE_BEGIN_ARGS( SVoxelGraphPreviewViewport ){} SLATE_ARGUMENT(TWeakPtr, VoxelGraphEditorToolkit) SLATE_END_ARGS() void Construct(const FArguments& InArgs); ~SVoxelGraphPreviewViewport(); // ICommonEditorViewportToolbarInfoProvider interface virtual TSharedRef GetViewportWidget() override; virtual TSharedPtr GetExtenders() const override; virtual void OnFloatingButtonClicked() override; // End of ICommonEditorViewportToolbarInfoProvider interface void RefreshViewport(); protected: /** SEditorViewport interface */ virtual TSharedRef MakeEditorViewportClient() override; private: /** The parent tab where this viewport resides */ TWeakPtr ParentTab; /** Pointer back to the material editor tool that owns us */ TWeakPtr VoxelGraphEditorToolkit; /** Level viewport client */ TSharedPtr EditorViewportClient; FAdvancedPreviewScene* AdvancedPreviewScene = nullptr; };