36 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Components)
37 USceneComponent* Scene;
39 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Components)
40 USkyLightComponent* SkyLight;
42 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Components)
43 UDirectionalLightComponent* DirectionalLight;
45 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Components)
46 USkyAtmosphereComponent* SkyAtmosphere;
51 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = Components)
63 Category = "Cesium|Date and Time",
64 meta = (ClampMin = -12, ClampMax = 14))
65 double TimeZone = -5.0;
76 Category = "Cesium|Date and Time",
77 meta = (UIMin = 4, UIMax = 22, ClampMin = 0, ClampMax = 23.9999))
78 double SolarTime = 13.0;
89 Category = "Cesium|Date and Time",
90 meta = (ClampMin = 1, ClampMax = 31))
102 Category = "Cesium|Date and Time",
103 meta = (ClampMin = 1, ClampMax = 12))
115 Category = "Cesium|Date and Time",
116 meta = (UIMin = 1800, UIMax = 2200, ClampMin = 0, ClampMax = 4000))
128 Category = "Cesium|Date and Time",
129 meta = (ClampMin = -360, ClampMax = 360))
130 double NorthOffset = -90.0;
141 Category = "Cesium|Date and Time|Daylight Savings")
142 bool UseDaylightSavingTime = true;
157 "Get the Georeference instance from the Globe Anchor Component instead."))
164 UFUNCTION(BlueprintGetter, Category = "Cesium")
176 Category = "Cesium|Date and Time|Daylight Savings",
177 meta = (ClampMin = 1, ClampMax = 12),
178 meta = (EditCondition = "UseDaylightSavingTime"))
179 int32 DSTStartMonth = 3;
190 Category = "Cesium|Date and Time|Daylight Savings",
191 meta = (ClampMin = 1, ClampMax = 31),
192 meta = (EditCondition = "UseDaylightSavingTime"))
193 int32 DSTStartDay = 10;
204 Category = "Cesium|Date and Time|Daylight Savings",
205 meta = (ClampMin = 1, ClampMax = 12),
206 meta = (EditCondition = "UseDaylightSavingTime"))
207 int32 DSTEndMonth = 11;
218 Category = "Cesium|Date and Time|Daylight Savings",
219 meta = (ClampMin = 1, ClampMax = 31),
220 meta = (EditCondition = "UseDaylightSavingTime"))
232 Category = "Cesium|Date and Time|Daylight Savings",
233 meta = (ClampMin = 0, ClampMax = 23),
234 meta = (EditCondition = "UseDaylightSavingTime"))
235 int32 DSTSwitchHour = 2;
242 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Atmosphere")
243 bool UpdateAtmosphereAtRuntime = true;
267 meta = (EditCondition = "UpdateAtmosphereAtRuntime"),
268 Category = "Cesium|Atmosphere")
269 double InscribedGroundThreshold = 30.0;
294 meta = (EditCondition = "UpdateAtmosphereAtRuntime"),
295 Category = "Cesium|Atmosphere")
296 double CircumscribedGroundThreshold = 100.0;
309 meta = (EditCondition = "UpdateAtmosphereAtRuntime"),
310 Category = "Cesium|Atmosphere")
311 double CircumscribedGroundHeight = 0.0;
324 Category = "Cesium|Atmosphere",
325 meta = (UIMin = 1.0, UIMax = 200.0, ClampMin = 0.1, SliderExponent = 2.0))
326 float AtmosphereHeight = 60.0f;
337 Category = "Cesium|Atmosphere",
339 (DisplayName = "Aerial Perspective View Distance Scale",
343 SliderExponent = 2.0))
344 float AerialPerspectiveViewDistanceScale = 1.0f;
355 Category = "Cesium|Atmosphere",
357 (UIMin = 0.01, UIMax = 20.0, ClampMin = 0.001, SliderExponent = 5.0))
358 float RayleighExponentialDistribution = 8.0f;
369 Category = "Cesium|Atmosphere",
371 (UIMin = 0.01, UIMax = 10.0, ClampMin = 0.001, SliderExponent = 5.0))
372 float MieExponentialDistribution = 1.2f;
378 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Sun")
379 bool UseLevelDirectionalLight = false;
384 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Sun")
385 ADirectionalLight* LevelDirectionalLight;
391 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Sun")
392 double Elevation = 0.f;
398 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Sun")
399 double CorrectedElevation = 0.f;
405 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Sun")
406 double Azimuth = 0.f;
413 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Cesium|Mobile")
414 bool UseMobileRendering;
420 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Mobile")
421 TSubclassOf<AActor> SkySphereClass;
426 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Cesium|Mobile")
427 AActor* SkySphereActor;
432 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Cesium|Mobile")
433 double MobileDirectionalLightIntensity = 6.f;
439 BlueprintNativeEvent,
442 void UpdateSun_Implementation();
444 UFUNCTION(CallInEditor, BlueprintCallable, Category = "Cesium")
445 void UpdateAtmosphereRadius();
451 UFUNCTION(BlueprintCallable, BlueprintPure, Category = Sun)
452 static
void GetHMSFromSolarTime(
463 UFUNCTION(BlueprintCallable, BlueprintPure, Category = Sun)
466 int32 InDSTStartMonth,
470 int32 InDSTSwitchHour) const;
478 virtual
void OnConstruction(const FTransform& Transform) override;
490 UFUNCTION(BlueprintCallable, Category = "Cesium")
492 SetSkyAtmosphereGroundRadius(USkyAtmosphereComponent* Sky,
double Radius);
497 UFUNCTION(BlueprintCallable, Category = "Mobile")
498 void UpdateSkySphere();
500 virtual
void BeginPlay() override;
501 virtual
void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
503 virtual
void Tick(
float DeltaSeconds) override;
504 virtual
void PostLoad() override;
505 virtual
bool ShouldTickIfViewportsOnly() const override;
509 PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override;
513 void _spawnSkySphere();
514 double _computeScale()
const;
517 void _setSkySphereDirectionalLight();
519 void _setSkyAtmosphereVisibility(
bool bVisible);
522 bool _wantsSpawnMobileSkySphere;
524 void _handleTransformUpdated(
525 USceneComponent* InRootComponent,
526 EUpdateTransformFlags UpdateTransformFlags,
527 ETeleportType Teleport);
529 FDelegateHandle _transformUpdatedSubscription;