Camera.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Microsoft.Xna.Framework;
  2. namespace MonoGame.Extended
  3. {
  4. public abstract class Camera<T> where T : struct
  5. {
  6. public abstract T Position { get; set; }
  7. public abstract float Rotation { get; set; }
  8. public abstract float Zoom { get; set; }
  9. public abstract float MinimumZoom { get; set; }
  10. public abstract float MaximumZoom { get; set; }
  11. public abstract float Pitch { get; set; }
  12. public abstract float MinimumPitch { get; set; }
  13. public abstract float MaximumPitch { get; set; }
  14. public abstract RectangleF BoundingRectangle { get; }
  15. public abstract T Origin { get; set; }
  16. public abstract T Center { get; }
  17. public abstract void Move(T direction);
  18. public abstract void Rotate(float deltaRadians);
  19. public abstract void ZoomIn(float deltaZoom);
  20. public abstract void ZoomOut(float deltaZoom);
  21. public abstract void PitchUp(float deltaZoom);
  22. public abstract void PitchDown(float deltaZoom);
  23. public abstract void LookAt(T position);
  24. public abstract T WorldToScreen(T worldPosition);
  25. public abstract T ScreenToWorld(T screenPosition);
  26. public abstract Matrix GetViewMatrix();
  27. public abstract Matrix GetInverseViewMatrix();
  28. public abstract BoundingFrustum GetBoundingFrustum();
  29. public abstract ContainmentType Contains(Vector2 vector2);
  30. public abstract ContainmentType Contains(Rectangle rectangle);
  31. }
  32. }