feat: 3D camera added
This commit is contained in:
26
Engine.Core/Abstract/ICamera3D.cs
Normal file
26
Engine.Core/Abstract/ICamera3D.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
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);
|
||||
}
|
Reference in New Issue
Block a user