BsSceneCameraController.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "BsPrerequisites.h"
  3. #include "BsComponent.h"
  4. #include "BsMath.h"
  5. #include "BsVirtualInput.h"
  6. namespace BansheeEngine
  7. {
  8. class SceneCameraController : public Component
  9. {
  10. public:
  11. virtual void update();
  12. static const String MOVE_FORWARD_BTN;
  13. static const String MOVE_LEFT_BTN;
  14. static const String MOVE_RIGHT_BTN;
  15. static const String MOVE_BACKWARD_BTN;
  16. static const String FAST_MOVE_BTN;
  17. static const String ROTATE_BTN;
  18. static const String HORIZONTAL_AXIS;
  19. static const String VERTICAL_AXIS;
  20. private:
  21. float mCurrentSpeed;
  22. Degree mPitch;
  23. Degree mYaw;
  24. bool mLastButtonState;
  25. HCamera mCamera;
  26. VirtualButton mMoveForward;
  27. VirtualButton mMoveLeft;
  28. VirtualButton mMoveRight;
  29. VirtualButton mMoveBackward;
  30. VirtualButton mFastMove;
  31. VirtualButton mRotate;
  32. VirtualAxis mHorizontal;
  33. VirtualAxis mVertical;
  34. static const float START_SPEED;
  35. static const float TOP_SPEED;
  36. static const float ACCELERATION;
  37. static const float FAST_MODE_MULTIPLIER;
  38. static const float ROTATION_SPEED; // Degrees/second
  39. /************************************************************************/
  40. /* COMPONENT OVERRIDES */
  41. /************************************************************************/
  42. protected:
  43. friend class SceneObject;
  44. SceneCameraController(const HSceneObject& parent);
  45. };
  46. }