| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
- #pragma once
- #if !defined(Q_MOC_RUN)
- #include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h>
- #include <AtomToolsFramework/EntityPreviewViewport/EntityPreviewViewportContent.h>
- #include <AtomToolsFramework/Graph/GraphDocumentNotificationBus.h>
- #endif
- namespace MaterialCanvas
- {
- class MaterialCanvasViewportContent final
- : public AtomToolsFramework::EntityPreviewViewportContent
- , public AtomToolsFramework::AtomToolsDocumentNotificationBus::Handler
- , public AtomToolsFramework::GraphDocumentNotificationBus::Handler
- {
- public:
- MaterialCanvasViewportContent(
- const AZ::Crc32& toolId,
- AtomToolsFramework::RenderViewportWidget* widget,
- AZStd::shared_ptr<AzFramework::EntityContext> entityContext);
- ~MaterialCanvasViewportContent();
- AZ::EntityId GetObjectEntityId() const override;
- AZ::EntityId GetEnvironmentEntityId() const override;
- AZ::EntityId GetPostFxEntityId() const override;
- AZ::EntityId GetShadowCatcherEntityId() const;
- AZ::EntityId GetGridEntityId() const;
- private:
- // AtomToolsDocumentNotificationBus::Handler overrides...
- void OnDocumentClosed(const AZ::Uuid& documentId) override;
- void OnDocumentOpened(const AZ::Uuid& documentId) override;
- // AtomToolsFramework::GraphDocumentNotificationBus::Handler overrides...
- void OnCompileGraphStarted(const AZ::Uuid& documentId) override;
- void OnCompileGraphCompleted(const AZ::Uuid& documentId) override;
- void OnCompileGraphFailed(const AZ::Uuid& documentId) override;
- // EntityPreviewViewportSettingsNotificationBus::Handler overrides...
- void OnViewportSettingsChanged() override;
- void ApplyMaterial(const AZ::Uuid& documentId);
- AZ::Entity* m_environmentEntity = {};
- AZ::Entity* m_gridEntity = {};
- AZ::Entity* m_objectEntity = {};
- AZ::Entity* m_postFxEntity = {};
- AZ::Entity* m_shadowCatcherEntity = {};
- AZ::Uuid m_lastOpenedDocumentId;
- };
- } // namespace MaterialCanvas
|