MaterialConverterSystemComponent.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <Atom/Feature/Automation/AtomAutomationBus.h>
  10. #include <Atom/RPI.Edit/Material/MaterialConverterBus.h>
  11. #include <AzCore/Component/Component.h>
  12. #include <SceneAPI/SceneCore/Components/ExportingComponent.h>
  13. #include <SceneAPI/SceneCore/DataTypes/GraphData/IMaterialData.h>
  14. namespace AZ
  15. {
  16. namespace Render
  17. {
  18. struct MaterialConverterSettings
  19. {
  20. AZ_TYPE_INFO(MaterialConverterSettings, "{8D91601D-570A-4557-99C8-631DB4928040}");
  21. static void Reflect(AZ::ReflectContext* context);
  22. bool m_enable = true;
  23. AZStd::string m_defaultMaterial;
  24. };
  25. //! Atom's implementation of converting SceneAPI data into Atom's default material: StandardPBR
  26. class MaterialConverterSystemComponent final
  27. : public AZ::Component
  28. , public RPI::MaterialConverterBus::Handler
  29. {
  30. public:
  31. AZ_COMPONENT(MaterialConverterSystemComponent, "{C2338D45-6456-4521-B469-B000A13F2493}");
  32. static void Reflect(AZ::ReflectContext* context);
  33. static void GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& services);
  34. void Activate() override;
  35. void Deactivate() override;
  36. // MaterialConverterBus overrides ...
  37. bool IsEnabled() const override;
  38. AZStd::string GetFingerprintInfo() const override;
  39. bool ConvertMaterial(const AZ::SceneAPI::DataTypes::IMaterialData& materialData, RPI::MaterialSourceData& out) override;
  40. AZStd::string GetMaterialTypePath() const override;
  41. AZStd::string GetDefaultMaterialPath() const override;
  42. private:
  43. MaterialConverterSettings m_settings;
  44. };
  45. }
  46. }