Avara3D 0.2.0
C++ API reference
Surface.h
1//
2// Surface.h
3// avara3d
4//
5// Created by Morgan Davis on 8/16/26.
6// Copyright © 2026 Morgan K Davis. All rights reserved.
7//
8
9#ifndef AVARA3D_VISUAL_SURFACE_H
10#define AVARA3D_VISUAL_SURFACE_H
11
12#include <variant>
13
14#include "a3d/Math.h"
15
16namespace a3d {
17
18 // [Public Types]
19
21 struct PlaneSurface {
22
23 // [Public Member Variables]
24
25 float height {0.0f};
26 };
27
30
31 // [Public Member Variables]
32
33 math::vec3 center {0.0f, 0.0f, 0.0f};
34 float radius {1.0f};
35 };
36
38 using Surface = std::variant<PlaneSurface, SphereSurface>;
39
40}
41
42#endif // AVARA3D_VISUAL_SURFACE_H
Infinite planar reference surface used by ground and atmospheric effects.
Definition: Surface.h:21
float height
Height of the reference plane in scene units.
Definition: Surface.h:25
Spherical reference surface used by ground and atmospheric effects.
Definition: Surface.h:29
math::vec3 center
Center of the reference sphere in scene coordinates.
Definition: Surface.h:33
float radius
Radius of the reference sphere in scene units; must be greater than zero.
Definition: Surface.h:34