
.. _program_listing_file_Src_GraphicsEngineVulkan_scene_SceneConfig.ixx:

Program Listing for File SceneConfig.ixx
========================================

|exhale_lsh| :ref:`Return to documentation for file <file_Src_GraphicsEngineVulkan_scene_SceneConfig.ixx>` (``Src/GraphicsEngineVulkan/scene/SceneConfig.ixx``)

.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS

.. code-block:: cpp

   module;
   
   #include <filesystem>
   #include <glm/glm.hpp>
   #include <span>
   #include <string>
   #include <string_view>
   #include <vector>
   
   export module kataglyphis.vulkan.scene_config;
   
   export namespace sceneConfig {
   std::string getModelFile();
   glm::mat4 getModelMatrix();
   std::span<const std::string> getAvailableModelPaths();
   std::span<const std::string> getAvailableModelDisplayNames();
   std::string resolveModelPath(const std::string &relativeModelPath);
   std::string_view defaultModelRelativePath();
   int defaultSelectedModelIndex(std::span<const std::string> availablePaths, std::string_view preferredRelativePath);
   
   struct ModelScanResult
   {
       std::vector<std::string> paths;
       std::vector<std::string> displayNames;
       bool complete;
   };
   
   ModelScanResult scanModelsUnder(const std::filesystem::path &resourcesRoot);
   }// namespace sceneConfig
