Skip to content
This repository was archived by the owner on Jul 29, 2026. It is now read-only.
This repository was archived by the owner on Jul 29, 2026. It is now read-only.

refactor: move helios::core::units to engine namespace #254

Description

@ThorstenSuckow

Summary

The C++ namespace helios::core::units should be moved to helios::engine::core::units to be consistent with the engine module hierarchy. The module name (helios.core.units.Unit) is already correct and does not need to change.

Motivation

All engine-level types live under helios::engine::*. The units namespace currently breaks this convention by residing directly under helios::core::units, even though the file physically lives in include/helios/engine/core/units/.

Scope of Change

Namespace rename

include/helios/engine/core/units/Unit.ixx

// Before
export namespace helios::core::units { ... }

// After
export namespace helios::engine::core::units { ... }

Files requiring namespace updates

The following files reference helios::core::units and need updating:

Engine headers (.ixx)

File Usage
include/helios/engine/runtime/world/Level.ixx helios::core::units::Unit, helios::core::units::from()
include/helios/engine/modules/spatial/transform/components/ScaleStateComponent.ixx helios::core::units::Unit (member, params, return type)
include/helios/engine/modules/spatial/transform/systems/ScaleSystem.ixx helios::core::units::from()
include/helios/engine/builder/gameObject/builders/configs/TransformConfig.ixx helios::core::units::Unit (default param)

Tests

File Usage
tests/helios/core/units.test.cpp using namespace helios::core::units

Examples

File Usage
examples/scoring_demo/Namespaces.h using namespace helios::core::units
examples/runtime_test/main.cpp using namespace helios::core::units
examples/spaceship_shooting/main.cpp Fully qualified references
examples/spaceship_control/main.cpp Fully qualified references
examples/enemy_spawn/main.cpp Fully qualified references
examples/collision_detection/main.cpp Fully qualified references

Benchmarks

File Usage
benchmarks/helios/engine/ecs/EntityComponent.benchmark.cpp import helios.core.units.Unit

Documentation

File Usage
docs/core-concepts/conventions.md Code example with import and namespace
docs/heliosapi.md Code example with import

No changes needed

  • Module name helios.core.units.Unit — already correct
  • Module partition include/helios/engine/core/units/_module.ixxexport import remains the same
  • Files that only use import helios.core.units.Unit without namespace references (e.g., Bounds.ixx, ChaseSystem.ixx, Move2DComponent.ixx, etc.) — these only need the namespace update if they reference the namespace directly

Checklist

  • Rename namespace in Unit.ixx to helios::engine::core::units
  • Update all .ixx files with qualified namespace references
  • Update all test files
  • Update all example files
  • Update all benchmark files
  • Update documentation (conventions.md, heliosapi.md)
  • Build passes (Debug + Release)
  • All tests pass
  • Update CHANGELOG.md under [Unreleased]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions