27 lines
		
	
	
		
			950 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			950 B
		
	
	
	
		
			C#
		
	
	
	
	
	
namespace Engine.Core;
 | 
						|
 | 
						|
/// <summary>
 | 
						|
/// Represents a 3D camera in the engine.
 | 
						|
/// </summary>
 | 
						|
public interface ICamera3D : IBehaviour3D
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Field of View (FOV) value of the camera
 | 
						|
    /// </summary>
 | 
						|
    float FieldOfView { get; set; }
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Converts a position from screen coordinates to a <see cref="Ray3D"/>.
 | 
						|
    /// </summary>
 | 
						|
    /// <param name="screenPosition">The position in screen coordinates.</param>
 | 
						|
    /// <returns>The <see cref="Ray3D"/> originating from the camera to the screen position in world coordinates.</returns>
 | 
						|
    Ray3D ScreenToWorldRay(Vector2D screenPosition);
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Converts a position from world coordinates to screen coordinates.
 | 
						|
    /// </summary>
 | 
						|
    /// <param name="worldPosition">The position in world coordinates.</param>
 | 
						|
    /// <returns>The position in screen coordinates.</returns>
 | 
						|
    Vector2D WorldToScreenPosition(Vector3D worldPosition);
 | 
						|
}
 |