PageRenderTime 42ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/Rendering/CameraTests/Program.cs

#
C# | 95 lines | 54 code | 8 blank | 33 comment | 1 complexity | 940ac1cfbb9fff5cb56fa7c9ab49ae70 MD5 | raw file
Possible License(s): Apache-2.0
  1. using Delta.Engine;
  2. using Delta.Rendering.Cameras;
  3. using Delta.Utilities;
  4. using Delta.Utilities.Datatypes;
  5. namespace Delta.Rendering.CameraTests
  6. {
  7. /// <summary>
  8. /// Program
  9. /// </summary>
  10. internal class Program
  11. {
  12. #region Main (Static)
  13. /// <summary>
  14. /// Main entry point.
  15. /// </summary>
  16. public static void Main()
  17. {
  18. #region Tests
  19. //LookAtCameraTests.TestLookAtCamera();
  20. //LookAtCameraTests.DefaultCameraBehavior();
  21. //IsometricCameraTests.TestIsometricCamera();
  22. //IsometricCameraTests.TestIsoPerspectiveCamera();
  23. //GameCameraTests.TestGameCamera();
  24. //GameCameraTests.DefaultCameraBehavior();
  25. //FreeCameraTests.TestFreeCamera();
  26. //FreeCameraTests.DefaultCameraBehavior();
  27. //FreeCameraTests.TestRotation();
  28. //FreeCameraTests.TestMoving();
  29. //FreeCameraTests.TestMovingRotating();
  30. //PathCameraTests.Start();
  31. #endregion
  32. #region Tutorials
  33. Tutorials.UseLookAtCamera();
  34. //Tutorials.UseFreeCamera();
  35. //Tutorials.UseGameCamera();
  36. //Tutorials.UseIsometricCamera();
  37. //Tutorials.UsePathCamera();
  38. #endregion
  39. }
  40. #endregion
  41. #region MixedCameraActivation (Static)
  42. /// <summary>
  43. /// This test simply checks if the activation logic works, so only
  44. /// one camera updates itself and not every camera at all.
  45. /// Because a camera is now a dynamic module it's updating itself
  46. /// every tick, regardless if it should or not, so we store which camera
  47. /// is currently active in BaseCamera.Current and only this one is
  48. /// allowed to update itself.
  49. /// An exception to this rule are multi-component cameras, which enable
  50. /// AlwaysNeedsUpdate. This type of camera implements its own logic if it
  51. /// should actually do something or not.
  52. /// </summary>
  53. public static void MixedCameraActivation()
  54. {
  55. LookAtCamera cam1 = new LookAtCamera(Vector.One);
  56. FreeCamera cam2 = new FreeCamera(Vector.One * 2f);
  57. int iteration = 0;
  58. Application.Start(delegate
  59. {
  60. Log.Info("iteration=" + iteration);
  61. switch (iteration)
  62. {
  63. case 0:
  64. cam2.Activate();
  65. break;
  66. case 1:
  67. cam1.Activate();
  68. break;
  69. case 2:
  70. cam2.Activate();
  71. break;
  72. case 3:
  73. cam1.Activate();
  74. break;
  75. case 4:
  76. cam2.Activate();
  77. break;
  78. case 5:
  79. Application.Quit();
  80. break;
  81. }
  82. iteration++;
  83. });
  84. }
  85. #endregion
  86. }
  87. }