BsHandleManager.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsModule.h"
  4. #include "BsDegree.h"
  5. namespace BansheeEngine
  6. {
  7. class BS_ED_EXPORT HandleManager : public Module<HandleManager>
  8. {
  9. public:
  10. HandleManager();
  11. virtual ~HandleManager();
  12. void update(const CameraHandlerPtr& camera, const Vector2I& inputPos, const Vector2I& inputDelta);
  13. void trySelect(const CameraHandlerPtr& camera, const Vector2I& inputPos);
  14. void clearSelection();
  15. bool isHandleActive() const;
  16. HandleSliderManager& getSliderManager() const { return *mSliderManager; }
  17. HandleDrawManager& getDrawManager() const { return *mDrawManager; }
  18. float getHandleSize(const CameraHandlerPtr& camera, const Vector3& handlePos) const;
  19. void setDefaultHandleSize(float value) { mDefaultHandleSize = value; }
  20. void setSettings(const EditorSettingsPtr& settings);
  21. protected:
  22. void updateFromProjectSettings();
  23. HandleSliderManager* mSliderManager;
  24. HandleDrawManager* mDrawManager;
  25. float mDefaultHandleSize = 20.0f;
  26. EditorSettingsPtr mSettings;
  27. UINT32 mSettingsHash;
  28. virtual void refreshHandles() = 0;
  29. virtual void triggerHandles() = 0;
  30. virtual void queueDrawCommands() = 0;
  31. };
  32. }