5#include "Engine/DataAsset.h"
6#include "Misc/Optional.h"
7#include <CesiumGeospatial/LocalHorizontalCoordinateSystem.h>
8#include "CesiumEllipsoid.generated.h"
28 UFUNCTION(BlueprintCallable, Category =
"Cesium|Ellipsoid")
35 UFUNCTION(BlueprintPure, Category =
"Cesium|Ellipsoid")
49 UFUNCTION(BlueprintPure, Category =
"Cesium|Ellipsoid")
56 UFUNCTION(BlueprintPure, Category =
"Cesium|Ellipsoid")
67 Category =
"Cesium|Ellipsoid",
68 meta = (ReturnDisplayName =
"SurfacePosition"))
78 Category =
"Cesium|Ellipsoid",
79 meta = (ReturnDisplayName =
"SurfaceNormalVector"))
89 Category =
"Cesium|Ellipsoid",
90 meta = (ReturnDisplayName =
"EarthCenteredEarthFixedPosition"))
92 const FVector& LongitudeLatitudeHeight);
103 Category =
"Cesium|Ellipsoid",
104 meta = (ReturnDisplayName =
"LongitudeLatitudeHeight"))
106 const FVector& EarthCenteredEarthFixedPosition);
114 const FVector& EarthCenteredEarthFixedPosition);
137 Category =
"Cesium|Ellipsoid",
138 meta = (DisplayName =
"Radii"))
144 PostSaveRoot(FObjectPostSaveRootContext ObjectSaveContext)
override;
147 TOptional<CesiumGeospatial::Ellipsoid> NativeEllipsoid;
const CesiumGeospatial::Ellipsoid & GetNativeEllipsoid()
Returns the underlying CesiumGeospatial::Ellipsoid.
FVector EllipsoidCenteredEllipsoidFixedToLongitudeLatitudeHeight(const FVector &EarthCenteredEarthFixedPosition)
Convert Ellipsoid-Centered, Ellipsoid-Fixed (ECEF) coordinates to longitude in degrees (X),...
FVector GeodeticSurfaceNormal(const FVector &EarthCenteredEarthFixedPosition)
Computes the normal of the plane tangent to the surface of the ellipsoid at the provided Ellipsoid-Ce...
static UCesiumEllipsoid * Create(const FVector &Radii)
Creates a new UCesiumEllipsoid with the given radii.
double GetMinimumRadius()
Gets the minimum radius of the ellipsoid in any dimension, in meters.
void SetRadii(const FVector &NewRadii)
Sets the radii of this ellipsoid in its x-, y-, and z-directions in meters.
FVector Radii
The radii of this ellipsoid.
CesiumGeospatial::LocalHorizontalCoordinateSystem CreateCoordinateSystem(const FVector &Center, double Scale)
Returns a new CesiumGeospatial::LocalHorizontalCoordinateSystem with the given scale,...
FVector ScaleToGeodeticSurface(const FVector &EarthCenteredEarthFixedPosition)
Scale the given Ellipsoid-Centered, Ellipsoid-Fixed position along the geodetic surface normal so tha...
FMatrix EastNorthUpToEllipsoidCenteredEllipsoidFixed(const FVector &EarthCenteredEarthFixedPosition)
Computes the transformation matrix from the local East-North-Up (ENU) frame to Ellipsoid-Centered,...
FVector GetRadii()
Gets the radii of the ellipsoid in its x-, y-, and z-directions in meters.
FVector LongitudeLatitudeHeightToEllipsoidCenteredEllipsoidFixed(const FVector &LongitudeLatitudeHeight)
Convert longitude in degrees (X), latitude in degrees (Y), and height above the ellipsoid in meters (...
double GetMaximumRadius()
Gets the maximum radius of the ellipsoid in any dimension, in meters.