Aller au contenu

Project structure

  • apps: Integration examples.
    • gallery: The demos gallery.
  • changelogs: Full & partial changelogs, and related tooling.
  • ci: Gitlab CI setup, and related tooling.
  • doc: Developer documentation.
  • hrz: The Horizon engine, bindings, and closely related tooling.
    • branding: Horizon branding assets, such as icons.
    • common: Utilities used by multiple modules. Can have dependencies on any other library.
    • core: The Horizon engine itself.
      • jobs: Asynchronous tasks.
      • js: JS interaction library.
      • shaders: All GLSL shaders used by the viewer.
    • cpp_api: C++ implementation of the API.
    • cpp_protocol: C++ implementation of the protocol.
    • doc: User documentation.
    • fnd: Utilities used my multiple modules. Only non-usercase-specific dependencies are allowed.
    • generator: Common code generation utilities.
    • http_cache: Implementation of an HTTP cache.
    • mapbox: Mapbox to Horizon scene conversion library.
    • monitoring: Intrusive performance monitoring library.
    • protocol: Protocol definition & migration library.
    • scene_dump: C++ scene dump manipulation utilities.
    • ts_api: TypeScript implementation of the API.
    • ts_core: TypeScript interface to the Core viewer.
    • ts_monitoring_protocol: TypeScript monitoring protocol implementation.
    • ts_protocol: TypeScript protocol implementation.
    • ts_scene_dump: TypeScript scene dump manipulation library.
    • xml_desc_generator: Protoc plugin to generate an XML description of the protocol.
  • libs: Non-Horizon, developed here, libraries.
    • argparser: Very simple CLI argument parser.
    • lm: Vector, matrix & quaternion math library.
    • mycelium: OpenGL & WebGL rendering backend, renderer, and render graph.
    • proj_lite: Geographic reprojection library, with an EPSG database, proj.4-compatible.
    • ws: WebSockets library.
    • wsi: Windowing library for Windows & Linux.
  • third_party: Third-party libraries & build files.
  • tools: Development or build tooling.
    • bazel: Horizon-specific Bazel build infrastructure.
    • build_info: Tools to provide or set build information (date, version, …).
    • ide_integration: Tools to help develop Horizon in IDEs.
    • licenses: Tools to generate a list of third-party licenses.
    • monitoring_client: Client application that connects to Horizon for performance monitoring.
    • scene_dump: Tools to manipulate scene dumps.
    • scene_model: Tools to manage scene model versions and their migrations.
    • visual_testing: Tool to run and manage visual tests.