12namespace osc {
class BVH; }
13namespace osc {
class MeshBasicMaterial; }
14namespace osc {
class ResourceLoader; }
15namespace osc {
class Shader; }
85 requires std::is_default_constructible_v<
T>
and std::is_destructible_v<
T>
88 if (
const void* ptr = try_get(
typeid(
T))) {
89 return *
static_cast<const T*
>(ptr);
92 auto constructed = std::make_shared<T>();
93 const T& rv = *constructed;
94 insert(
typeid(
T), std::move(constructed));
102 const void* try_get(
const std::type_info&)
const;
103 void insert(
const std::type_info&, std::shared_ptr<void>);
106 std::unique_ptr<Impl> impl_;
Definition mesh_basic_material.h:18
Definition resource_loader.h:24
Definition resource_path.h:12
Definition scene_cache.h:25
const MeshBasicMaterial & basic_material()
Mesh cube_wireframe_mesh()
SceneCache(const SceneCache &)=delete
const BVH & get_bvh(const Mesh &)
Mesh get_mesh(const std::string &key, const std::function< Mesh()> &getter)
SceneCache(SceneCache &&) noexcept
const Shader & get_shader(const ResourcePath &vertex_shader_path, const ResourcePath &fragment_shader_path)
and std::is_destructible_v< T > const T & get()
Definition scene_cache.h:86
Mesh uncapped_cylinder_mesh()
Mesh torus_mesh(float tube_center_radius, float tube_radius)
const MeshBasicMaterial & wireframe_material()
SceneCache(const ResourceLoader &)
Mesh sphere_octant_mesh()
Definition custom_decoration_generator.h:5
and
Definition algorithms.h:158