File indexing completed on 2025-01-18 09:28:08
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include <limits>
0012 #include <map>
0013 #include <optional>
0014 #include <string>
0015 #include <utility>
0016 #include <vector>
0017
0018 #include "actsvg/core/style.hpp"
0019 #include "actsvg/proto/grid.hpp"
0020 #include "actsvg/proto/surface.hpp"
0021 #include "actsvg/styles/defaults.hpp"
0022
0023 namespace actsvg {
0024
0025 namespace proto {
0026
0027
0028
0029
0030
0031
0032
0033 template <typename point3_container>
0034 struct portal {
0035
0036
0037 using container_type = point3_container;
0038
0039
0040 struct link {
0041
0042
0043 using point3_type = typename container_type::value_type;
0044
0045
0046 point3_type _start;
0047
0048 point3_type _end;
0049
0050
0051 style::marker _start_marker = style::marker({});
0052 style::marker _end_marker = style::marker({"<<"});
0053 style::stroke _stroke;
0054
0055
0056 unsigned int _link_index = 0u;
0057
0058
0059 std::optional<std::array<scalar, 2>> _span = std::nullopt;
0060
0061 std::string _binning = "";
0062
0063 std::map<std::string, std::vector<std::string>> _aux_info = {};
0064 };
0065
0066
0067 std::string _name = "unnamed";
0068
0069
0070 std::map<std::string, std::vector<std::string>> _aux_info = {};
0071
0072
0073 surface<point3_container> _surface;
0074
0075
0076 std::vector<link> _volume_links;
0077 };
0078
0079 }
0080
0081 }