bmh/FlightSimulation/Plugins/CesiumForUnreal_5.4/Source/CesiumRuntime/Private/CesiumWgs84Ellipsoid.cpp
2025-02-07 22:52:32 +08:00

60 lines
1.9 KiB
C++

// Copyright 2020-2024 CesiumGS, Inc. and Contributors
#include "CesiumWgs84Ellipsoid.h"
#include "CesiumEllipsoidFunctions.h"
#include "VecMath.h"
#include <CesiumGeospatial/Ellipsoid.h>
using namespace CesiumGeospatial;
using namespace CesiumUtility;
FVector UCesiumWgs84Ellipsoid::GetRadii() {
const glm::dvec3& radii = Ellipsoid::WGS84.getRadii();
return VecMath::createVector(radii);
}
double UCesiumWgs84Ellipsoid::GetMaximumRadius() {
return Ellipsoid::WGS84.getRadii().x;
}
double UCesiumWgs84Ellipsoid::GetMinimumRadius() {
return Ellipsoid::WGS84.getRadii().z;
}
FVector UCesiumWgs84Ellipsoid::ScaleToGeodeticSurface(
const FVector& EarthCenteredEarthFixedPosition) {
return CesiumEllipsoidFunctions::ScaleToGeodeticSurface(
Ellipsoid::WGS84,
EarthCenteredEarthFixedPosition);
}
FVector UCesiumWgs84Ellipsoid::GeodeticSurfaceNormal(
const FVector& EarthCenteredEarthFixedPosition) {
return CesiumEllipsoidFunctions::GeodeticSurfaceNormal(
Ellipsoid::WGS84,
EarthCenteredEarthFixedPosition);
}
FVector UCesiumWgs84Ellipsoid::LongitudeLatitudeHeightToEarthCenteredEarthFixed(
const FVector& LongitudeLatitudeHeight) {
return CesiumEllipsoidFunctions::
LongitudeLatitudeHeightToEllipsoidCenteredEllipsoidFixed(
Ellipsoid::WGS84,
LongitudeLatitudeHeight);
}
FVector UCesiumWgs84Ellipsoid::EarthCenteredEarthFixedToLongitudeLatitudeHeight(
const FVector& EarthCenteredEarthFixedPosition) {
return CesiumEllipsoidFunctions::
EllipsoidCenteredEllipsoidFixedToLongitudeLatitudeHeight(
Ellipsoid::WGS84,
EarthCenteredEarthFixedPosition);
}
FMatrix UCesiumWgs84Ellipsoid::EastNorthUpToEarthCenteredEarthFixed(
const FVector& EarthCenteredEarthFixedPosition) {
return CesiumEllipsoidFunctions::EastNorthUpToEllipsoidCenteredEllipsoidFixed(
Ellipsoid::WGS84,
EarthCenteredEarthFixedPosition);
}