3#include <CesiumGeometry/CullingResult.h>
4#include <CesiumGeometry/Plane.h>
5#include <CesiumGeospatial/BoundingRegion.h>
6#include <CesiumGeospatial/Ellipsoid.h>
7#include <CesiumGeospatial/S2CellID.h>
106 CESIUM_DEFAULT_ELLIPSOID) const noexcept;
110 double _minimumHeight;
111 double _maximumHeight;
114 std::array<glm::dvec3, 8> _vertices;
A bounding volume specified as a longitude/latitude bounding box and a minimum and maximum height.
A quadratic surface defined in Cartesian coordinates.
std::span< const glm::dvec3 > getVertices() const noexcept
Gets the either corners of the bounding volume, in ellipsoid-fixed (ECEF) coordinates.
BoundingRegion computeBoundingRegion(const CesiumGeospatial::Ellipsoid &ellipsoid=CesiumGeospatial::Ellipsoid::WGS84) const noexcept
Computes the bounding begion that best fits this S2 cell volume.
double computeDistanceSquaredToPosition(const glm::dvec3 &position) const noexcept
Computes the distance squared from a given position to the closest point on this bounding volume....
std::span< const CesiumGeometry::Plane > getBoundingPlanes() const noexcept
Gets the six planes that bound the volume.
glm::dvec3 getCenter() const noexcept
Gets the center of this bounding volume in ellipsoid-fixed (ECEF) coordinates.
const S2CellID & getCellID() const
Gets this bounding volume's cell ID.
double getMaximumHeight() const noexcept
Gets the maximum height of the cell.
CesiumGeometry::CullingResult intersectPlane(const CesiumGeometry::Plane &plane) const noexcept
Determines on which side of a plane the bounding volume is located.
S2CellBoundingVolume(const S2CellID &cellID, double minimumHeight, double maximumHeight, const CesiumGeospatial::Ellipsoid &ellipsoid=CesiumGeospatial::Ellipsoid::WGS84)
Creates a new S2CellBoundingVolume.
double getMinimumHeight() const noexcept
Gets the minimum height of the cell.
A 64-bit unsigned integer that uniquely identifies a cell in the S2 cell decomposition.
Basic geometry classes for Cesium.
Classes for geospatial computations in Cesium.