3#include "pixelbullet/filesystem/asset_path.h"
4#include "pixelbullet/filesystem/asset_path_serialization.h"
5#include "pixelbullet/serialization/node.h"
6#include "pixelbullet/serialization/node_reader.h"
17 float background_intensity = 1.0f;
18 float ambient_intensity = 0.15f;
19 float specular_intensity = 1.0f;
20 float exposure = 1.0f;
24 return enabled == other.enabled && environment_asset.logical_path() == other.environment_asset.logical_path() &&
25 background_intensity == other.background_intensity && ambient_intensity == other.ambient_intensity &&
26 specular_intensity == other.specular_intensity && exposure == other.exposure;
31 return !(*
this == other);
35inline constexpr std::array<std::string_view, 6> k_scene_environment_cubemap_faces = {
36 "Right",
"Left",
"Top",
"Bottom",
"Front",
"Back",
39inline Node& operator<<(Node& node,
const SceneEnvironmentSettings& settings)
41 node[
"enabled"] << settings.enabled;
42 node[
"environmentAsset"] << settings.environment_asset;
43 node[
"backgroundIntensity"] << settings.background_intensity;
44 node[
"ambientIntensity"] << settings.ambient_intensity;
45 node[
"specularIntensity"] << settings.specular_intensity;
46 node[
"exposure"] << settings.exposure;
52 if (node.has_property(
"enabled"))
54 node[
"enabled"] >> settings.enabled;
56 if (node.has_property(
"environmentAsset"))
58 node[
"environmentAsset"] >> settings.environment_asset;
60 if (node.has_property(
"backgroundIntensity"))
62 node[
"backgroundIntensity"] >> settings.background_intensity;
64 if (node.has_property(
"ambientIntensity"))
66 node[
"ambientIntensity"] >> settings.ambient_intensity;
68 if (node.has_property(
"specularIntensity"))
70 node[
"specularIntensity"] >> settings.specular_intensity;
72 if (node.has_property(
"exposure"))
74 node[
"exposure"] >> settings.exposure;
82 ok &= serialization::TryReadOptionalProperty(node,
"enabled", settings.enabled, reader);
83 ok &= serialization::TryReadOptionalProperty(node,
"environmentAsset", settings.environment_asset, reader);
84 ok &= serialization::TryReadOptionalProperty(node,
"backgroundIntensity", settings.background_intensity, reader);
85 ok &= serialization::TryReadOptionalProperty(node,
"ambientIntensity", settings.ambient_intensity, reader);
86 ok &= serialization::TryReadOptionalProperty(node,
"specularIntensity", settings.specular_intensity, reader);
87 ok &= serialization::TryReadOptionalProperty(node,
"exposure", settings.exposure, reader);
Definition asset_path.h:28
Represents a hierarchical node capable of storing various data types and supporting YAML serializatio...
Definition node.h:49
Definition node_reader.h:48
Definition scene_environment_settings.h:14