Kaspersky Neuromorphic Platform  1.0.0
API Reference
Loading...
Searching...
No Matches
polar.h
Go to the documentation of this file.
1
22#pragma once
23
24#include <boost/geometry.hpp> // IWYU pragma: export
25
26
31{
32
36namespace d2
37{
38
42constexpr char coordinate_tag_name[]{"polar_coordinate"};
46constexpr char coordinate_array_tag_name[]{"polar_coordinates_array"};
47
53template <
54 typename CoordinateType, typename DegreeOrRadian = boost::geometry::degree,
55 class CoordinateSystem = boost::geometry::cs::polar<DegreeOrRadian>>
56class coordinate : public boost::geometry::model::point<CoordinateType, 2, CoordinateSystem>
57{
58public:
62 constexpr coordinate() = default;
63
69 constexpr coordinate(CoordinateType const& radius, CoordinateType const& phi)
70 : boost::geometry::model::point<CoordinateType, 2, CoordinateSystem>(radius, phi)
71 {
72 }
73
78 constexpr CoordinateType const& radius() const { return this->template get<0>(); }
79
84 constexpr CoordinateType const& phi() const { return this->template get<1>(); }
85
90 void radius(CoordinateType const& v) { return this->template set<0>(v); } // NOLINT
91
96 void phi(CoordinateType const& v) { return this->template set<1>(v); } // NOLINT
97};
98} // namespace d2
99
100
104namespace d3
105{
109constexpr char coordinate_tag_name[]{"spherical_coordinate"};
113constexpr char coordinate_array_tag_name[]{"spherical_coordinates_array"};
114
120template <
121 typename CoordinateType, typename DegreeOrRadian = boost::geometry::degree,
122 class CoordinateSystem = boost::geometry::cs::polar<DegreeOrRadian>>
123class coordinate : public boost::geometry::model::point<CoordinateType, 3, CoordinateSystem>
124{
125public:
129 constexpr coordinate() = default;
130
137 constexpr coordinate(CoordinateType const& radius, CoordinateType const& theta, CoordinateType const& phi)
138 : boost::geometry::model::point<CoordinateType, 3, CoordinateSystem>(radius, theta, phi)
139 {
140 }
141
146 constexpr CoordinateType const& radius() const { return this->template get<0>(); }
147
152 constexpr CoordinateType const& theta() const { return this->template get<1>(); }
153
158 constexpr CoordinateType const& phi() const { return this->template get<2>(); }
159
164 void radius(CoordinateType const& v) { return this->template set<0>(v); } // NOLINT
165
170 void theta(CoordinateType const& v) { return this->template set<1>(v); } // NOLINT
171
176 void phi(CoordinateType const& v) { return this->template set<2>(v); } // NOLINT
177};
178
179} // namespace d3
180
181} // namespace knp::framework::coordinates::radial
void phi(CoordinateType const &v)
Set phi value.
Definition polar.h:96
constexpr CoordinateType const & radius() const
Get radius value.
Definition polar.h:78
constexpr coordinate()=default
Default constructor.
constexpr coordinate(CoordinateType const &radius, CoordinateType const &phi)
Constructor that uses radius and phi values.
Definition polar.h:69
constexpr CoordinateType const & phi() const
Get phi value.
Definition polar.h:84
void radius(CoordinateType const &v)
Set radius value.
Definition polar.h:90
constexpr CoordinateType const & theta() const
Get theta value.
Definition polar.h:152
constexpr CoordinateType const & radius() const
Get radius value.
Definition polar.h:146
constexpr coordinate(CoordinateType const &radius, CoordinateType const &theta, CoordinateType const &phi)
Constructor that uses radius, theta, and phi values.
Definition polar.h:137
void radius(CoordinateType const &v)
Set radius value.
Definition polar.h:164
constexpr CoordinateType const & phi() const
Get phi value.
Definition polar.h:158
constexpr coordinate()=default
Default constructor.
void phi(CoordinateType const &v)
Set phi value.
Definition polar.h:176
void theta(CoordinateType const &v)
Set theta value.
Definition polar.h:170
Namespace for polar coordinates.
Definition polar.h:37
constexpr char coordinate_array_tag_name[]
Predefined tag name for array of coordinates.
Definition polar.h:46
constexpr char coordinate_tag_name[]
Predefined tag name for one coordinate.
Definition polar.h:42
Namespace for spherical coordinates.
Definition polar.h:105
Namespace for the radial coordinates.
Definition polar.h:31