3#include <CesiumGeometry/Rectangle.h>
4#include <CesiumGeospatial/Cartographic.h>
5#include <CesiumGeospatial/Library.h>
6#include <CesiumUtility/Math.h>
61 double north) noexcept
62 : _west(west), _south(south), _east(east), _north(north) {}
84 double northDegrees)
noexcept {
95 constexpr double getWest() const noexcept {
return this->_west; }
100 void setWest(
double value)
noexcept { this->_west = value; }
105 constexpr double getSouth() const noexcept {
return this->_south; }
110 void setSouth(
double value)
noexcept { this->_south = value; }
115 constexpr double getEast() const noexcept {
return this->_east; }
120 void setEast(
double value)
noexcept { this->_east = value; }
125 constexpr double getNorth() const noexcept {
return this->_north; }
130 void setNorth(
double value)
noexcept { this->_north = value; }
177 double east = this->_east;
178 const double west = this->_west;
191 return this->_north - this->_south;
278 double relativeEpsilon) noexcept;
A position defined by longitude, latitude, and height.
constexpr double getWest() const noexcept
Returns the westernmost longitude, in radians.
constexpr double computeWidth() const noexcept
Computes the width of this rectangle.
constexpr double getNorth() const noexcept
Returns the northernmost latitude, in radians.
Cartographic computeCenter() const noexcept
Computes the Cartographic center position of this rectangle.
static const GlobeRectangle MAXIMUM
The maximum rectangle.
void setNorth(double value) noexcept
Sets the northernmost latitude, in radians.
constexpr GlobeRectangle(double west, double south, double east, double north) noexcept
Constructs a new instance.
static bool equals(const GlobeRectangle &left, const GlobeRectangle &right) noexcept
Checks whether two globe rectangles are exactly equal.
constexpr Cartographic getSouthwest() const noexcept
Returns the Cartographic position of the south-west corner.
bool isEmpty() const noexcept
Determines if this rectangle is empty.
constexpr Cartographic getNortheast() const noexcept
Returns the Cartographic position of the north-east corner.
static constexpr GlobeRectangle fromDegrees(double westDegrees, double southDegrees, double eastDegrees, double northDegrees) noexcept
static bool equalsEpsilon(const GlobeRectangle &left, const GlobeRectangle &right, double relativeEpsilon) noexcept
Checks whether two globe rectangles are equal up to a given relative epsilon.
constexpr double getEast() const noexcept
Returns the easternmost longitude, in radians.
void setWest(double value) noexcept
Sets the westernmost longitude, in radians.
bool contains(const Cartographic &cartographic) const noexcept
Returns true if this rectangle contains the given point.
std::optional< GlobeRectangle > computeIntersection(const GlobeRectangle &other) const noexcept
Computes the intersection of two rectangles.
constexpr Cartographic getSoutheast() const noexcept
Returns the Cartographic position of the south-east corner.
constexpr CesiumGeometry::Rectangle toSimpleRectangle() const noexcept
Returns this rectangle as a CesiumGeometry::Rectangle.
void setSouth(double value) noexcept
Sets the southernmost latitude, in radians.
void setEast(double value) noexcept
Sets the easternmost longitude, in radians.
constexpr double computeHeight() const noexcept
Computes the height of this rectangle.
GlobeRectangle computeUnion(const GlobeRectangle &other) const noexcept
Computes the union of this globe rectangle with another.
static const GlobeRectangle EMPTY
An empty rectangle.
constexpr Cartographic getNorthwest() const noexcept
Returns the Cartographic position of the north-west corner.
constexpr double getSouth() const noexcept
Returns the southernmost latitude, in radians.
std::pair< GlobeRectangle, std::optional< GlobeRectangle > > splitAtAntiMeridian() const noexcept
Splits this rectangle at the anti-meridian (180 degrees longitude), if necessary.
static constexpr double degreesToRadians(double angleDegrees) noexcept
Converts degrees to radians.
static constexpr double TwoPi
Two times pi.
Classes for geospatial computations in Cesium.