Skip to content

Class Relationship Diagram

This page is auto-generated from src/**/*.h* by scripts/generate_class_diagram.py.

classDiagram
  direction LR
  class AssetHandle
  class AssetManager
  class AssetState
  class AudioBus
  class AudioEngine
  class AudioListenerComponent
  class AudioSourceComponent
  class AudioSystem
  class BackgroundCompileTaskResult
  class BroadPhaseLayerInterfaceImpl
  class CameraComponent
  class ClrHost
  class ColliderComponent
  class ColliderShape
  class CollisionBeginEvent
  class CollisionEndEvent
  class ComponentArray
  class ComponentManager
  class ComponentRegistration
  class ComponentRegistry
  class ComponentTypeId
  class ContactEvent
  class DebugMessage
  class DebugMessageLevel
  class DetachedPlayWindow
  class DetachedScriptEditorWindow
  class Editor
  class EditorEntityPreset
  class EditorPlayAction
  class EditorPlugin
  class EditorPluginContext
  class EditorPluginPhase
  class EditorState
  class Entity
  class EntityCreatedEvent
  class EntityDestroyedEvent
  class EntityFactory
  class EntityManager
  class Entry
  class EventBus
  class ExportBuildState
  class ExportPlatform
  class FrameMetrics
  class Frustum
  class GUI
  class GameRuntime
  class ImGuiSession
  class ImGui_GUI
  class ImportedMaterial
  class ImportedMesh
  class ImportedModel
  class ImportedTriangle
  class ImportedVertex
  class Light
  class LightComponent
  class LightData
  class LightType
  class LoadRequest
  class MainCameraSelection
  class MainCameraSelectionStatus
  class ManagedSource
  class Mat4
  class Material
  class MenuBarItem
  class MeshRendererComponent
  class ModelComponent
  class ModelImporter
  class MovementSystem
  class NameComponent
  class ObjectLayerPairFilterImpl
  class ObjectVsBroadPhaseLayerFilterImpl
  class ParsedScriptClass
  class PhysicsSystem
  class PhysicsWorld
  class Plane
  class PositionComponent2D
  class PositionComponent3D
  class PrimitiveComponent
  class PrimitiveType
  class ProcessResult
  class ProjectedTriangle
  class Quat
  class RenderCamera
  class RenderComponent
  class RenderItem
  class RenderLight
  class RenderList
  class RenderSystem
  class Renderer
  class RigidBodyComponent
  class RigidBodyType
  class RotationComponent3D
  class SDLRendererDeleter
  class SDLWindowDeleter
  class SDLWindowDeleter
  class SDLWindowDeleter
  class ScaleComponent3D
  class SceneGizmoAxis
  class SceneGizmoMode
  class SceneRenderer
  class ScopedDirectoryCleanup
  class ScopedFrameMetric
  class ScriptAttachment
  class ScriptCompileStatus
  class ScriptComponent
  class ScriptDocumentSnapshot
  class ScriptEditorTab
  class ScriptRuntime
  class SdlSession
  class SdlSession
  class SettingsCategory
  class Slot
  class Subprocess
  class System
  class SystemContext
  class SystemEntry
  class SystemManager
  class SystemPhase
  class TextComponent
  class TransformHierarchyComponent
  class Vec2
  class Vec3
  class Vec3
  class Vec4
  class VectorTextFrame3D
  class VectorTextGeometry3D
  class VectorTextLayout
  class VectorTextPoint2D
  class VectorTextPoint3D
  class VectorTextSegment2D
  class VectorTextSegment3D
  class VectorTextStyle
  class VulkanRenderer
  class Vulkan_Frame
  class Vulkan_FrameSemaphores
  class Vulkan_Window
  class WebGPURenderer
  class WindowManager
  class WorkspaceCreateKind
  class WorkspaceDeleteResult
  class WorkspaceEditorSettings
  class WorkspaceEntry
  class WorkspaceManager
  class WorkspaceTreeNode
  class WorldComponent
  GUI <|-- ImGui_GUI
  Renderer <|-- VulkanRenderer
  Renderer <|-- WebGPURenderer
  System <|-- AudioSystem
  System <|-- MovementSystem
  System <|-- PhysicsSystem
  System <|-- RenderSystem
  AssetHandle --> AssetState : uses
  AssetHandle --> Slot : uses
  AssetManager --> AssetHandle : uses
  AssetManager --> ImportedModel : uses
  AssetManager --> LoadRequest : uses
  AudioEngine --> AudioBus : uses
  AudioEngine --> AudioListenerComponent : uses
  AudioEngine --> AudioSourceComponent : uses
  AudioEngine --> Entity : uses
  AudioEngine --> ManagedSource : uses
  AudioEngine --> PositionComponent3D : uses
  AudioSourceComponent --> AudioBus : uses
  AudioSystem --> AudioEngine : uses
  AudioSystem --> ComponentManager : uses
  AudioSystem --> Entity : uses
  AudioSystem --> EntityManager : uses
  ColliderComponent --> ColliderShape : uses
  CollisionBeginEvent --> Entity : uses
  CollisionEndEvent --> Entity : uses
  ComponentArray --> Entity : uses
  ComponentManager --> ComponentArray : uses
  ComponentManager --> ComponentTypeId : uses
  ComponentManager --> Entity : uses
  ComponentManager --> EntityManager : uses
  ComponentRegistry --> ComponentRegistration : uses
  ComponentRegistry --> ComponentTypeId : uses
  DebugMessage --> DebugMessageLevel : uses
  DetachedPlayWindow --> ComponentManager : uses
  DetachedPlayWindow --> Entity : uses
  DetachedPlayWindow --> EntityManager : uses
  DetachedPlayWindow --> SDLRendererDeleter : uses
  DetachedPlayWindow --> SDLWindowDeleter : uses
  DetachedScriptEditorWindow --> ComponentManager : uses
  DetachedScriptEditorWindow --> Editor : uses
  DetachedScriptEditorWindow --> EntityManager : uses
  DetachedScriptEditorWindow --> ImGuiSession : uses
  DetachedScriptEditorWindow --> Renderer : uses
  Editor --> BackgroundCompileTaskResult : uses
  Editor --> ComponentManager : uses
  Editor --> DebugMessageLevel : uses
  Editor --> EditorEntityPreset : uses
  Editor --> EditorPlugin : uses
  Editor --> EditorPluginContext : uses
  Editor --> EditorPluginPhase : uses
  Editor --> EditorState : uses
  Editor --> Entity : uses
  Editor --> EntityManager : uses
  Editor --> ExportBuildState : uses
  Editor --> ExportPlatform : uses
  Editor --> GUI : uses
  Editor --> ParsedScriptClass : uses
  Editor --> RenderList : uses
  Editor --> SceneGizmoAxis : uses
  Editor --> SceneGizmoMode : uses
  Editor --> SceneRenderer : uses
  Editor --> ScriptCompileStatus : uses
  Editor --> ScriptEditorTab : uses
  Editor --> ScriptRuntime : uses
  Editor --> SettingsCategory : uses
  Editor --> WorkspaceCreateKind : uses
  Editor --> WorkspaceEditorSettings : uses
  Editor --> WorkspaceTreeNode : uses
  EditorEntityPreset --> Plane : uses
  EditorPlugin --> Editor : uses
  EditorPlugin --> EditorPluginContext : uses
  EditorPlugin --> EditorPluginPhase : uses
  EditorPluginContext --> ComponentManager : uses
  EditorPluginContext --> Editor : uses
  EditorPluginContext --> EntityManager : uses
  EditorPluginContext --> ScriptRuntime : uses
  EditorState --> DebugMessage : uses
  EditorState --> EditorEntityPreset : uses
  EditorState --> EditorPlayAction : uses
  EditorState --> Entity : uses
  EntityCreatedEvent --> Entity : uses
  EntityDestroyedEvent --> Entity : uses
  EntityFactory --> ComponentManager : uses
  EntityFactory --> Entity : uses
  EntityFactory --> EntityManager : uses
  EntityManager --> Entity : uses
  FrameMetrics --> Entry : uses
  Frustum --> Mat4 : uses
  Frustum --> Plane : uses
  Frustum --> Vec3 : uses
  GUI --> MenuBarItem : uses
  GameRuntime --> AudioEngine : uses
  GameRuntime --> AudioSystem : uses
  GameRuntime --> ComponentManager : uses
  GameRuntime --> Entity : uses
  GameRuntime --> EntityManager : uses
  GameRuntime --> EventBus : uses
  GameRuntime --> PhysicsSystem : uses
  GameRuntime --> PhysicsWorld : uses
  GameRuntime --> RenderSystem : uses
  GameRuntime --> Renderer : uses
  GameRuntime --> SDLWindowDeleter : uses
  GameRuntime --> ScriptRuntime : uses
  GameRuntime --> SdlSession : uses
  GameRuntime --> SystemManager : uses
  ImGuiSession --> Renderer : uses
  ImportedMesh --> ImportedTriangle : uses
  ImportedMesh --> ImportedVertex : uses
  ImportedModel --> ImportedMaterial : uses
  ImportedModel --> ImportedMesh : uses
  LightComponent --> LightType : uses
  LightData --> Light : uses
  LoadRequest --> AssetHandle : uses
  LoadRequest --> ImportedModel : uses
  MainCameraSelection --> Entity : uses
  MainCameraSelection --> MainCameraSelectionStatus : uses
  ManagedSource --> AudioBus : uses
  Mat4 --> Vec3 : uses
  Mat4 --> Vec4 : uses
  MeshRendererComponent --> Material : uses
  ModelComponent --> AssetHandle : uses
  ModelComponent --> ImportedModel : uses
  ModelImporter --> ImportedModel : uses
  MovementSystem --> ComponentManager : uses
  MovementSystem --> EntityManager : uses
  PhysicsSystem --> ComponentManager : uses
  PhysicsSystem --> Entity : uses
  PhysicsSystem --> EntityManager : uses
  PhysicsSystem --> PhysicsWorld : uses
  PhysicsSystem --> SystemContext : uses
  PhysicsWorld --> ContactEvent : uses
  Plane --> Vec3 : uses
  PrimitiveComponent --> PrimitiveType : uses
  PrimitiveType --> Plane : uses
  ProjectedTriangle --> Vec2 : uses
  Quat --> Mat4 : uses
  Quat --> Vec3 : uses
  RenderCamera --> Frustum : uses
  RenderCamera --> Mat4 : uses
  RenderCamera --> Vec3 : uses
  RenderItem --> Entity : uses
  RenderItem --> ImportedModel : uses
  RenderItem --> Mat4 : uses
  RenderItem --> Material : uses
  RenderItem --> PrimitiveType : uses
  RenderItem --> Vec3 : uses
  RenderLight --> Vec3 : uses
  RenderList --> RenderCamera : uses
  RenderList --> RenderItem : uses
  RenderList --> RenderLight : uses
  RenderSystem --> ComponentManager : uses
  RenderSystem --> Entity : uses
  RenderSystem --> EntityManager : uses
  RenderSystem --> RenderList : uses
  RenderSystem --> SceneRenderer : uses
  RenderSystem --> SystemContext : uses
  RigidBodyComponent --> RigidBodyType : uses
  SceneRenderer --> ComponentManager : uses
  SceneRenderer --> Entity : uses
  SceneRenderer --> EntityManager : uses
  SceneRenderer --> ImportedModel : uses
  SceneRenderer --> RenderCamera : uses
  SceneRenderer --> RenderList : uses
  SceneRenderer --> Vec3 : uses
  ScopedFrameMetric --> FrameMetrics : uses
  ScriptComponent --> ScriptAttachment : uses
  ScriptRuntime --> ComponentManager : uses
  ScriptRuntime --> Entity : uses
  ScriptRuntime --> EntityManager : uses
  SettingsCategory --> Editor : uses
  Slot --> AssetState : uses
  Subprocess --> ProcessResult : uses
  System --> ComponentManager : uses
  System --> EntityManager : uses
  System --> SystemContext : uses
  SystemContext --> ComponentManager : uses
  SystemContext --> EntityManager : uses
  SystemContext --> EventBus : uses
  SystemEntry --> System : uses
  SystemEntry --> SystemPhase : uses
  SystemManager --> ComponentManager : uses
  SystemManager --> ComponentTypeId : uses
  SystemManager --> EntityManager : uses
  SystemManager --> System : uses
  SystemManager --> SystemContext : uses
  SystemManager --> SystemEntry : uses
  SystemManager --> SystemPhase : uses
  TransformHierarchyComponent --> Entity : uses
  Vec4 --> Vec3 : uses
  VectorTextFrame3D --> VectorTextPoint3D : uses
  VectorTextGeometry3D --> VectorTextSegment3D : uses
  VectorTextLayout --> VectorTextSegment2D : uses
  VectorTextSegment2D --> VectorTextPoint2D : uses
  VectorTextSegment3D --> VectorTextPoint3D : uses
  VulkanRenderer --> Vulkan_Frame : uses
  VulkanRenderer --> Vulkan_FrameSemaphores : uses
  VulkanRenderer --> Vulkan_Window : uses
  Vulkan_Window --> Vulkan_Frame : uses
  Vulkan_Window --> Vulkan_FrameSemaphores : uses
  WindowManager --> AudioEngine : uses
  WindowManager --> AudioSystem : uses
  WindowManager --> ComponentManager : uses
  WindowManager --> DetachedPlayWindow : uses
  WindowManager --> DetachedScriptEditorWindow : uses
  WindowManager --> Editor : uses
  WindowManager --> EntityManager : uses
  WindowManager --> EventBus : uses
  WindowManager --> ImGuiSession : uses
  WindowManager --> PhysicsSystem : uses
  WindowManager --> PhysicsWorld : uses
  WindowManager --> RenderSystem : uses
  WindowManager --> Renderer : uses
  WindowManager --> SDLWindowDeleter : uses
  WindowManager --> ScriptRuntime : uses
  WindowManager --> SdlSession : uses
  WindowManager --> SystemManager : uses
  WindowManager --> WorkspaceManager : uses
  WorkspaceManager --> WorkspaceEntry : uses

Classes

Class Kind Header
AssetHandle class src/engine/assets/asset_handle.hpp
AssetManager class src/engine/assets/asset_manager.hpp
AssetState class src/engine/assets/asset_handle.hpp
AudioBus class src/engine/audio/audio_bus.hpp
AudioEngine class src/engine/audio/audio_engine.hpp
AudioListenerComponent struct src/engine/components/audio_listener_component.hpp
AudioSourceComponent struct src/engine/components/audio_source_component.hpp
AudioSystem class src/engine/systems/audio_system.hpp
BackgroundCompileTaskResult struct src/editor/editor.hpp
BroadPhaseLayerInterfaceImpl class src/engine/physics/physics_layers.hpp
CameraComponent struct src/engine/components/camera_component.hpp
ClrHost class src/engine/runtime/clr_host.hpp
ColliderComponent struct src/engine/components/collider_component.hpp
ColliderShape class src/engine/components/collider_component.hpp
CollisionBeginEvent struct src/engine/core/events/events.hpp
CollisionEndEvent struct src/engine/core/events/events.hpp
ComponentArray class src/engine/core/ecs/component_array.hpp
ComponentManager class src/engine/core/ecs/component_manager.hpp
ComponentRegistration struct src/engine/core/ecs/component_registry.hpp
ComponentRegistry class src/engine/core/ecs/component_registry.hpp
ComponentTypeId class src/engine/core/ecs/type_id.hpp
ContactEvent struct src/engine/physics/physics_world.hpp
DebugMessage struct src/editor/types.h
DebugMessageLevel class src/editor/types.h
DetachedPlayWindow class src/editor/detached_play_window.hpp
DetachedScriptEditorWindow class src/editor/window_manager.hpp
Editor class src/editor/editor.hpp
EditorEntityPreset class src/editor/types.h
EditorPlayAction class src/editor/types.h
EditorPlugin class src/editor/plugins/editor_plugin.hpp
EditorPluginContext struct src/editor/plugins/editor_plugin.hpp
EditorPluginPhase class src/editor/plugins/editor_plugin.hpp
EditorState struct src/editor/types.h
Entity class src/engine/core/ecs/entity.hpp
EntityCreatedEvent struct src/engine/core/events/events.hpp
EntityDestroyedEvent struct src/engine/core/events/events.hpp
EntityFactory class src/engine/core/ecs/entity_factory.hpp
EntityManager class src/engine/core/ecs/entity_manager.hpp
Entry struct src/engine/profiling/frame_metrics.hpp
EventBus class src/engine/core/events/event_bus.hpp
ExportBuildState struct src/editor/editor.hpp
ExportPlatform class src/editor/editor.hpp
FrameMetrics class src/engine/profiling/frame_metrics.hpp
Frustum struct src/engine/rendering/math3d.hpp
GUI class src/engine/gui/gui.hpp
GameRuntime class src/runtime/game_runtime.hpp
ImGuiSession class src/editor/window_manager.hpp
ImGui_GUI class src/engine/gui/imgui.hpp
ImportedMaterial struct src/engine/assets/imported_model.hpp
ImportedMesh struct src/engine/assets/imported_model.hpp
ImportedModel struct src/engine/assets/imported_model.hpp
ImportedTriangle struct src/engine/assets/imported_model.hpp
ImportedVertex struct src/engine/assets/imported_model.hpp
Light struct src/engine/rendering/model_preview.hpp
LightComponent struct src/engine/components/light_component.hpp
LightData struct src/engine/rendering/model_preview.hpp
LightType class src/engine/components/light_component.hpp
LoadRequest struct src/engine/assets/asset_manager.hpp
MainCameraSelection struct src/engine/runtime/main_camera_selection.hpp
MainCameraSelectionStatus class src/engine/runtime/main_camera_selection.hpp
ManagedSource struct src/engine/audio/audio_engine.hpp
Mat4 struct src/engine/rendering/math3d.hpp
Material struct src/engine/rendering/render_types.hpp
MenuBarItem struct src/engine/gui/gui.hpp
MeshRendererComponent struct src/engine/components/mesh_renderer_component.hpp
ModelComponent struct src/engine/components/model_component.hpp
ModelImporter class src/engine/assets/model_importer.hpp
MovementSystem class src/engine/systems/movement_system.hpp
NameComponent struct src/engine/components/name_component.hpp
ObjectLayerPairFilterImpl class src/engine/physics/physics_layers.hpp
ObjectVsBroadPhaseLayerFilterImpl class src/engine/physics/physics_layers.hpp
ParsedScriptClass struct src/editor/script_analysis.hpp
PhysicsSystem class src/engine/systems/physics_system.hpp
PhysicsWorld class src/engine/physics/physics_world.hpp
Plane struct src/engine/rendering/math3d.hpp
PositionComponent2D class src/engine/components/position_component_2d.hpp
PositionComponent3D class src/engine/components/position_component_3d.hpp
PrimitiveComponent struct src/engine/components/primitive_component.hpp
PrimitiveType class src/engine/components/primitive_component.hpp
ProcessResult struct src/engine/runtime/subprocess.hpp
ProjectedTriangle struct src/engine/rendering/model_preview.hpp
Quat struct src/engine/rendering/math3d.hpp
RenderCamera struct src/engine/rendering/render_types.hpp
RenderComponent struct src/engine/components/render_component.hpp
RenderItem struct src/engine/rendering/render_types.hpp
RenderLight struct src/engine/rendering/render_types.hpp
RenderList struct src/engine/rendering/render_types.hpp
RenderSystem class src/engine/systems/render_system.hpp
Renderer class src/engine/rendering/renderer.hpp
RigidBodyComponent struct src/engine/components/rigid_body_component.hpp
RigidBodyType class src/engine/components/rigid_body_component.hpp
RotationComponent3D struct src/engine/components/rotation_component_3d.hpp
SDLRendererDeleter struct src/editor/detached_play_window.hpp
SDLWindowDeleter struct src/editor/detached_play_window.hpp
SDLWindowDeleter struct src/editor/window_manager.hpp
SDLWindowDeleter struct src/runtime/game_runtime.hpp
ScaleComponent3D struct src/engine/components/scale_component_3d.hpp
SceneGizmoAxis class src/editor/types.h
SceneGizmoMode class src/editor/types.h
SceneRenderer class src/engine/rendering/scene_renderer.hpp
ScopedDirectoryCleanup struct src/tests/test_support.hpp
ScopedFrameMetric class src/engine/profiling/frame_metrics.hpp
ScriptAttachment struct src/engine/components/script_component.hpp
ScriptCompileStatus class src/editor/editor.hpp
ScriptComponent struct src/engine/components/script_component.hpp
ScriptDocumentSnapshot struct src/editor/script_document.hpp
ScriptEditorTab struct src/editor/editor.hpp
ScriptRuntime class src/engine/runtime/script_runtime.hpp
SdlSession class src/editor/window_manager.hpp
SdlSession class src/runtime/game_runtime.hpp
SettingsCategory class src/editor/editor.hpp
Slot struct src/engine/assets/asset_handle.hpp
Subprocess class src/engine/runtime/subprocess.hpp
System class src/engine/core/ecs/system.hpp
SystemContext struct src/engine/core/ecs/system_context.hpp
SystemEntry struct src/engine/core/ecs/system_manager.hpp
SystemManager class src/engine/core/ecs/system_manager.hpp
SystemPhase class src/engine/core/ecs/system_manager.hpp
TextComponent struct src/engine/components/text_component.hpp
TransformHierarchyComponent class src/engine/components/transform_hierarchy_component.hpp
Vec2 struct src/engine/rendering/model_preview.hpp
Vec3 struct src/engine/rendering/math3d.hpp
Vec3 struct src/engine/rendering/model_preview.hpp
Vec4 struct src/engine/rendering/math3d.hpp
VectorTextFrame3D struct src/engine/rendering/vector_text.hpp
VectorTextGeometry3D struct src/engine/rendering/vector_text.hpp
VectorTextLayout struct src/engine/rendering/vector_text.hpp
VectorTextPoint2D struct src/engine/rendering/vector_text.hpp
VectorTextPoint3D struct src/engine/rendering/vector_text.hpp
VectorTextSegment2D struct src/engine/rendering/vector_text.hpp
VectorTextSegment3D struct src/engine/rendering/vector_text.hpp
VectorTextStyle struct src/engine/rendering/vector_text.hpp
VulkanRenderer class src/engine/rendering/vulkan.hpp
Vulkan_Frame struct src/engine/rendering/vulkan.hpp
Vulkan_FrameSemaphores struct src/engine/rendering/vulkan.hpp
Vulkan_Window struct src/engine/rendering/vulkan.hpp
WebGPURenderer class src/engine/rendering/webgpu_renderer.hpp
WindowManager class src/editor/window_manager.hpp
WorkspaceCreateKind class src/editor/editor.hpp
WorkspaceDeleteResult struct src/editor/workspace_file_operations.hpp
WorkspaceEditorSettings struct src/editor/editor_settings.hpp
WorkspaceEntry struct src/editor/workspace_manager.hpp
WorkspaceManager class src/editor/workspace_manager.hpp
WorkspaceTreeNode struct src/editor/editor.hpp
WorldComponent struct src/engine/components/world_component.hpp