初始提交: UE5.3项目基础框架

This commit is contained in:
2025-10-14 11:14:54 +08:00
commit 721d9fd98e
5334 changed files with 316782 additions and 0 deletions

View File

@ -0,0 +1,72 @@
#pragma once
#include "Library.h"
#include <CesiumUtility/Math.h>
namespace CesiumGeospatial {
/**
* @brief A position defined by longitude, latitude, and height.
*/
class CESIUMGEOSPATIAL_API Cartographic final {
public:
/**
* @brief Creates a new instance.
*
* @param longitudeRadians The longitude, in radians.
* @param latitudeRadians The latitude, in radians.
* @param heightMeters The height, in meters. Default value: 0.0.
*/
constexpr Cartographic(
double longitudeRadians,
double latitudeRadians,
double heightMeters = 0.0) noexcept
: longitude(longitudeRadians),
latitude(latitudeRadians),
height(heightMeters) {}
/**
* @brief Creates a new instance from a longitude and latitude specified in
* degrees, and a height given in meters.
*
* The values in the resulting object will be in radians.
*
* @param longitudeDegrees The longitude, in degrees.
* @param latitudeDegrees The latitude, in degrees.
* @param heightMeters The height, in meters. Default value: 0.0.
*/
static constexpr Cartographic fromDegrees(
double longitudeDegrees,
double latitudeDegrees,
double heightMeters = 0.0) noexcept {
return Cartographic(
CesiumUtility::Math::degreesToRadians(longitudeDegrees),
CesiumUtility::Math::degreesToRadians(latitudeDegrees),
heightMeters);
}
/**
* @brief Returns `true` if two cartographics are equal.
*/
constexpr bool operator==(const Cartographic& rhs) const noexcept {
return this->longitude == rhs.longitude && this->latitude == rhs.latitude &&
this->height == rhs.height;
};
/**
* @brief The longitude, in radians.
*/
double longitude;
/**
* @brief The latitude, in radians.
*/
double latitude;
/**
* @brief The height, in meters.
*/
double height;
};
} // namespace CesiumGeospatial