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