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);
|
|
}
|