cesium-native 0.44.2
Loading...
Searching...
No Matches
SimplePlanarEllipsoidCurve.h
1#pragma once
2
3#include <CesiumGeospatial/Ellipsoid.h>
4#include <CesiumGeospatial/Library.h>
5
6#include <glm/vec3.hpp>
7
8#include <optional>
9
10namespace CesiumGeospatial {
11
18class CESIUMGEOSPATIAL_API SimplePlanarEllipsoidCurve final {
19public:
37 static std::optional<SimplePlanarEllipsoidCurve>
39 const Ellipsoid& ellipsoid,
40 const glm::dvec3& sourceEcef,
41 const glm::dvec3& destinationEcef);
42
60 static std::optional<SimplePlanarEllipsoidCurve> fromLongitudeLatitudeHeight(
61 const Ellipsoid& ellipsoid,
62 const Cartographic& source,
63 const Cartographic& destination);
64
79 glm::dvec3
80 getPosition(double percentage, double additionalHeight = 0.0) const;
81
82private:
84 const Ellipsoid& ellipsoid,
85 const glm::dvec3& scaledSourceEcef,
86 const glm::dvec3& scaledDestinationEcef,
87 const glm::dvec3& originalSourceEcef,
88 const glm::dvec3& originalDestinationEcef);
89
90 double _totalAngle;
91 double _sourceHeight;
92 double _destinationHeight;
93
94 Ellipsoid _ellipsoid;
95 glm::dvec3 _sourceDirection;
96 glm::dvec3 _rotationAxis;
97 glm::dvec3 _sourceEcef;
98 glm::dvec3 _destinationEcef;
99};
100
101} // namespace CesiumGeospatial
A position defined by longitude, latitude, and height.
A quadratic surface defined in Cartesian coordinates.
Definition Ellipsoid.h:39
Produces points on an ellipse that lies on a plane that intersects the center of the earth and each o...
glm::dvec3 getPosition(double percentage, double additionalHeight=0.0) const
Samples the curve at the given percentage of its length.
static std::optional< SimplePlanarEllipsoidCurve > fromLongitudeLatitudeHeight(const Ellipsoid &ellipsoid, const Cartographic &source, const Cartographic &destination)
Creates a new instance of SimplePlanarEllipsoidCurve from a source and destination specified in carto...
static std::optional< SimplePlanarEllipsoidCurve > fromEarthCenteredEarthFixedCoordinates(const Ellipsoid &ellipsoid, const glm::dvec3 &sourceEcef, const glm::dvec3 &destinationEcef)
Creates a new instance of SimplePlanarEllipsoidCurve from a source and destination specified in Earth...
Classes for geospatial computations in Cesium.