9#ifndef AVARA3D_UTIL_FILESYSTEM_H
10#define AVARA3D_UTIL_FILESYSTEM_H
17#include "a3d/mesh/Mesh.h"
18#include "a3d/scene/Scene.h"
28namespace a3d::util::fs {
33 std::optional<std::filesystem::path> ExecutablePath();
36 std::optional<std::filesystem::path> ExecutableDirectory();
39 std::optional<std::string> ExecutableName();
42 std::optional<std::filesystem::path> CurrentWorkingDirectory();
52 std::unique_ptr<Image> ImageAt(
const std::filesystem::path& resourcePath,
53 bool flipVertical =
true,
54 bool flipHorizontal =
false);
66 std::unique_ptr<CubeImage> CubeImageAt(
const std::filesystem::path& baseFilename);
76 std::unique_ptr<Scene> SceneAt(
const std::filesystem::path& resourcePath,
87 std::shared_ptr<Mesh> MeshAt(
const std::filesystem::path& resourcePath,
97 std::optional<std::string> TextAt(
const std::filesystem::path& resourcePath);
107 std::unique_ptr<Font> FontAt(
const std::filesystem::path& resourcePath);
117 std::optional<std::filesystem::path> AuxiliaryFileAt(
const std::filesystem::path& resourcePath);
ImportOptions
Selects optional resources imported with Mesh::FromFile().
@ ImportMaterials
Import materials referenced by the mesh.
ImportOptions
Selects which resource categories are imported by FromFile().
@ ImportAll
Import all supported resource categories.