Wildmeshing Toolkit
Loading...
Searching...
No Matches
GridOptions.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <string_view>
3
#include <variant>
4
5
#include "
Grid2Options.hpp
"
6
#include "
Grid3Options.hpp
"
7
8
9
namespace
wmtk::components::procedural
{
10
class
GridOptions
11
{
12
constexpr
static
auto
name
() -> std::string_view {
return
"grid"
; }
13
14
public
:
15
std::variant<Grid2Options, Grid3Options>
opts
;
16
std::optional<std::string>
get_coordinate_name
()
const
17
{
18
return
std::visit([&](
const
auto
& o) {
return
o.get_coordinate_name(); },
opts
);
19
}
20
friend
void
to_json
(nlohmann::json& nlohmann_json_j,
const
GridOptions
& nlohmann_json_t)
21
{
22
std::visit([&](
const
auto
& o) {
to_json
(nlohmann_json_j, o); }, nlohmann_json_t.
opts
);
23
}
24
friend
void
from_json
(
const
nlohmann::json& nlohmann_json_j,
GridOptions
& nlohmann_json_t)
25
{
26
spdlog::info(
"{}"
, nlohmann_json_j.dump());
27
const
auto
& dimension = nlohmann_json_j[
"dimensions"
];
28
assert(dimension.is_array());
29
30
size_t
dsize = dimension.size();
31
if
(dsize == 2) {
32
nlohmann_json_t.
opts
= nlohmann_json_j.get<
Grid2Options
>();
33
}
else
{
34
nlohmann_json_t.
opts
= nlohmann_json_j.get<
Grid3Options
>();
35
}
36
}
37
};
38
}
// namespace wmtk::components::procedural
Grid2Options.hpp
Grid3Options.hpp
wmtk::components::procedural::Grid2Options
Definition
Grid2Options.hpp:14
wmtk::components::procedural::Grid3Options
Definition
Grid3Options.hpp:12
wmtk::components::procedural::GridOptions
Definition
GridOptions.hpp:11
wmtk::components::procedural::GridOptions::name
static constexpr auto name() -> std::string_view
Definition
GridOptions.hpp:12
wmtk::components::procedural::GridOptions::to_json
friend void to_json(nlohmann::json &nlohmann_json_j, const GridOptions &nlohmann_json_t)
Definition
GridOptions.hpp:20
wmtk::components::procedural::GridOptions::opts
std::variant< Grid2Options, Grid3Options > opts
Definition
GridOptions.hpp:15
wmtk::components::procedural::GridOptions::get_coordinate_name
std::optional< std::string > get_coordinate_name() const
Definition
GridOptions.hpp:16
wmtk::components::procedural::GridOptions::from_json
friend void from_json(const nlohmann::json &nlohmann_json_j, GridOptions &nlohmann_json_t)
Definition
GridOptions.hpp:24
wmtk::components::procedural
Definition
DiskOptions.cpp:8
components
procedural
wmtk
components
procedural
GridOptions.hpp
Generated by
1.9.8