#ifndef INCLUDE_DYNAMIC_MATERIAL_DATA_IMPLEMENTATION # error Never include this file directly include 'dynamic_material_buffer.hpp' #endif inline std::optional& dynamic_material_buffer::surface_properties() { return std::get(data); } inline std::optional& dynamic_material_buffer::transparency() { return std::get(data); } inline std::optional& dynamic_material_buffer::ambient_color_texture_id() { return std::get(data); } inline std::optional& dynamic_material_buffer::diffuse_color_texture_id() { return std::get(data); } inline std::optional& dynamic_material_buffer::specular_color_texture_id() { return std::get(data); } inline std::optional& dynamic_material_buffer::shininess_texture_id() { return std::get(data); } inline std::optional& dynamic_material_buffer::alpha_texture_id() { return std::get(data); } inline std::optional& dynamic_material_buffer::bump_texture_id() { return std::get& dynamic_material_buffer::surface_properties() const { return std::get(data); } inline const std::optional& dynamic_material_buffer::transparency() const { return std::get(data); } inline const std::optional& dynamic_material_buffer::ambient_color_texture_id() const { return std::get(data); } inline const std::optional& dynamic_material_buffer::diffuse_color_texture_id() const { return std::get(data); } inline const std::optional& dynamic_material_buffer::specular_color_texture_id() const { return std::get(data); } inline const std::optional& dynamic_material_buffer::shininess_texture_id() const { return std::get(data); } inline const std::optional& dynamic_material_buffer::alpha_texture_id() const { return std::get(data); } inline const std::optional& dynamic_material_buffer::bump_texture_id() const { return std::get(data); } inline components::material::surface_properties& dynamic_material_buffer::initialized_surface_properties() { auto& surface_properties_opt = surface_properties(); if (not surface_properties_opt) { surface_properties_opt = components::material::surface_properties{}; } return *surface_properties_opt; }