Avara3D 0.2.0
C++ API reference
Atmosphere.h
1//
2// Atmosphere.h
3// avara3d
4//
5// Created by Morgan Davis on 8/11/26.
6// Copyright © 2026 Morgan K Davis. All rights reserved.
7//
8
9#ifndef AVARA3D_VISUAL_ATMOSPHERE_H
10#define AVARA3D_VISUAL_ATMOSPHERE_H
11
12#include <optional>
13
14#include "a3d/Color.h"
15
16namespace a3d {
17
19 struct Atmosphere {
20
21 // [Public Types]
22
24 struct Haze {
25
26 // [Public Member Variables]
27
29 float density {0.02f};
30 };
31
33 struct LimbGlow {
34
35 // [Public Member Variables]
36
38 float intensity {1.0f};
39 };
40
41 // [Public Member Variables]
42
43 float scaleHeight {5.0f};
44 std::optional<Haze> haze {};
45 std::optional<LimbGlow> limbGlow {};
46 };
47
48}
49
50#endif // AVARA3D_VISUAL_ATMOSPHERE_H
Represents a normalized RGBA color.
Definition: Color.h:27
Configures atmospheric haze.
Definition: Atmosphere.h:24
float density
Haze density; must be non-negative.
Definition: Atmosphere.h:29
Color color
Haze color.
Definition: Atmosphere.h:28
Configures glow along the limb of a spherical reference Surface.
Definition: Atmosphere.h:33
float intensity
Limb-glow intensity; must be non-negative.
Definition: Atmosphere.h:38
Color color
Limb-glow color.
Definition: Atmosphere.h:37
Configures atmospheric effects around a VisualWorld reference Surface.
Definition: Atmosphere.h:19
std::optional< LimbGlow > limbGlow
Optional limb glow; requires a spherical reference Surface.
Definition: Atmosphere.h:45
std::optional< Haze > haze
Optional atmospheric haze.
Definition: Atmosphere.h:44
float scaleHeight
Scale controlling atmospheric density falloff; must be greater than zero.
Definition: Atmosphere.h:43