using Microsoft.Xna.Framework; namespace Kav { public struct PerspectiveCamera { public Matrix View { get; } public Matrix Projection { get; } public Vector3 Position { get; } public Vector3 Forward { get; } public Vector3 Up { get; } public float FieldOfView { get; } public float AspectRatio { get; } public float NearPlane { get; } public float FarPlane { get; } public PerspectiveCamera( Vector3 position, Vector3 forward, Vector3 up, float fieldOfView, float aspectRatio, float nearPlane, float farPlane ) { Position = position; Forward = forward; Up = up; View = Matrix.CreateLookAt(Position, Position + Forward, Up); FieldOfView = fieldOfView; AspectRatio = aspectRatio; NearPlane = nearPlane; FarPlane = farPlane; Projection = Matrix.CreatePerspectiveFieldOfView(FieldOfView, AspectRatio, NearPlane, FarPlane); } } }