Lysa  0.0
Lysa 3D Engine
lysa Namespace Reference

Namespaces

namespace  ui
 

Classes

struct  AABB
 
class  AABBShape
 
class  Animation
 
class  AnimationLibrary
 
class  AnimationPlayer
 
class  Application
 
struct  ApplicationConfiguration
 
class  AssetsPack
 
class  AsyncQueue
 
class  BPLayerInterfaceImpl
 
class  BoxShape
 
class  Camera
 
class  Character
 
class  CollisionArea
 
class  CollisionObject
 
class  ContactListener
 
class  ConvexHullShape
 
struct  DebugConfig
 
class  DebugRenderer
 
class  DeferredRenderer
 
class  DepthPrepass
 
class  DeviceMemoryArray
 
class  DirectionalLight
 
struct  DrawCommand
 
class  Environment
 
class  Exception
 
class  Font
 
struct  FontParams
 
class  ForwardColor
 
class  ForwardRenderer
 
struct  Frustum
 
class  FrustumCulling
 
class  GBufferPass
 
class  HostVisibleMemoryArray
 
class  Image
 
class  ImageTexture
 
class  Input
 
struct  InputAction
 
struct  InputActionEntry
 
class  InputEvent
 
class  InputEventGamepadButton
 
class  InputEventKey
 
class  InputEventMouse
 
class  InputEventMouseButton
 
class  InputEventMouseMotion
 
struct  InstanceData
 
class  JoltPhysicsEngine
 
class  JoltPhysicsScene
 
class  KinematicBody
 
struct  LayerCollideWith
 
struct  LayerCollisionTable
 
class  Light
 
struct  LightData
 
class  LightingPass
 
class  Loader
 
struct  Log
 
class  LogStream
 
class  LogStreamBuf
 
class  Material
 
struct  MaterialData
 
class  MemoryArray
 
struct  MemoryBlock
 
class  Mesh
 
class  MeshInstance
 
struct  MeshInstanceData
 
class  MeshShape
 
struct  MeshSurface
 
struct  MeshSurfaceData
 
class  Node
 
class  Object
 
class  ObjectLayerPairFilterImpl
 
class  ObjectVsBroadPhaseLayerFilterImpl
 
class  OmniLight
 
class  PhysXPhysicsEngine
 
class  PhysXPhysicsScene
 
class  PhysicsBody
 
struct  PhysicsConfiguration
 
class  PhysicsEngine
 
class  PhysicsScene
 
class  PostProcessing
 
class  PropertyTween
 
class  RayCast
 
class  Renderer
 
struct  RenderingConfiguration
 
class  Renderpass
 
class  Resource
 
class  Resources
 
struct  ResourcesConfiguration
 
class  RigidBody
 
class  SMAAPass
 
class  SSAOPass
 
class  Samplers
 
class  Scene
 
struct  SceneConfiguration
 
struct  SceneData
 
class  ShaderMaterial
 
class  ShaderMaterialPass
 
class  ShadowMapPass
 
class  Shape
 
class  Signal
 
class  SphereShape
 
class  SpotLight
 
class  StandardMaterial
 
class  StaticBody
 
class  StaticCompoundShape
 
struct  SubShape
 
class  Texture
 
struct  TextureInfoData
 
class  TransparencyPass
 
class  Tween
 
class  TypeRegistry
 
class  UIRenderer
 
class  Updatable
 
class  VectorRenderer
 
struct  Vertex
 
struct  VertexData
 
class  Viewport
 
struct  ViewportConfiguration
 
class  VirtualFS
 
class  Window
 
struct  WindowConfiguration
 

Typedefs

using uint8 = std::uint8_t
 
using uint16 = std::uint16_t
 
using uint32 = std::uint32_t
 
using uint64 = std::uint64_t
 
using int8 = std::int8_t
 
using int16 = std::int16_t
 
using int32 = std::int32_t
 
using int64 = std::int64_t
 
using unique_id = uint64
 
using pipeline_id = uint32
 
using collision_layer = uint32
 

Enums

enum class  DebugShapeColor { InstanceColor, ShapeTypeColor, MotionTypeColor, SleepColor }
 Coloring scheme of collision shapes (only supported by Jolt) More...
 
enum class  WindowMode : uint8 { WINDOWED = 0, WINDOWED_MAXIMIZED = 1, WINDOWED_FULLSCREEN = 2, FULLSCREEN = 3 }
 
enum class  Transparency { DISABLED = 0, ALPHA = 1 }
 
enum class  ProcessMode {
  INHERIT = 0, PAUSABLE = 1, WHEN_PAUSED = 2, ALWAYS = 3,
  DISABLED = 4
}
 
enum class  InputEventType : uint8 { KEY = 0, MOUSE_MOTION = 1, MOUSE_BUTTON = 2, GAMEPAD_BUTTON = 3 }
 
enum class  KeyModifier : uint8 { SHIFT = 0x0001, CONTROL = 0x0002, ALT = 0x0004 }
 
enum  Key : uint32 {
  KEY_NONE = 0, KEY_SPACE = 1, KEY_DASH = 2, KEY_PIPE = 3,
  KEY_APOSTROPHE = 4, KEY_COMMA = 5, KEY_PERIOD = 6, KEY_QUESTIONMARK = 7,
  KEY_0 = 8, KEY_1 = 9, KEY_2 = 10, KEY_3 = 11,
  KEY_4 = 12, KEY_5 = 13, KEY_6 = 14, KEY_7 = 15,
  KEY_8 = 16, KEY_9 = 17, KEY_SEMICOLON = 18, KEY_EQUAL = 19,
  KEY_A = 20, KEY_B = 21, KEY_C = 22, KEY_D = 23,
  KEY_E = 24, KEY_F = 25, KEY_G = 26, KEY_H = 27,
  KEY_I = 28, KEY_J = 29, KEY_K = 30, KEY_L = 31,
  KEY_M = 32, KEY_N = 33, KEY_O = 34, KEY_P = 35,
  KEY_Q = 36, KEY_R = 37, KEY_S = 38, KEY_T = 39,
  KEY_U = 40, KEY_V = 41, KEY_W = 42, KEY_X = 43,
  KEY_Y = 44, KEY_Z = 45, KEY_LEFT_BRACKET = 46, KEY_BACKSLASH = 47,
  KEY_RIGHT_BRACKET = 48, KEY_GRAVE_ACCENT = 49, KEY_ESCAPE = 50, KEY_ENTER = 51,
  KEY_TAB = 52, KEY_BACKSPACE = 53, KEY_INSERT = 54, KEY_DELETE = 55,
  KEY_RIGHT = 56, KEY_LEFT = 57, KEY_DOWN = 58, KEY_UP = 59,
  KEY_PAGE_UP = 60, KEY_PAGE_DOWN = 61, KEY_HOME = 62, KEY_END = 63,
  KEY_CAPS_LOCK = 64, KEY_SCROLL_LOCK = 65, KEY_NUM_LOCK = 66, KEY_PRINT_SCREEN = 67,
  KEY_PAUSE = 68, KEY_F1 = 69, KEY_F2 = 70, KEY_F3 = 71,
  KEY_F4 = 72, KEY_F5 = 73, KEY_F6 = 74, KEY_F7 = 75,
  KEY_F8 = 76, KEY_F9 = 77, KEY_F10 = 78, KEY_F11 = 79,
  KEY_F12 = 80, KEY_KP_0 = 81, KEY_KP_1 = 82, KEY_KP_2 = 83,
  KEY_KP_3 = 84, KEY_KP_4 = 85, KEY_KP_5 = 86, KEY_KP_6 = 87,
  KEY_KP_7 = 88, KEY_KP_8 = 89, KEY_KP_9 = 90, KEY_KP_PERIOD = 91,
  KEY_KP_DIVIDE = 92, KEY_KP_MULTIPLY = 93, KEY_KP_SUBTRACT = 94, KEY_KP_ADD = 95,
  KEY_KP_ENTER = 96, KEY_KP_EQUAL = 97, KEY_LEFT_SHIFT = 98, KEY_LEFT_CONTROL = 99,
  KEY_LEFT_ALT = 100, KEY_LEFT_SUPER = 101, KEY_RIGHT_SHIFT = 102, KEY_RIGHT_CONTROL = 103,
  KEY_RIGHT_ALT = 104, KEY_RIGHT_SUPER = 105
}
 
enum class  MouseButton : uint8 {
  NONE = 0b0000, LEFT = 0b0001, RIGHT = 0b0010, MIDDLE = 0b0100,
  WHEEL = 0b1000
}
 
enum class  GamepadButton : uint8 {
  A = 0, CROSS = A, B = 1, CIRCLE = B,
  X = 2, SQUARE = X, Y = 3, TRIANGLE = Y,
  LB = 4, L1 = LB, RB = 5, R1 = RB,
  BACK = 6, SHARE = BACK, START = 7, MENU = START,
  LT = 8, L2 = LT, RT = 9, R2 = RT,
  DPAD_UP = 10, DPAD_RIGHT = 11, DPAD_DOWN = 12, DPAD_LEFT = 13,
  LAST = DPAD_LEFT
}
 
enum class  GamepadAxisJoystick : uint8 { LEFT = 0, RIGHT = 1 }
 
enum class  GamepadAxis : uint8 {
  LEFT_X = 0, LEFT_Y = 1, RIGHT_X = 2, RIGHT_Y = 3,
  LEFT_TRIGGER = 4, RIGHT_TRIGGER = 5, LAST = RIGHT_TRIGGER
}
 
enum class  MouseMode : uint8 { VISIBLE = 0, VISIBLE_CAPTURED = 1, HIDDEN = 2, HIDDEN_CAPTURED = 3 }
 
enum class  MouseCursor : uint8 { ARROW = 0, WAIT = 1, RESIZE_H = 2, RESIZE_V = 3 }
 
enum  LoggingMode : uint32 { LOGGING_MODE_NONE = 0, LOGGING_MODE_WINDOW = 0x001, LOGGING_MODE_FILE = 0x010, LOGGING_MODE_STDOUT = 0x100 }
 
enum class  LogLevel : int32 {
  TRACE = -1, DEBUG = 0, INFO = 1, GAME1 = 2,
  GAME2 = 3, GAME3 = 4, WARNING = 5, ERROR = 6,
  CRITICAL = 7, INTERNAL = 100
}
 
enum class  AnimationType : uint8 { TRANSLATION = 1, ROTATION = 2, SCALE = 3 }
 
enum class  AnimationInterpolation : uint8 { LINEAR = 0, STEP = 1 }
 
enum class  AnimationLoopMode : uint8 { NONE = 0, LINEAR = 1 }
 
enum class  TransitionType : uint8 { LINEAR = 0 }
 
enum class  CombineMode : uint8 { AVERAGE = 0, MIN = 1, MAX = 2, MULTIPLY = 3 }
 
enum class  RendererType : uint8 { FORWARD = 0, DEFERRED = 1 }
 
enum class  ToneMappingType : uint8 { NONE = 0, REINHARD = 1, ACES = 2 }
 
enum class  AntiAliasingType : uint8 { NONE = 0, FXAA = 1, SMAA = 2 }
 
enum class  PhysicsEngineType { JOLT, PHYSX }
 

Functions

template<typename Expr >
constexpr void assert_expr (Expr &&, const std::string_view, const std::source_location &=std::source_location::current ()) noexcept
 
float getCurrentTimeMilliseconds ()
 
std::string sanitizeName (const std::string &name)
 
bool dirExists (const std::string &dirName)
 
float3 to_float3 (const std::string &str)
 
float4 to_float4 (const std::string &str)
 
std::vector< std::string_view > split (std::string_view str, char delimiter)
 
std::string to_hexstring (const void *ptr)
 
std::string to_hexstring (uint32 ptr)
 
std::string to_string (const wchar_t *wstr)
 
std::string to_string (const float3 &vec)
 
std::string to_string (const float2 &vec)
 
std::string to_string (const quaternion &vec)
 
std::string to_string (const float4 &vec)
 
std::u32string to_utf32 (const std::string &utf8)
 
std::string to_lower (const std::string &str)
 
consteval bool isLoggingEnabled ()
 
void TRACE (const std::source_location &location=std::source_location::current ())
 
template<typename... Args>
void DEBUG (Args...args)
 
template<typename... Args>
void INFO (Args...args)
 
template<typename... Args>
void GAME1 (Args...args)
 
template<typename... Args>
void GAME2 (Args...args)
 
template<typename... Args>
void GAME3 (Args...args)
 
template<typename... Args>
void WARNING (Args...args)
 
template<typename... Args>
void ERROR (Args...args)
 
template<typename... Args>
void CRITICAL (Args...args)
 
float3 eulerAngles (quaternion q)
 
float radians (const float angle)
 
bool almostEquals (const float f1, const float f2)
 
bool almostEquals (const quaternion &f1, const quaternion &f2)
 
float4x4 lookAt (const float3 &eye, const float3 &center, const float3 &up)
 
float4x4 perspective (float fov, float aspect, float near, float far)
 
float4x4 orthographic (float left, float right, float top, float bottom, float znear, float zfar)
 
uint32 randomi (uint32 max)
 
float randomf (float max)
 

Variables

constexpr unique_id INVALID_ID {0}
 
const float3 DEFAULT_CLEAR_COLOR {0.0f, 0.0f, 0.0f}
 
const float3 AXIS_X {1.0f, 0.0f, 0.0f}
 
const float3 AXIS_Y {0.0f, 1.0f, 0.0f}
 
const float3 AXIS_Z {0.0f, 0.0f, 1.0f}
 
const float3 AXIS_UP = {0.0f, 1.0f, 0.0f}
 
const float3 AXIS_DOWN = {0.0f, -1.0f, 0.0f}
 
const float3 AXIS_FRONT = {0.0f, 0.0f, -1.0f}
 
const float3 AXIS_BACK = {0.0f, 0.0f, 1.0f}
 
const float3 AXIS_RIGHT = {1.0f, 0.0f, 0.0f}
 
const float3 AXIS_LEFT = {-1.0f, 0.0f, 0.0f}
 
const float2 FLOAT2ZERO {0.0f}
 
const float3 FLOAT3ZERO {0.0f}
 
const quaternion QUATERNION_IDENTITY {0.0f, 0.0f, 0.0f, 1.0f}
 
const float3x3 TRANSFORM_BASIS {1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f}
 
constexpr float HALF_PI = std::numbers::pi_v<float> / 2.0f
 
constexpr int SHADER_MATERIAL_MAX_PARAMETERS {4}
 
constexpr pipeline_id DEFAULT_PIPELINE_ID {0}
 
constexpr uint32 MAX_COLLISIONS_LAYERS {100}
 
constexpr float VECTOR_SCREEN_SIZE {1000.0f}
 
constexpr bool ENABLE_LOG = true
 

Typedef Documentation

using int16 = std::int16_t
using int32 = std::int32_t
using int64 = std::int64_t
using int8 = std::int8_t
using uint16 = std::uint16_t
using uint32 = std::uint32_t
using uint64 = std::uint64_t
using uint8 = std::uint8_t
using unique_id = uint64

Enumeration Type Documentation

enum class AnimationInterpolation : uint8
strong

Interpolation type to apply when caculating animation values

Enum ValuesDocumentation
LINEAR 

The animated values are linearly interpolated between keyframes..

STEP 

The animated values remain constant to the output of the first keyframe, until the next keyframe.

enum class AnimationLoopMode : uint8
strong

Animation loop mode

Enum ValuesDocumentation
NONE 

No loop (default)

LINEAR 

Restart from start of the track.

enum class AnimationType : uint8
strong

Animation type for a animation track

Enum ValuesDocumentation
TRANSLATION 

The values are the translation along the X, Y, and Z axes.

ROTATION 

The values are a quaternion in the order x, y, z, w where w is the scalar.

SCALE 

The values are scaling factors along the X, Y, and Z axes.

enum class AntiAliasingType : uint8
strong
Enum ValuesDocumentation
NONE 
FXAA 
SMAA 
enum class CombineMode : uint8
strong
Enum ValuesDocumentation
AVERAGE 
MIN 
MAX 
MULTIPLY 
enum class DebugShapeColor
strong

Coloring scheme of collision shapes (only supported by Jolt)

Enum ValuesDocumentation
InstanceColor 

Random color per instance.

ShapeTypeColor 

Convex = green, scaled = yellow, compound = orange, mesh = red.

MotionTypeColor 

Static = grey, keyframed = green, dynamic = random color per instance.

SleepColor 

Static = grey, keyframed = green, dynamic = yellow, sleeping = red.

enum class GamepadAxis : uint8
strong

Gamepad axis & triggers

Enum ValuesDocumentation
LEFT_X 

Left stick/joystick X.

LEFT_Y 

Left stick/joystick Y.

RIGHT_X 

Right stick/joystick X.

RIGHT_Y 

Right stick/joystick Y.

LEFT_TRIGGER 
RIGHT_TRIGGER 
LAST 
enum class GamepadAxisJoystick : uint8
strong

Gamepad thumbs joysticks

Enum ValuesDocumentation
LEFT 

Left stick/joystick.

RIGHT 

Right stick/joystick.

enum class GamepadButton : uint8
strong

Gamepas buttons

Enum ValuesDocumentation

A or X.

CROSS 

A or X.

B or ○.

CIRCLE 

B or ○.

X or □.

SQUARE 

X or □.

Y or △.

TRIANGLE 

Y or △.

LB 

Left shoulder/bumper.

L1 

Left shoulder/bumper.

RB 

Right shoulder/bumper.

R1 

Right shoulder/bumper.

BACK 

Back/Share.

SHARE 

Back/Share.

START 

Start/Menu.

MENU 

Start/Menu.

LT 

Left trigger.

L2 

Left trigger.

RT 

Right trigger.

R2 

Right trigger.

DPAD_UP 

Directional hat ↑.

DPAD_RIGHT 

Directional hat →.

DPAD_DOWN 

Directional hat ↓.

DPAD_LEFT 

Directional hat ←.

LAST 
enum class InputEventType : uint8
strong

Source of an input event

Enum ValuesDocumentation
KEY 

A key have been pressed or released.

MOUSE_MOTION 

The mouse cursor moved.

MOUSE_BUTTON 

A mouse button have been pressed or released.

GAMEPAD_BUTTON 

A gamepad button have been pressed or released.

enum Key : uint32

Key codes, QWERTY layout to keep the WASD keys

Enum ValuesDocumentation
KEY_NONE 
KEY_SPACE 

Space.

KEY_DASH 
KEY_PIPE 

|

KEY_APOSTROPHE 

'

KEY_COMMA 

,

KEY_PERIOD 

$.

KEY_QUESTIONMARK 

?

KEY_0 

0

KEY_1 

1

KEY_2 

2

KEY_3 

3

KEY_4 

4

KEY_5 

5

KEY_6 

6

KEY_7 

7

KEY_8 

8

KEY_9 

9

KEY_SEMICOLON 

;

KEY_EQUAL 

=

KEY_A 

A.

KEY_B 

B.

KEY_C 

C.

KEY_D 

D.

KEY_E 

E.

KEY_F 

F.

KEY_G 

G.

KEY_H 

H.

KEY_I 

I.

KEY_J 

J.

KEY_K 

K.

KEY_L 

L.

KEY_M 

M.

KEY_N 

N.

KEY_O 

O.

KEY_P 

P.

KEY_Q 

Q.

KEY_R 

R.

KEY_S 

S.

KEY_T 

T.

KEY_U 

U.

KEY_V 

V.

KEY_W 

W.

KEY_X 

X.

KEY_Y 

Y.

KEY_Z 

Z.

KEY_LEFT_BRACKET 

[

KEY_BACKSLASH 

backslash

KEY_RIGHT_BRACKET 

]

KEY_GRAVE_ACCENT 
KEY_ESCAPE 

ESC.

KEY_ENTER 

KEY_TAB 

Tabulation.

KEY_BACKSPACE 

back space

KEY_INSERT 

Insert.

KEY_DELETE 

Delete.

KEY_RIGHT 

KEY_LEFT 

KEY_DOWN 

KEY_UP 

KEY_PAGE_UP 

Page ↑.

KEY_PAGE_DOWN 

Page ↓.

KEY_HOME 

Home/Start.

KEY_END 

End.

KEY_CAPS_LOCK 

Left caps lock.

KEY_SCROLL_LOCK 

Scroll lock.

KEY_NUM_LOCK 

Numeric keypad lock.

KEY_PRINT_SCREEN 

Print.

KEY_PAUSE 

Pause.

KEY_F1 

F1.

KEY_F2 

F2.

KEY_F3 

F3.

KEY_F4 

F4.

KEY_F5 

F5.

KEY_F6 

F6.

KEY_F7 

F7.

KEY_F8 

F8.

KEY_F9 

F9.

KEY_F10 

F10.

KEY_F11 

F11.

KEY_F12 

F12.

KEY_KP_0 

Keypad 0.

KEY_KP_1 

Keypad 1.

KEY_KP_2 

Keypad 2.

KEY_KP_3 

Keypad 3.

KEY_KP_4 

Keypad 4.

KEY_KP_5 

Keypad 5.

KEY_KP_6 

Keypad 6.

KEY_KP_7 

Keypad 7.

KEY_KP_8 

Keypad 8.

KEY_KP_9 

Keypad 9.

KEY_KP_PERIOD 

Keypad .

KEY_KP_DIVIDE 

Keypad /.

KEY_KP_MULTIPLY 

Keypad *.

KEY_KP_SUBTRACT 

Keypad -.

KEY_KP_ADD 

Keypad +.

KEY_KP_ENTER 

Keypad ⏎.

KEY_KP_EQUAL 

Keypad =.

KEY_LEFT_SHIFT 

Left Shift.

KEY_LEFT_CONTROL 

Left Control.

KEY_LEFT_ALT 

Left Alt.

KEY_LEFT_SUPER 

Left Super/Windows.

KEY_RIGHT_SHIFT 

Right Shift.

KEY_RIGHT_CONTROL 

Right Control.

KEY_RIGHT_ALT 

Right Alt.

KEY_RIGHT_SUPER 

Right Super/Windows.

enum class KeyModifier : uint8
strong

Keyboard modifier keys

Enum ValuesDocumentation
SHIFT 

Left & right shift keys.

CONTROL 

Left & right control keys.

ALT 

Left & right alt keys.

Where to log messages

Enum ValuesDocumentation
LOGGING_MODE_NONE 

Disable logging.

LOGGING_MODE_WINDOW 

Open an external Window (on the first screen if you have multiple screen) to display the log messages. Log message appearance in the Window can be deferred to the next frame if the log message is sent from a thread different from the main thread

LOGGING_MODE_FILE 

Log the messages into a file named 'log.txt'

LOGGING_MODE_STDOUT 

Log the messages to std::cout. WIN32 applications needs to be linked with -mconsole

enum class LogLevel : int32
strong

Log levels

Enum ValuesDocumentation
TRACE 
DEBUG 
INFO 
GAME1 
GAME2 
GAME3 
WARNING 
ERROR 
CRITICAL 
INTERNAL 
enum class MouseButton : uint8
strong

Mouse buttons

Enum ValuesDocumentation
NONE 
LEFT 

Left.

RIGHT 

Right.

MIDDLE 

Middle.

WHEEL 

Wheel. Pressed==true means rotated backward.

enum class MouseCursor : uint8
strong

Mouse cursors types

Enum ValuesDocumentation
ARROW 

"Normal" arrow cursor

WAIT 

Waiting cursor.

RESIZE_H 

Horizontal resize cursor.

RESIZE_V 

Vertical resize cursor.

enum class MouseMode : uint8
strong

Mouse visibility & capture mode

Enum ValuesDocumentation
VISIBLE 

Makes the mouse cursor visible.

VISIBLE_CAPTURED 

Confines the mouse cursor to the game Window, and make it visible.

HIDDEN 

Makes the mouse cursor hidden.

HIDDEN_CAPTURED 

Confines the mouse cursor to the game Window, and make it hidden.

enum class PhysicsEngineType
strong

Enumerates the available physics backends supported by the engine.

  • JOLT: Uses the Jolt Physics library.
  • PHYSX: Uses NVIDIA PhysX.
Enum ValuesDocumentation
JOLT 
PHYSX 
enum class ProcessMode
strong

Nodes state when the scene is paused or running

Enum ValuesDocumentation
INHERIT 

Inherits mode from the node's parent. This is the default for any newly created node.

PAUSABLE 

Stops processing when Application::isPaused() is true. This is the inverse of PROCESS_MODE_WHEN_PAUSED.

WHEN_PAUSED 

Process only when Application::isPaused() is true. This is the inverse of PROCESS_MODE_PAUSABLE.

ALWAYS 

Always process. Keeps processing, ignoring Application::isPaused(). This is the inverse of PROCESS_MODE_DISABLED.

DISABLED 

Never process. Completely disables processing, ignoring Application::isPaused(). This is the inverse of PROCESS_MODE_ALWAYS.

enum class RendererType : uint8
strong
Enum ValuesDocumentation
FORWARD 
DEFERRED 
enum class ToneMappingType : uint8
strong
Enum ValuesDocumentation
NONE 
REINHARD 
ACES 
enum class TransitionType : uint8
strong

A Tween transition type

Enum ValuesDocumentation
LINEAR 

The animation is interpolated linearly

enum class Transparency
strong

A Material transparency mode Any transparency mode other than Transparency::DISABLED has a greater performance impact compared to opaque rendering.

Enum ValuesDocumentation
DISABLED 

The material will not use transparency. This is the fastest to render.

ALPHA 

The material will use the texture's alpha values for transparency.

enum class WindowMode : uint8
strong

Rendering Window mode

Enum ValuesDocumentation
WINDOWED 

A Window with a border and a title that can be minimized.

WINDOWED_MAXIMIZED 

A maximized Window with a border and a title that can be minimized.

WINDOWED_FULLSCREEN 

A maximized Window without a border and without a title.

FULLSCREEN 

A full-screen Window. The screen resolution will be changed.

Function Documentation

bool lysa::almostEquals ( const float  f1,
const float  f2 
)
inline
bool lysa::almostEquals ( const quaternion &  f1,
const quaternion &  f2 
)
inline
constexpr void lysa::assert_expr ( Expr &&  ,
const std::string_view  ,
const std::source_location &  = std::source_location::current() 
)
constexprnoexcept
void lysa::CRITICAL ( Args...  args)
void lysa::DEBUG ( Args...  args)
bool lysa::dirExists ( const std::string &  dirName)

Tests whether a directory exists at the given path.

Parameters
dirNameOS path to check.
Returns
True if the directory exists; false otherwise.
void lysa::ERROR ( Args...  args)
float3 lysa::eulerAngles ( quaternion  q)
void lysa::GAME1 ( Args...  args)
void lysa::GAME2 ( Args...  args)
void lysa::GAME3 ( Args...  args)
float lysa::getCurrentTimeMilliseconds ( )

Returns the current time in milliseconds.

Returns
Elapsed time in milliseconds as a floating‑point value.
void lysa::INFO ( Args...  args)
consteval bool lysa::isLoggingEnabled ( )
float4x4 lysa::lookAt ( const float3 &  eye,
const float3 &  center,
const float3 &  up 
)
float4x4 lysa::orthographic ( float  left,
float  right,
float  top,
float  bottom,
float  znear,
float  zfar 
)
float4x4 lysa::perspective ( float  fov,
float  aspect,
float  near,
float  far 
)
float lysa::radians ( const float  angle)
float lysa::randomf ( float  max)

Returns a random value in the range [0.0f, max]

uint32 lysa::randomi ( uint32  max)

Returns a random value in the range [0, max]

std::string lysa::sanitizeName ( const std::string &  name)

Produces a sanitized version of a name suitable for identifiers or paths.

Typical sanitization removes or replaces characters that are not alphanumeric, underscore, hyphen or dot, and collapses whitespace.

Parameters
nameInput name to sanitize.
Returns
A sanitized, ASCII‑safe string.
std::vector<std::string_view> lysa::split ( std::string_view  str,
char  delimiter 
)

Splits a string view into sub‑views using a single‑character delimiter.

The returned views reference the original memory in str; no allocations are performed for the tokens themselves. Callers must ensure that the lifetime of the original string outlives the returned views.

Consecutive delimiters yield empty tokens.

Parameters
strSource string view to split.
delimiterDelimiter character (e.g., ',').
Returns
Vector of string_view tokens pointing into str.
float3 lysa::to_float3 ( const std::string &  str)

Parses a float3 from a textual representation.

Expected formats typically include:

  • "x y z"
  • "x,y,z"
Parameters
strInput string containing three floating‑point numbers.
Returns
Parsed float3 value; undefined behavior if the format is invalid.
float4 lysa::to_float4 ( const std::string &  str)

Parses a float4 from a textual representation.

Expected formats typically include:

  • "x y z w"
  • "x,y,z,w"
Parameters
strInput string containing four floating‑point numbers.
Returns
Parsed float4 value; undefined behavior if the format is invalid.
std::string lysa::to_hexstring ( const void *  ptr)

Returns a hexadecimal textual representation of a memory address.

Parameters
ptrPointer value to format.
Returns
Hex string for ptr.
std::string lysa::to_hexstring ( uint32  ptr)

Returns a hexadecimal textual representation of an integer value.

Parameters
ptrInteger value to format in hex.
Returns
Hex string for the input value.
std::string lysa::to_lower ( const std::string &  str)

Returns a lowercase copy of the input ASCII/UTF‑8 string.

Locale‑dependent rules may not be applied; intended for identifiers and case‑insensitive comparisons in engine code.

Parameters
strSource string.
Returns
Lowercased copy of str.
std::string lysa::to_string ( const float2 &  vec)

Returns a human‑readable string for a float2.

Parameters
vecVector to print.
Returns
String representation of vec.
std::string lysa::to_string ( const float3 &  vec)

Returns a human‑readable string for a float3.

Parameters
vecVector to print.
Returns
String representation of vec.
std::string lysa::to_string ( const float4 &  vec)

Returns a human‑readable string for a float4.

Parameters
vecVector to print.
Returns
String representation of vec.
std::string lysa::to_string ( const quaternion &  vec)

Returns a human‑readable string for a quaternion (x, y, z, w order).

Parameters
vecQuaternion to print.
Returns
String representation of vec.
std::string lysa::to_string ( const wchar_t *  wstr)

Converts a wide‑character C‑string to a UTF‑8 std::string.

Parameters
wstrNull‑terminated wide string.
Returns
UTF‑8 encoded string.
std::u32string lysa::to_utf32 ( const std::string &  utf8)

Converts a UTF‑8 string to UTF‑32 (char32_t) string.

Parameters
utf8Source string encoded in UTF‑8.
Returns
UTF‑32 string (UCS‑4 code points).
void lysa::TRACE ( const std::source_location &  location = std::source_location::current())
inline
void lysa::WARNING ( Args...  args)

Variable Documentation

const float3 AXIS_BACK = {0.0f, 0.0f, 1.0f}

BACK Axis

const float3 AXIS_DOWN = {0.0f, -1.0f, 0.0f}

DOWN Axis

const float3 AXIS_FRONT = {0.0f, 0.0f, -1.0f}

FRONT Axis

const float3 AXIS_LEFT = {-1.0f, 0.0f, 0.0f}

LEFT Axis

const float3 AXIS_RIGHT = {1.0f, 0.0f, 0.0f}

RIGHT Axis

const float3 AXIS_UP = {0.0f, 1.0f, 0.0f}

UP Axis

const float3 AXIS_X {1.0f, 0.0f, 0.0f}

X Axis

const float3 AXIS_Y {0.0f, 1.0f, 0.0f}

Y Axis

const float3 AXIS_Z {0.0f, 0.0f, 1.0f}

Z Axis

const float3 DEFAULT_CLEAR_COLOR {0.0f, 0.0f, 0.0f}

Default clear color for windows and color frame buffers

constexpr pipeline_id DEFAULT_PIPELINE_ID {0}
constexpr
constexpr bool ENABLE_LOG = true
constexpr
const float2 FLOAT2ZERO {0.0f}

2D zero initialized vector

const float3 FLOAT3ZERO {0.0f}

3D zero initialized vector

constexpr float HALF_PI = std::numbers::pi_v<float> / 2.0f
constexpr
constexpr unique_id INVALID_ID {0}
constexpr
constexpr uint32 MAX_COLLISIONS_LAYERS {100}
constexpr
const quaternion QUATERNION_IDENTITY {0.0f, 0.0f, 0.0f, 1.0f}

Unit quaternion with no rotation

constexpr int SHADER_MATERIAL_MAX_PARAMETERS {4}
constexpr

Maximum number of parameters of a ShaderMaterial

const float3x3 TRANSFORM_BASIS {1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f}

The Basis of 3D transform. It is composed of 3 axes (Basis.x, Basis.y, and Basis.z). Together, these represent the transform's rotation, scale, and shear.

constexpr float VECTOR_SCREEN_SIZE {1000.0f}
constexpr