MultilayerPerceptronEditorComponent.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
  10. #include <AzCore/Asset/AssetCommon.h>
  11. #include <Models/MultilayerPerceptron.h>
  12. #include <Assets/ModelAsset.h>
  13. #include <MachineLearning/Types.h>
  14. namespace MachineLearning
  15. {
  16. class MultilayerPerceptronEditorComponent
  17. : public AzToolsFramework::Components::EditorComponentBase
  18. , private AZ::Data::AssetBus::Handler
  19. , public IAssetPersistenceProxy
  20. {
  21. public:
  22. AZ_COMPONENT(MultilayerPerceptronEditorComponent, "{E33802A1-18E8-4CBE-A45B-7D7C979B1027}");
  23. //! AzCore Reflection.
  24. //! @param context reflection context
  25. static void Reflect(AZ::ReflectContext* context);
  26. static void GetProvidedServices(AZ::ComponentDescriptor::DependencyArrayType& provided);
  27. MultilayerPerceptronEditorComponent();
  28. ~MultilayerPerceptronEditorComponent();
  29. //! AZ::Component overrides
  30. //! @{
  31. void Activate() override;
  32. void Deactivate() override;
  33. //! @}
  34. //! EditorComponentBase
  35. //! @{
  36. void BuildGameEntity(AZ::Entity* gameEntity) override;
  37. //! @}
  38. //! IAssetPersistenceProxy overrides
  39. //! @{
  40. bool SaveAsset() override;
  41. bool LoadAsset() override;
  42. //! @}
  43. private:
  44. //! Edit context callbacks
  45. //! @{
  46. void AssetChanged();
  47. void AssetCleared();
  48. //! @}
  49. //! AZ::Data::AssetBus overrides
  50. //! @{
  51. void OnAssetReady(AZ::Data::Asset<AZ::Data::AssetData> asset) override;
  52. void OnAssetReloaded(AZ::Data::Asset<AZ::Data::AssetData> asset) override;
  53. void OnAssetError(AZ::Data::Asset<AZ::Data::AssetData> asset) override;
  54. void OnAssetReloadError(AZ::Data::Asset<AZ::Data::AssetData> asset) override;
  55. //! @}
  56. bool SaveAsAsset();
  57. //! The model asset.
  58. AZ::Data::Asset<ModelAsset> m_asset;
  59. MultilayerPerceptron m_model;
  60. INeuralNetworkPtr m_handle;
  61. };
  62. }