Kemena3D
Loading...
Searching...
No Matches
kemena.h
Go to the documentation of this file.
1#ifndef KEMENA_H
2#define KEMENA_H
3
4#include "kexport.h"
5
6#include "kdatatype.h"
7#include "kwindow.h"
8#include "krenderer.h"
9#include "kassetmanager.h"
10#include "kworld.h"
11#include "kprefab.h"
12#include "kmeshgenerator.h"
13#include "kscriptmanager.h"
14#include "kguimanager.h"
15#include "kaudiomanager.h"
16#include "kphysicsmanager.h"
17#include "knavmanager.h"
18
27namespace kemena
28{
29 const kString engineName = "Kemena3D";
30 const uint32_t engineVersion = 1;
31
46 KEMENA3D_API kWindow *createWindow(int width, int height, kString title, bool maximized = false, kWindowType type = kWindowType::WINDOW_DEFAULT, void *nativeHandle = nullptr);
47
58
64
71
77
84
90
96
103 KEMENA3D_API kNavManager *createNavManager(kNavMesh *mesh, int maxAgents = 128);
104}
105
106#endif // KEMENA_H
Central asset-loading and cache manager.
Definition kassetmanager.h:55
Owns the miniaudio engine and acts as a factory for kAudio instances.
Definition kaudiomanager.h:37
Wraps Dear ImGui initialisation, event forwarding, and widget calls.
Definition kguimanager.h:45
Owns a dtCrowd and a dtTileCache update loop for a single kNavMesh.
Definition knavmanager.h:44
A baked navigation mesh used for pathfinding and obstacle simulation.
Definition knavmesh.h:140
Owns the Jolt PhysicsSystem and manages the lifecycle of all physics bodies.
Definition kphysicsmanager.h:57
Orchestrates the full render pipeline for a scene.
Definition krenderer.h:67
Manages the AngelScript engine, a registry of script assets, and the live per-object script module in...
Definition kscriptmanager.h:176
Creates and manages an SDL3 application window.
Definition kwindow.h:32
Root container for the entire simulation environment.
Definition kworld.h:54
Loads and manages textures, meshes, shaders, materials, and animations.
Audio subsystem manager — initialises the audio engine and owns audio clips.
Core type aliases, enumerations, structs, and utility functions used throughout the engine.
Symbol visibility / linkage macro for the Kemena3D library.
#define KEMENA3D_API
Definition kexport.h:35
Thin wrapper around Dear ImGui for building in-engine UI.
High-level navigation manager: crowd agents, obstacles, tile cache updates.
Physics subsystem manager — owns the simulation world and acts as a factory for kPhysicsObject.
Serialized object subtree saved as a .prefab JSON asset.
High-level renderer that orchestrates the render pipeline.
AngelScript engine wrapper: script-asset registry, text/bytecode compilation, and per-object script i...
Application window management backed by SDL3.
Top-level container holding scenes and cameras.
Top-level Kemena3D engine namespace.
Definition kanimation.h:23
const uint32_t engineVersion
Engine version number, reported to the renderer/backend.
Definition kemena.h:30
std::string kString
Standard string alias.
Definition kdatatype.h:42
KEMENA3D_API kNavManager * createNavManager(kNavMesh *mesh, int maxAgents=128)
Create and initialise a navigation manager for a navigation mesh.
KEMENA3D_API kPhysicsManager * createPhysicsManager()
Create and initialise the physics manager.
KEMENA3D_API kAssetManager * createAssetManager()
Create a new asset manager.
const kString engineName
Human-readable engine name, reported to the renderer/backend.
Definition kemena.h:29
kWindowType
Window creation mode.
Definition kdatatype.h:76
@ WINDOW_DEFAULT
Normal windowed mode.
Definition kdatatype.h:77
KEMENA3D_API kWorld * createWorld(kAssetManager *assetManager)
Create a new world (scene) bound to an asset manager.
KEMENA3D_API kScriptManager * createScriptManager()
Create a new script manager.
KEMENA3D_API kGuiManager * createGuiManager(kRenderer *renderer)
Create and initialise a GUI manager for a given renderer.
KEMENA3D_API kWindow * createWindow(int width, int height, kString title, bool maximized=false, kWindowType type=kWindowType::WINDOW_DEFAULT, void *nativeHandle=nullptr)
Create and initialise a new application window.
KEMENA3D_API kAudioManager * createAudioManager()
Create and initialise the audio manager.
KEMENA3D_API kRenderer * createRenderer(kWindow *window)
Create and initialise the renderer for a given window.