atlas::util::ConvexSphericalPolygon class

Public types

class GreatCircleSegment
template<class Points>
using contains_PointLonLat = std::is_same<typename std::decay<typename Points::value_type>::type, PointLonLat>

Public static variables

static int MAX_GRIDCELL_EDGES constexpr
static int MAX_SIZE constexpr

Constructors, destructors, conversion operators

ConvexSphericalPolygon() defaulted
template<class Points, typename std::enable_if<contains_PointLonLat<Points>::value, void>::type* = nullptr>
ConvexSphericalPolygon(const Points& points)
ConvexSphericalPolygon(const PointLonLat points[], size_t size)
ConvexSphericalPolygon(const PointXYZ& p1, const PointXYZ& p2, const PointXYZ& p3)
ConvexSphericalPolygon(const PointXYZ points[], size_t size)
operator bool() const

Public functions

auto size() const -> size_t
auto area() const -> double
auto centroid() const -> const PointXYZ&
auto radius() const -> double
auto intersect(const ConvexSphericalPolygon& pol, std::ostream* f = nullptr, double pointsEqualEPS = std::numeric_limits<double>::epsilon()) const -> ConvexSphericalPolygon
auto equals(const ConvexSphericalPolygon& plg, const double deg_prec = 1e-10) const -> bool
void print(std::ostream&) const
auto json(int precision = 0) const -> std::string
auto operator[](idx_t n) const -> const PointXYZ&
auto next(const int index) const -> int

Friends

auto operator<<(std::ostream& out, const ConvexSphericalPolygon& p) -> std::ostream&