73 meta = (WorldContext =
"WorldContextObject"))
75 GetDefaultGeoreference(const UObject* WorldContextObject);
91 UFUNCTION(BlueprintCallable, Category = "Cesium")
98 UPROPERTY(BlueprintAssignable, Category = "Cesium")
99 FGeoreferenceUpdated OnGeoreferenceUpdated;
105 UPROPERTY(BlueprintAssignable, Category = "Cesium")
108#pragma region Properties
120 BlueprintGetter = GetEllipsoid,
121 BlueprintSetter = SetEllipsoid,
122 meta = (AllowPrivateAccess))
140 BlueprintGetter = GetOriginPlacement,
141 BlueprintSetter = SetOriginPlacement,
142 meta = (AllowPrivateAccess))
153 BlueprintGetter = GetOriginLatitude,
154 BlueprintSetter = SetOriginLatitude,
159 "OriginPlacement==EOriginPlacement::CartographicOrigin",
162 double OriginLatitude = 39.736401;
172 BlueprintGetter = GetOriginLongitude,
173 BlueprintSetter = SetOriginLongitude,
181 double OriginLongitude = -105.25737;
191 BlueprintGetter = GetOriginHeight,
192 BlueprintSetter = SetOriginHeight,
198 double OriginHeight = 2250.0;
209 BlueprintSetter = SetScale,
210 BlueprintGetter = GetScale,
212 Meta = (AllowPrivateAccess, UIMin = 0.000001, UIMax = 100.0))
213 double Scale = 100.0;
225 "Add a CesiumOriginShiftComponent to the appropriate
Actor instead."))
226 APlayerCameraManager* SubLevelCamera_DEPRECATED =
nullptr;
234 Category = "Cesium|Sub-levels",
236 BlueprintGetter = GetSubLevelSwitcher,
237 meta = (AllowPrivateAccess))
240#if WITH_EDITORONLY_DATA
246 Category =
"Cesium|Sub-levels",
249 BlueprintGetter = GetShowLoadRadii,
250 BlueprintSetter = SetShowLoadRadii,
251 meta = (AllowPrivateAccess))
252 bool ShowLoadRadii =
true;
257#pragma region PropertyAccessors
266 UFUNCTION(BlueprintPure, Category =
"Cesium")
267 FVector GetOriginLongitudeLatitudeHeight() const;
276 UFUNCTION(BlueprintCallable, Category = "Cesium")
277 void SetOriginLongitudeLatitudeHeight(
278 const FVector& TargetLongitudeLatitudeHeight);
285 UFUNCTION(BlueprintPure, Category = "Cesium")
286 FVector GetOriginEarthCenteredEarthFixed() const;
298 UFUNCTION(BlueprintCallable, Category = "Cesium")
299 void SetOriginEarthCenteredEarthFixed(
300 const FVector& TargetEarthCenteredEarthFixed);
314 UFUNCTION(BlueprintGetter)
329 UFUNCTION(BlueprintSetter)
336 UFUNCTION(BlueprintGetter)
337 double GetOriginLatitude() const;
343 UFUNCTION(BlueprintSetter)
344 void SetOriginLatitude(
double NewValue);
350 UFUNCTION(BlueprintGetter)
351 double GetOriginLongitude() const;
357 UFUNCTION(BlueprintSetter)
358 void SetOriginLongitude(
double NewValue);
364 UFUNCTION(BlueprintGetter)
365 double GetOriginHeight() const;
371 UFUNCTION(BlueprintSetter)
372 void SetOriginHeight(
double NewValue);
379 UFUNCTION(BlueprintGetter)
380 double GetScale() const;
387 UFUNCTION(BlueprintSetter)
388 void SetScale(
double NewValue);
395 "Cesium For Unreal v2.0",
396 "Add a CesiumOriginShiftComponent to the appropriate
Actor instead.")
397 UFUNCTION(BlueprintGetter)
398 APlayerCameraManager* GetSubLevelCamera() const;
405 "Cesium For Unreal v2.0",
406 "Add a CesiumOriginShiftComponent to the appropriate
Actor instead.")
407 UFUNCTION(BlueprintSetter)
408 void SetSubLevelCamera(APlayerCameraManager* NewValue);
414 UFUNCTION(BlueprintGetter)
416 return this->SubLevelSwitcher;
423 UFUNCTION(BlueprintCallable, BlueprintGetter, Category =
"Cesium")
432 UFUNCTION(BlueprintSetter, Category = "Cesium")
440 UFUNCTION(BlueprintGetter)
441 bool GetShowLoadRadii()
const;
447 UFUNCTION(BlueprintSetter)
448 void SetShowLoadRadii(
bool NewValue);
453#pragma region Transformation Functions
467 meta = (ReturnDisplayName =
"UnrealPosition"))
468 FVector TransformLongitudeLatitudeHeightPositionToUnreal(
469 const FVector& LongitudeLatitudeHeight) const;
482 meta = (ReturnDisplayName = "LongitudeLatitudeHeight"))
483 FVector TransformUnrealPositionToLongitudeLatitudeHeight(
484 const FVector& UnrealPosition) const;
497 meta = (ReturnDisplayName = "UnrealPosition"))
498 FVector TransformEarthCenteredEarthFixedPositionToUnreal(
499 const FVector& EarthCenteredEarthFixedPosition) const;
511 meta = (ReturnDisplayName = "EarthCenteredEarthFixedPosition"))
512 FVector TransformUnrealPositionToEarthCenteredEarthFixed(
513 const FVector& UnrealPosition) const;
526 meta = (ReturnDisplayName = "UnrealDirection"))
527 FVector TransformEarthCenteredEarthFixedDirectionToUnreal(
528 const FVector& EarthCenteredEarthFixedDirection) const;
541 meta = (ReturnDisplayName = "EarthCenteredEarthFixedPosition"))
542 FVector TransformUnrealDirectionToEarthCenteredEarthFixed(
543 const FVector& UnrealDirection) const;
565 meta = (ReturnDisplayName = "EastSouthUpRotator"))
566 FRotator TransformUnrealRotatorToEastSouthUp(
567 const FRotator& UnrealRotator,
568 const FVector& UnrealLocation) const;
590 meta = (ReturnDisplayName = "UnrealRotator"))
591 FRotator TransformEastSouthUpRotatorToUnreal(
592 const FRotator& EastSouthUpRotator,
593 const FVector& UnrealLocation) const;
606 meta = (ReturnDisplayName = "UnrealToEarthCenteredEarthFixedMatrix"))
607 FMatrix ComputeUnrealToEarthCenteredEarthFixedTransformation() const;
620 meta = (ReturnDisplayName = "EarthCenteredEarthFixedToUnrealMatrix"))
621 FMatrix ComputeEarthCenteredEarthFixedToUnrealTransformation() const;
642 meta = (ReturnDisplayName = "EastSouthUpToUnrealMatrix"))
644 ComputeEastSouthUpToUnrealTransformation(const FVector& UnrealLocation) const;
667 meta = (ReturnDisplayName = "EastSouthUpToUnrealMatrix"))
669 ComputeEastSouthUpAtEarthCenteredEarthFixedPositionToUnrealTransformation(
670 const FVector& EarthCenteredEarthFixedPosition) const;
694 meta = (ReturnDisplayName = "UnrealToEastSouthUpMatrix"))
696 ComputeUnrealToEastSouthUpTransformation(const FVector& UnrealLocation) const;
700#pragma region Editor Support
715 UFUNCTION(Category =
"Cesium")
716 void PlaceGeoreferenceOriginHere();
728 UFUNCTION(Category = "Cesium")
729 void CreateSubLevelHere();
735 UPROPERTY(VisibleAnywhere, Category =
"Cesium")
736 USceneComponent* Root;
746 void _showSubLevelLoadRadii()
const;
751#pragma region Unreal Lifecycle
755 virtual void Tick(
float DeltaTime)
override;
763 PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override;
768#pragma region Obsolete
772 "Cesium For Unreal v2.0",
773 "Use transformation functions on ACesiumGeoreference and UCesiumEllipsoid instead.")
777 PRAGMA_DISABLE_DEPRECATION_WARNINGS
784 PRAGMA_ENABLE_DEPRECATION_WARNINGS
787 void _createSubLevelsFromWorldComposition();
801 "Use LongitudeLatitudeHeightToEllipsoidCenteredEllipsoidFixed on UCesiumEllipsoid instead."))
802 FVector TransformLongitudeLatitudeHeightToEcef(
803 const FVector& LongitudeLatitudeHeight) const;
816 "Use EllipsoidCenteredEllipsoidFixedToLongitudeLatitudeHeight on
UCesiumEllipsoid instead."))
817 FVector TransformEcefToLongitudeLatitudeHeight(const FVector& Ecef) const;
829 "Use EastNorthUpToEllipsoidCenteredEllipsoidFixed on
UCesiumEllipsoid instead."))
830 FMatrix ComputeEastNorthUpToEcef(const FVector& Ecef) const;
835#pragma region Implementation Details
842 return this->_coordinateSystem;
849 void UpdateGeoreference();
855 static FName DEFAULT_GEOREFERENCE_TAG;
864 void _updateCoordinateSystem();
866 friend class FCesiumGeoreferenceCustomization;