101 UPROPERTY(VisibleAnywhere, Category =
"Cesium") USceneComponent* Root;
108 "Use the Mobility property on the RootComponent instead."))
109 TEnumAsByte<EComponentMobility::Type> Mobility_DEPRECATED =
110 EComponentMobility::Static;
113 UFUNCTION(BlueprintCallable,
meta = (DeprecatedFunction))
114 EComponentMobility::Type GetMobility()
const {
115 return this->RootComponent->Mobility;
117 UFUNCTION(BlueprintCallable,
meta = (DeprecatedFunction))
118 void SetMobility(EComponentMobility::Type NewMobility);
137 void SampleHeightMostDetailed(
138 const TArray<FVector>& LongitudeLatitudeHeightArray,
139 FCesiumSampleHeightMostDetailedCallback OnHeightsSampled);
154 BlueprintGetter = GetGeoreference,
155 BlueprintSetter = SetGeoreference,
157 Meta = (AllowPrivateAccess))
173 Meta = (AllowPrivateAccess))
178 UFUNCTION(BlueprintCallable, Category = "Cesium")
182 UFUNCTION(BlueprintCallable, Category = "Cesium")
192 UFUNCTION(BlueprintCallable, Category = "Cesium")
200 UFUNCTION(BlueprintCallable, Category = "Cesium")
201 void InvalidateResolvedGeoreference();
214 BlueprintGetter = GetCreditSystem,
215 BlueprintSetter = SetCreditSystem,
217 Meta = (AllowPrivateAccess))
232 Meta = (AllowPrivateAccess))
246 BlueprintGetter = GetCameraManager,
247 BlueprintSetter = SetCameraManager,
249 Meta = (AllowPrivateAccess))
264 Meta = (AllowPrivateAccess))
275 Meta = (AllowPrivateAccess))
276 UCesiumBoundingVolumePoolComponent* BoundingVolumePoolComponent =
nullptr;
282 TSharedPtr<CesiumViewExtension, ESPMode::ThreadSafe> _cesiumViewExtension =
287 UFUNCTION(BlueprintCallable, Category = "Cesium")
291 UFUNCTION(BlueprintCallable, Category = "Cesium")
301 UFUNCTION(BlueprintCallable, Category = "Cesium")
308 UFUNCTION(BlueprintCallable, Category = "Cesium")
309 void InvalidateResolvedCreditSystem();
314 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium")
315 bool ShowCreditsOnScreen = false;
318 UFUNCTION(BlueprintGetter, Category = "Cesium")
322 UFUNCTION(BlueprintSetter, Category = "Cesium")
332 UFUNCTION(BlueprintCallable, Category = "Cesium")
340 UFUNCTION(BlueprintCallable, Category = "Cesium")
341 void InvalidateResolvedCameraManager();
360 BlueprintGetter = GetMaximumScreenSpaceError,
361 BlueprintSetter = SetMaximumScreenSpaceError,
362 Category = "Cesium|Level of Detail",
363 meta = (ClampMin = 0.0))
364 double MaximumScreenSpaceError = 16.0;
373 Category = "Cesium|Level of Detail")
383 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Tile Loading")
384 bool PreloadAncestors = true;
393 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Tile Loading")
394 bool PreloadSiblings = true;
405 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Tile Loading")
406 bool ForbidHoles = false;
420 Category = "Cesium|Tile Loading",
421 meta = (ClampMin = 0))
422 int32 MaximumSimultaneousTileLoads = 20;
433 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Tile Loading")
434 int64 MaximumCachedBytes = 256 * 1024 * 1024;
450 Category = "Cesium|Tile Loading",
451 meta = (ClampMin = 0))
452 int32 LoadingDescendantLimit = 20;
470 Category = "Cesium|Tile Culling",
471 Meta = (EditCondition = "!UseLodTransitions", EditConditionHides))
472 bool EnableFrustumCulling = true;
487 Category = "Cesium|Tile Culling",
488 Meta = (EditCondition = "!UseLodTransitions", EditConditionHides))
489 bool EnableFogCulling = true;
511 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Tile Culling")
512 bool EnforceCulledScreenSpaceError = false;
536 Category = "Cesium|Tile Culling",
537 meta = (EditCondition = "EnforceCulledScreenSpaceError", ClampMin = 0.0))
538 double CulledScreenSpaceError = 64.0;
543 UPROPERTY(Transient, VisibleDefaultsOnly, Category = "Cesium|Tile Occlusion")
544 bool CanEnableOcclusionCulling = false;
568 BlueprintGetter = GetEnableOcclusionCulling,
569 BlueprintSetter = SetEnableOcclusionCulling,
570 Category = "Cesium|Tile Occlusion",
571 meta = (EditCondition = "CanEnableOcclusionCulling"))
572 bool EnableOcclusionCulling = true;
582 BlueprintGetter = GetOcclusionPoolSize,
583 BlueprintSetter = SetOcclusionPoolSize,
584 Category = "Cesium|Tile Occlusion",
587 "EnableOcclusionCulling && CanEnableOcclusionCulling",
590 int32 OcclusionPoolSize = 500;
602 BlueprintGetter = GetDelayRefinementForOcclusion,
603 BlueprintSetter = SetDelayRefinementForOcclusion,
604 Category = "Cesium|Tile Occlusion",
607 "EnableOcclusionCulling && CanEnableOcclusionCulling"))
608 bool DelayRefinementForOcclusion = true;
616 UFUNCTION(CallInEditor, BlueprintCallable, Category = "Cesium")
617 void RefreshTileset();
622 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Cesium|Debug")
629 UPROPERTY(EditAnywhere, Category = "Cesium|Debug")
630 bool UpdateInEditor = true;
635 UPROPERTY(EditAnywhere, Category = "Cesium|Debug")
636 bool LogSelectionStats = false;
642 UPROPERTY(EditAnywhere, Category = "Cesium|Debug")
643 bool LogSharedAssetStats = false;
649 UPROPERTY(EditAnywhere, Category = "Cesium|Debug")
650 bool DrawTileInfo = false;
659 Category = "Collision",
660 meta = (ShowOnlyInnerProperties, SkipUCSModifiedProperties))
661 FBodyInstance BodyInstance;
666 UPROPERTY(BlueprintAssignable, Category = "Cesium");
667 FCompletedLoadTrigger OnTilesetLoaded;
677 BlueprintGetter = GetUseLodTransitions,
678 BlueprintSetter = SetUseLodTransitions,
679 Category = "Cesium|Rendering")
680 bool UseLodTransitions = false;
691 Category = "Cesium|Rendering",
692 meta = (EditCondition = "UseLodTransitions", EditConditionHides))
693 float LodTransitionLength = 0.5f;
696 UPROPERTY(BlueprintGetter = GetLoadProgress, Category = "Cesium")
697 float LoadProgress = 0.0f;
704 BlueprintGetter = GetTilesetSource,
705 BlueprintSetter = SetTilesetSource,
707 meta = (DisplayName = "Source"))
717 BlueprintGetter = GetUrl,
718 BlueprintSetter = SetUrl,
730 BlueprintGetter = GetIonAssetID,
731 BlueprintSetter = SetIonAssetID,
743 BlueprintGetter = GetIonAccessToken,
744 BlueprintSetter = SetIonAccessToken,
747 FString IonAccessToken;
752 DeprecationMessage = "Use CesiumIonServer instead."))
753 FString IonAssetEndpointUrl_DEPRECATED;
760 BlueprintGetter = GetCesiumIonServer,
761 BlueprintSetter = SetCesiumIonServer,
772 BlueprintGetter = GetRequestHeaders,
773 BlueprintSetter = SetRequestHeaders,
775 TMap<FString, FString> RequestHeaders;
781 UFUNCTION(CallInEditor, Category = "Cesium")
782 void TroubleshootToken();
795 BlueprintGetter = GetCreatePhysicsMeshes,
796 BlueprintSetter = SetCreatePhysicsMeshes,
797 Category = "Cesium|Physics")
798 bool CreatePhysicsMeshes = true;
810 BlueprintGetter = GetCreateNavCollision,
811 BlueprintSetter = SetCreateNavCollision,
812 Category = "Cesium|Navigation")
813 bool CreateNavCollision = false;
832 BlueprintGetter = GetAlwaysIncludeTangents,
833 BlueprintSetter = SetAlwaysIncludeTangents,
834 Category = "Cesium|Rendering")
835 bool AlwaysIncludeTangents = false;
848 BlueprintGetter = GetGenerateSmoothNormals,
849 BlueprintSetter = SetGenerateSmoothNormals,
850 Category = "Cesium|Rendering")
851 bool GenerateSmoothNormals = false;
861 BlueprintGetter = GetEnableWaterMask,
862 BlueprintSetter = SetEnableWaterMask,
863 Category = "Cesium|Rendering")
864 bool EnableWaterMask = false;
878 BlueprintGetter = GetIgnoreKhrMaterialsUnlit,
879 BlueprintSetter = SetIgnoreKhrMaterialsUnlit,
880 Category = "Cesium|Rendering",
881 meta = (DisplayName = "Ignore KHR_materials_unlit"))
882 bool IgnoreKhrMaterialsUnlit = false;
894 BlueprintGetter = GetMaterial,
895 BlueprintSetter = SetMaterial,
896 Category = "Cesium|Rendering")
897 UMaterialInterface* Material =
nullptr;
910 BlueprintGetter = GetTranslucentMaterial,
911 BlueprintSetter = SetTranslucentMaterial,
912 Category = "Cesium|Rendering")
913 UMaterialInterface* TranslucentMaterial =
nullptr;
927 BlueprintGetter = GetWaterMaterial,
928 BlueprintSetter = SetWaterMaterial,
929 Category = "Cesium|Rendering")
930 UMaterialInterface* WaterMaterial =
nullptr;
934 BlueprintGetter = GetCustomDepthParameters,
935 BlueprintSetter = SetCustomDepthParameters,
936 Category = "Rendering",
937 meta = (ShowOnlyInnerProperties))
948 BlueprintGetter = GetPointCloudShading,
949 BlueprintSetter = SetPointCloudShading,
950 Category = "Cesium|Rendering")
955 FString PlatformName;
958 UFUNCTION(BlueprintGetter, Category = "Cesium")
959 float GetLoadProgress()
const {
return LoadProgress; }
961 UFUNCTION(BlueprintGetter, Category =
"Cesium")
962 bool GetUseLodTransitions()
const {
return UseLodTransitions; }
964 UFUNCTION(BlueprintSetter, Category =
"Cesium")
965 void SetUseLodTransitions(
bool InUseLodTransitions);
967 UFUNCTION(BlueprintGetter, Category = "Cesium")
970 UFUNCTION(BlueprintSetter, Category =
"Cesium")
973 UFUNCTION(BlueprintGetter, Category = "Cesium")
974 FString GetUrl()
const {
return Url; }
976 UFUNCTION(BlueprintSetter, Category =
"Cesium")
977 void SetUrl(const FString& InUrl);
979 UFUNCTION(BlueprintGetter, Category = "Cesium")
980 TMap<FString, FString> GetRequestHeaders()
const {
return RequestHeaders; }
982 UFUNCTION(BlueprintSetter, Category =
"Cesium")
983 void SetRequestHeaders(const TMap<FString, FString>& InRequestHeaders);
985 UFUNCTION(BlueprintGetter, Category = "Cesium")
986 int64 GetIonAssetID()
const {
return IonAssetID; }
988 UFUNCTION(BlueprintSetter, Category =
"Cesium")
989 void SetIonAssetID(int64 InAssetID);
991 UFUNCTION(BlueprintGetter, Category = "Cesium")
992 FString GetIonAccessToken()
const {
return IonAccessToken; }
994 UFUNCTION(BlueprintSetter, Category =
"Cesium")
995 void SetIonAccessToken(const FString& InAccessToken);
997 UFUNCTION(BlueprintGetter, Category = "Cesium")
1000 UFUNCTION(BlueprintSetter, Category =
"Cesium")
1003 UFUNCTION(BlueprintGetter, Category = "Cesium")
1004 double GetMaximumScreenSpaceError() {
return MaximumScreenSpaceError; }
1006 UFUNCTION(BlueprintSetter, Category =
"Cesium")
1007 void SetMaximumScreenSpaceError(
double InMaximumScreenSpaceError);
1009 UFUNCTION(BlueprintGetter, Category = "Cesium|Tile Culling|Experimental")
1010 bool GetEnableOcclusionCulling() const;
1012 UFUNCTION(BlueprintSetter, Category = "Cesium|Tile Culling|Experimental")
1013 void SetEnableOcclusionCulling(
bool bEnableOcclusionCulling);
1015 UFUNCTION(BlueprintGetter, Category = "Cesium|Tile Culling|Experimental")
1016 int32 GetOcclusionPoolSize()
const {
return OcclusionPoolSize; }
1018 UFUNCTION(BlueprintSetter, Category =
"Cesium|Tile Culling|Experimental")
1019 void SetOcclusionPoolSize(int32 newOcclusionPoolSize);
1021 UFUNCTION(BlueprintGetter, Category = "Cesium|Tile Culling|Experimental")
1022 bool GetDelayRefinementForOcclusion()
const {
1023 return DelayRefinementForOcclusion;
1026 UFUNCTION(BlueprintSetter, Category =
"Cesium|Tile Culling|Experimental")
1027 void SetDelayRefinementForOcclusion(
bool bDelayRefinementForOcclusion);
1029 UFUNCTION(BlueprintGetter, Category = "Cesium|Physics")
1030 bool GetCreatePhysicsMeshes()
const {
return CreatePhysicsMeshes; }
1032 UFUNCTION(BlueprintSetter, Category =
"Cesium|Physics")
1033 void SetCreatePhysicsMeshes(
bool bCreatePhysicsMeshes);
1035 UFUNCTION(BlueprintGetter, Category = "Cesium|Navigation")
1036 bool GetCreateNavCollision()
const {
return CreateNavCollision; }
1038 UFUNCTION(BlueprintSetter, Category =
"Cesium|Navigation")
1039 void SetCreateNavCollision(
bool bCreateNavCollision);
1041 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1042 bool GetAlwaysIncludeTangents()
const {
return AlwaysIncludeTangents; }
1044 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1045 void SetAlwaysIncludeTangents(
bool bAlwaysIncludeTangents);
1047 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1048 bool GetGenerateSmoothNormals()
const {
return GenerateSmoothNormals; }
1050 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1051 void SetGenerateSmoothNormals(
bool bGenerateSmoothNormals);
1053 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1054 bool GetEnableWaterMask()
const {
return EnableWaterMask; }
1056 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1057 void SetEnableWaterMask(
bool bEnableMask);
1059 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1060 bool GetIgnoreKhrMaterialsUnlit()
const {
return IgnoreKhrMaterialsUnlit; }
1061 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1062 void SetIgnoreKhrMaterialsUnlit(
bool bIgnoreKhrMaterialsUnlit);
1064 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1065 UMaterialInterface* GetMaterial()
const {
return Material; }
1067 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1068 void SetMaterial(UMaterialInterface* InMaterial);
1070 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1071 UMaterialInterface* GetTranslucentMaterial()
const {
1072 return TranslucentMaterial;
1075 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1076 void SetTranslucentMaterial(UMaterialInterface* InMaterial);
1078 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1079 UMaterialInterface* GetWaterMaterial()
const {
return WaterMaterial; }
1081 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1082 void SetWaterMaterial(UMaterialInterface* InMaterial);
1084 UFUNCTION(BlueprintGetter, Category = "Rendering")
1086 return CustomDepthParameters;
1089 UFUNCTION(BlueprintSetter, Category =
"Rendering")
1092 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1094 return PointCloudShading;
1097 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1100 UFUNCTION(BlueprintCallable, Category = "Cesium|Rendering")
1101 void PlayMovieSequencer();
1103 UFUNCTION(BlueprintCallable, Category = "Cesium|Rendering")
1104 void StopMovieSequencer();
1106 UFUNCTION(BlueprintCallable, Category = "Cesium|Rendering")
1107 void PauseMovieSequencer();
1118 const glm::dmat4& GetCesiumTilesetToUnrealRelativeWorldTransform() const;
1121 return this->_pTileset.Get();
1124 return this->_pTileset.Get();
1127 const std::optional<FCesiumFeaturesMetadataDescription>&
1129 return this->_featuresMetadataDescription;
1134 virtual void Tick(
float DeltaTime)
override;
1138 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
1147 PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override;
1148 virtual void PostEditChangeChainProperty(
1149 FPropertyChangedChainEvent& PropertyChangedChainEvent)
override;
1150 virtual void PostEditUndo()
override;
1151 virtual void PostEditImport()
override;
1152 virtual bool CanEditChange(
const FProperty* InProperty)
const override;
1167 class UPrimitiveComponent* MyComp,
1169 class UPrimitiveComponent* OtherComp,
1171 FVector HitLocation,
1173 FVector NormalImpulse,
1174 const FHitResult& Hit)
override;
1178 void DestroyTileset();
1182 const glm::dmat4& unrealWorldToTileset,
1185 std::vector<FCesiumCamera> GetCameras()
const;
1186 std::vector<FCesiumCamera> GetPlayerCameras()
const;
1187 std::vector<FCesiumCamera> GetSceneCaptures()
const;
1203 UFUNCTION(CallInEditor)
1204 void HandleOnGeoreferenceEllipsoidChanged(
1213 void updateTilesetOptionsFromProperties();
1222 void updateLastViewUpdateResultState(
1232 showTilesToRender(
const std::vector<Cesium3DTilesSelection::Tile*>& tiles);
1239 void AddFocusViewportDelegate();
1242 std::vector<FCesiumCamera> GetEditorCameras()
const;
1253 void OnFocusEditorViewportOnThis();
1255 void RuntimeSettingsChanged(
1257 struct FPropertyChangedEvent& changed);
1261 TUniquePtr<Cesium3DTilesSelection::Tileset> _pTileset;
1263#ifdef CESIUM_DEBUG_TILE_STATES
1264 TUniquePtr<Cesium3DTilesSelection::DebugTileStateDatabase> _pStateDebug;
1267 std::optional<FCesiumFeaturesMetadataDescription>
1268 _featuresMetadataDescription;
1270 PRAGMA_DISABLE_DEPRECATION_WARNINGS
1271 std::optional<FMetadataDescription> _metadataDescription_DEPRECATED;
1272 PRAGMA_ENABLE_DEPRECATION_WARNINGS
1275 uint32_t _lastTilesRendered;
1276 uint32_t _lastWorkerThreadTileLoadQueueLength;
1277 uint32_t _lastMainThreadTileLoadQueueLength;
1279 uint32_t _lastTilesVisited;
1280 uint32_t _lastCulledTilesVisited;
1281 uint32_t _lastTilesCulled;
1282 uint32_t _lastTilesOccluded;
1283 uint32_t _lastTilesWaitingForOcclusionResults;
1284 uint32_t _lastMaxDepthVisited;
1286 std::chrono::high_resolution_clock::time_point _startTime;
1288 bool _captureMovieMode;
1289 bool _beforeMoviePreloadAncestors;
1290 bool _beforeMoviePreloadSiblings;
1291 int32_t _beforeMovieLoadingDescendantLimit;
1292 bool _beforeMovieUseLodTransitions;
1294 bool _scaleUsingDPI;
1308 std::vector<Cesium3DTilesSelection::Tile*> _tilesToHideNextFrame;
1310 int32 _tilesetsBeingDestroyed;
1312 friend class UnrealPrepareRendererResources;
1313 friend class UCesiumGltfPointsComponent;