Program Listing for File SceneConfig.ixx

Program Listing for File SceneConfig.ixx#

↰ Return to documentation for file (Src/GraphicsEngineVulkan/scene/SceneConfig.ixx)

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