10#include "IntensityMap.h"
21 using std::tuple<DurationSize>::tuple;
22 DurationSize time()
const
24 return std::get<0>(*
this);
28static constexpr size_t FURTHEST_N = 0;
29static constexpr size_t FURTHEST_NNE = 1;
30static constexpr size_t FURTHEST_NE = 2;
31static constexpr size_t FURTHEST_ENE = 3;
32static constexpr size_t FURTHEST_E = 4;
33static constexpr size_t FURTHEST_ESE = 5;
34static constexpr size_t FURTHEST_SE = 6;
35static constexpr size_t FURTHEST_SSE = 7;
36static constexpr size_t FURTHEST_S = 8;
37static constexpr size_t FURTHEST_SSW = 9;
38static constexpr size_t FURTHEST_SW = 10;
39static constexpr size_t FURTHEST_WSW = 11;
40static constexpr size_t FURTHEST_W = 12;
41static constexpr size_t FURTHEST_WNW = 13;
42static constexpr size_t FURTHEST_NW = 14;
43static constexpr size_t FURTHEST_NNW = 15;
44static constexpr size_t NUM_DIRECTIONS = 16;
46static constexpr auto MASK_NE = DIRECTION_N & DIRECTION_NE & DIRECTION_E;
47static constexpr auto MASK_SE = DIRECTION_S & DIRECTION_SE & DIRECTION_E;
48static constexpr auto MASK_SW = DIRECTION_S & DIRECTION_SW & DIRECTION_W;
49static constexpr auto MASK_NW = DIRECTION_N & DIRECTION_NW & DIRECTION_W;
51static constexpr std::array<CellIndex, NUM_DIRECTIONS> DIRECTION_MASKS{
72using array_dists = std::array<DistanceSize, NUM_DIRECTIONS>;
73using array_pts = std::array<InnerPos, NUM_DIRECTIONS>;
74using array_cellpts = std::tuple<array_dists, array_pts>;
77 :
public array_cellpts
80 using array_cellpts::array_cellpts;
81 inline const array_dists& distances()
const
83 return std::get<0>(*
this);
85 inline const array_pts& points()
const
87 return std::get<1>(*
this);
89 inline array_dists& distances()
91 return std::get<0>(*
this);
93 inline array_pts& points()
95 return std::get<1>(*
this);
104 using spreading_points = map<SpreadKey, vector<pair<Location, CellPoints>>>;
113 const XYSize y)
noexcept;
120 const XYSize y)
noexcept;
138 set<XYPos> unique()
const noexcept;
139 bool operator<(
const CellPoints& rhs)
const noexcept;
140 bool operator==(
const CellPoints& rhs)
const noexcept;
141 [[nodiscard]]
Location location()
const noexcept;
156 CellPoints(
const Idx cell_x,
const Idx cell_y)
noexcept;
160using spreading_points = CellPoints::spreading_points;
176 const XYSize y)
noexcept;
178 const BurnedData& unburnable,
180 set<XYPos> unique()
const noexcept;
181#ifdef DEBUG_CELLPOINTS
182 size_t size()
const noexcept;
185 void remove_if(std::function<
bool(
const pair<Location, CellPoints>&)> F)
noexcept;
188 map<Location, CellPoints> map_;
Definition CellPoints.h:78
Definition CellPoints.h:164
Definition CellPoints.h:102
The position within the Environment that a spreading point has.
Definition InnerPos.h:81
The position within a Cell that a spreading point has.
Definition InnerPos.h:59
A single Scenario in an Iteration using a specific FireWeather stream.
Definition Scenario.h:31
Definition CellPoints.h:19
The position within the Environment that a spreading point has.
Definition InnerPos.h:67
Definition Location.h:229
Direction with access to degrees or radians.
Definition Weather.h:64