Here are the data structures with brief descriptions:
[detail level 123]
| Nsolarsim | |
| CCameraComponent | Defines camera properties for rendering and view projection |
| CGridComponent | Represents a grid/mesh for rendering with specific assets |
| CInputComponent | Handles user input processing for entity control |
| CLightComponent | Defines light source properties for scene illumination |
| CMeshComponent | Associates an entity with renderable geometry and appearance |
| CRigidBodyComponent | Provides physics properties for dynamic entity simulation |
| CTransformComponent | Defines spatial properties and provides model matrix calculation |
| CEngine | Main engine class managing core systems and game loop |
| CRenderer | Handles all rendering operations and graphics state |
| CCameraUBO | |
| CLightData | |
| CLightsUBO | |
| CRBData | |
| CRBUBO | |
| CWindow | Manages window creation, events, and GLFW context |
| CMaterial | Defines surface appearance properties for rendering |
| CMesh | Represents 3D geometry with OpenGL buffers |
| CShader | Manages OpenGL shader program compilation and uniform setting |
| CAssetManager | Manages loading and caching of game assets (meshes, materials, shaders) |
| CSceneManager | Manages scene lifecycle and transitions |
| CRegistry | Manages entities and their components in the ECS |
| CIComponentStorage | Base interface for type-erased component storage |
| CComponentStorage | Typed component storage for a specific component type |
| CScene | Container for entities, components, and simulation state |
| CInputSystem | Handles user input processing and mouse/keyboard state management |
| CPhysicsSystem | Handles physics simulation including gravity and N-body dynamics |