SceneCameraOptions.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. using BansheeEngine;
  4. namespace BansheeEditor
  5. {
  6. /** @addtogroup Scene-Editor
  7. * @{
  8. */
  9. /// <summary>
  10. /// Options used by the scene camera.
  11. /// </summary>
  12. internal class SceneCameraOptions
  13. {
  14. public static float[] ScrollSpeeds
  15. {
  16. get => new float[]
  17. {
  18. 0.1f,
  19. 0.25f,
  20. 0.5f,
  21. 0.75f,
  22. 1f,
  23. 1.5f,
  24. 2f,
  25. 3f
  26. };
  27. }
  28. public const float StartSpeed = 4.0f;
  29. public const float TopSpeed = 12.0f;
  30. public readonly Degree FieldOfView = (Degree)90.0f;
  31. public float Acceleration { get; private set; }
  32. public float FastModeMultiplier { get; private set; }
  33. public float PanSpeed { get; private set; }
  34. public float ScrollSpeed { get; private set; }
  35. public float RotationalSpeed { get; private set; }
  36. public SceneCameraOptions()
  37. {
  38. Acceleration = EditorSettings.GetFloat("SceneCameraOptions_Acceleration", 1.0f);
  39. FastModeMultiplier = EditorSettings.GetFloat("SceneCameraOptions_FastModeMultiplier", 2.0f);
  40. PanSpeed = EditorSettings.GetFloat("SceneCameraOptions_PanSpeed", 3.0f);
  41. ScrollSpeed = EditorSettings.GetFloat("SceneCameraOptions_ScrollSpeed", 3.0f);
  42. RotationalSpeed = EditorSettings.GetFloat("SceneCameraOptions_RotationalSpeed", 3.0f);
  43. }
  44. /// <summary>
  45. /// Sets the acceleration of the scene camera
  46. /// </summary>
  47. /// <param name="acceleration">The acceleration value.</param>
  48. public void SetAcceleration(float acceleration)
  49. {
  50. Acceleration = acceleration;
  51. EditorSettings.SetFloat("SceneCameraOptions_Acceleration", acceleration);
  52. }
  53. /// <summary>
  54. /// Sets the fast mode multiplier of the scene camera
  55. /// </summary>
  56. /// <param name="fastModeMultiplier">The fast mode multiplier value.</param>
  57. public void SetFastModeMultiplier(float fastModeMultiplier)
  58. {
  59. FastModeMultiplier = fastModeMultiplier;
  60. EditorSettings.SetFloat("SceneCameraOptions_FastModeMultiplier", fastModeMultiplier);
  61. }
  62. /// <summary>
  63. /// Sets the pan speed of the scene camera
  64. /// </summary>
  65. /// <param name="panSpeed">The pan speed value.</param>
  66. public void SetPanSpeed(float panSpeed)
  67. {
  68. PanSpeed = panSpeed;
  69. EditorSettings.SetFloat("SceneCameraOptions_PanSpeed", panSpeed);
  70. }
  71. /// <summary>
  72. /// Sets the scroll speed of the scene camera
  73. /// </summary>
  74. /// <param name="scrollSpeed">The scroll speed value.</param>
  75. public void SetScrollSpeed(float scrollSpeed)
  76. {
  77. ScrollSpeed = scrollSpeed;
  78. EditorSettings.SetFloat("SceneCameraOptions_ScrollSpeed", scrollSpeed);
  79. }
  80. /// <summary>
  81. /// Sets the rotation speed of the scene camera
  82. /// </summary>
  83. /// <param name="rotationalSpeed">The rotation speed value.</param>
  84. public void SetRotationalSpeed(float rotationalSpeed)
  85. {
  86. RotationalSpeed = rotationalSpeed;
  87. EditorSettings.SetFloat("SceneCameraOptions_RotationalSpeed", rotationalSpeed);
  88. }
  89. }
  90. /** @} */
  91. }