#pragma once #include "IViewportHostService.h" #include "SceneViewportOverlayProviders.h" #include #include namespace XCEngine { namespace Editor { class IEditorContext; class SceneViewportOverlayBuilder { public: SceneViewportOverlayBuilder(); explicit SceneViewportOverlayBuilder(SceneViewportOverlayProviderRegistry providerRegistry); SceneViewportOverlayFrameData Build( IEditorContext& context, const SceneViewportOverlayData& overlay, uint32_t viewportWidth, uint32_t viewportHeight, const std::vector& selectedObjectIds, const SceneViewportTransformGizmoOverlayState* transformGizmoOverlayState = nullptr) const; const SceneViewportOverlayProviderRegistry& GetProviderRegistry() const { return m_providerRegistry; } SceneViewportOverlayProviderRegistry& GetProviderRegistry() { return m_providerRegistry; } private: SceneViewportOverlayProviderRegistry m_providerRegistry = {}; }; } // namespace Editor } // namespace XCEngine