BsHandleManager.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. bool hasHitHandle(const CameraHandlerPtr& camera, const Vector2I& inputPos) const;
  13. void handleInput(const CameraHandlerPtr& camera, const Vector2I& inputPos, bool pressed);
  14. void update(const CameraHandlerPtr& camera);
  15. HandleSliderManager& getSliderManager() const { return *mSliderManager; }
  16. HandleDrawManager& getDrawManager() const { return *mDrawManager; }
  17. float getHandleSize(const CameraHandlerPtr& camera, const Vector3& handlePos) const;
  18. void setDefaultHandleSize(float value) { mDefaultHandleSize = value; }
  19. void setMoveHandleSnapAmount(float value) { mMoveHandleSnapAmount = value; }
  20. void setRotateHandleSnapAmount(Degree value) { mRotateHandleSnapAmount = value; }
  21. void setScaleHandleSnapAmount(float value) { mScaleHandleSnapAmount = value; }
  22. bool isHandleActive() const;
  23. protected:
  24. HandleSliderManager* mSliderManager;
  25. HandleDrawManager* mDrawManager;
  26. float mDefaultHandleSize = 20.0f;
  27. float mMoveHandleSnapAmount = 0.1f;
  28. Degree mRotateHandleSnapAmount = Degree(20.0f);
  29. float mScaleHandleSnapAmount = 0.1f;
  30. virtual void refreshHandles() = 0;
  31. virtual void triggerHandles() = 0;
  32. virtual void queueDrawCommands() = 0;
  33. };
  34. }