EditorGradientSurfaceDataComponent.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 <GradientSignal/Components/GradientSurfaceDataComponent.h>
  10. #include <AzFramework/Entity/EntityDebugDisplayBus.h>
  11. #include <LmbrCentral/Component/EditorWrappedComponentBase.h>
  12. namespace GradientSignal
  13. {
  14. class EditorGradientSurfaceDataComponent
  15. : public LmbrCentral::EditorWrappedComponentBase<GradientSurfaceDataComponent, GradientSurfaceDataConfig>
  16. , private AzFramework::EntityDebugDisplayEventBus::Handler
  17. {
  18. public:
  19. using BaseClassType = LmbrCentral::EditorWrappedComponentBase<GradientSurfaceDataComponent, GradientSurfaceDataConfig>;
  20. AZ_EDITOR_COMPONENT(EditorGradientSurfaceDataComponent, "{4219B171-EF39-440E-B117-BA7FD914F93A}", BaseClassType);
  21. static void Reflect(AZ::ReflectContext* context);
  22. //////////////////////////////////////////////////////////////////////////
  23. // AZ::Component interface implementation
  24. void Activate() override;
  25. void Deactivate() override;
  26. static constexpr const char* const s_categoryName = "Surface Data";
  27. static constexpr const char* const s_componentName = "Gradient Surface Tag Emitter";
  28. static constexpr const char* const s_componentDescription = "Enables a gradient to emit surface tags";
  29. static constexpr const char* const s_icon = "Editor/Icons/Components/SurfaceData.svg";
  30. static constexpr const char* const s_viewportIcon = "Editor/Icons/Components/Viewport/SurfaceData.png";
  31. static constexpr const char* const s_helpUrl = "https://www.o3de.org/docs/user-guide/components/reference/surface-data/gradient-surface-tag-emitter/";
  32. private:
  33. AZ::u32 ConfigurationChanged() override;
  34. AZ::EntityId GetGradientEntityId() const;
  35. AZStd::function<float(float, const GradientSampleParams&)> GetFilterFunc();
  36. AZ::EntityId m_gradientEntityId;
  37. };
  38. }