30 #define M_2X_PI (2 * M_PI)
38 double fov_h{M_2X_PI};
40 double fov_v{M_2X_PI};
42 double clip_near{0.0};
43 double clip_far{480.0};
47 {
"fov_h", fov_h}, {
"offset_h", offset_h}, {
"fov_v", fov_v},
48 {
"offset_v", offset_v}, {
"clip_near", clip_near}, {
"clip_far", clip_far},
53 assert(clip_near < clip_far);
55 if (clip_near >= clip_far) {
56 c.
throw_error(
"expect frustum near < far clipping plane, got near={} >= far={}", clip_near,
64 using namespace fable::schema;
66 {
"fov_h", make_schema(&fov_h,
"horizontal field of view [rad]").bounds(0, M_2X_PI)},
67 {
"offset_h", make_schema(&offset_h,
"horizontal field-of-view offset [rad]").bounds(-M_2X_PI, M_2X_PI)},
68 {
"fov_v", make_schema(&fov_v,
"vertical field of view [rad]").bounds(0, M_2X_PI)},
69 {
"offset_v", make_schema(&offset_v,
"vertical field-of-view offset [rad]").bounds(-M_2X_PI, M_2X_PI)},
70 {
"clip_near", make_schema(&clip_near,
"near clipping plane [m]").minimum(0)},
71 {
"clip_far", make_schema(&clip_far,
"far clipping plane [m]").minimum(0)},
void throw_error(std::string_view format, Args &&... args) const
Definition: conf.hpp:618
Definition: confable.hpp:98
virtual void from_conf(const Conf &c)
Definition: confable.cpp:70
Definition: schema.hpp:173
Definition: struct.hpp:70
nlohmann::json Json
Definition: fable_fwd.hpp:35
Definition: frustum.hpp:37
void from_conf(const fable::Conf &c) override
Definition: frustum.hpp:52
void to_json(fable::Json &j) const override
Definition: frustum.hpp:45
fable::Schema schema_impl() override
Definition: frustum.hpp:62