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,
771 UFUNCTION(CallInEditor, Category = "Cesium")
772 void TroubleshootToken();
785 BlueprintGetter = GetCreatePhysicsMeshes,
786 BlueprintSetter = SetCreatePhysicsMeshes,
787 Category = "Cesium|Physics")
788 bool CreatePhysicsMeshes = true;
800 BlueprintGetter = GetCreateNavCollision,
801 BlueprintSetter = SetCreateNavCollision,
802 Category = "Cesium|Navigation")
803 bool CreateNavCollision = false;
822 BlueprintGetter = GetAlwaysIncludeTangents,
823 BlueprintSetter = SetAlwaysIncludeTangents,
824 Category = "Cesium|Rendering")
825 bool AlwaysIncludeTangents = false;
838 BlueprintGetter = GetGenerateSmoothNormals,
839 BlueprintSetter = SetGenerateSmoothNormals,
840 Category = "Cesium|Rendering")
841 bool GenerateSmoothNormals = false;
851 BlueprintGetter = GetEnableWaterMask,
852 BlueprintSetter = SetEnableWaterMask,
853 Category = "Cesium|Rendering",
854 meta = (EditCondition = "!bIsMac"))
855 bool EnableWaterMask = false;
869 BlueprintGetter = GetIgnoreKhrMaterialsUnlit,
870 BlueprintSetter = SetIgnoreKhrMaterialsUnlit,
871 Category = "Cesium|Rendering",
872 meta = (DisplayName = "Ignore KHR_materials_unlit"))
873 bool IgnoreKhrMaterialsUnlit = false;
885 BlueprintGetter = GetMaterial,
886 BlueprintSetter = SetMaterial,
887 Category = "Cesium|Rendering")
888 UMaterialInterface* Material =
nullptr;
901 BlueprintGetter = GetTranslucentMaterial,
902 BlueprintSetter = SetTranslucentMaterial,
903 Category = "Cesium|Rendering")
904 UMaterialInterface* TranslucentMaterial =
nullptr;
918 BlueprintGetter = GetWaterMaterial,
919 BlueprintSetter = SetWaterMaterial,
920 Category = "Cesium|Rendering")
921 UMaterialInterface* WaterMaterial =
nullptr;
925 BlueprintGetter = GetCustomDepthParameters,
926 BlueprintSetter = SetCustomDepthParameters,
927 Category = "Rendering",
928 meta = (ShowOnlyInnerProperties))
939 BlueprintGetter = GetPointCloudShading,
940 BlueprintSetter = SetPointCloudShading,
941 Category = "Cesium|Rendering")
946 FString PlatformName;
948#if WITH_EDITORONLY_DATA
954 UFUNCTION(BlueprintGetter, Category =
"Cesium")
955 float GetLoadProgress()
const {
return LoadProgress; }
957 UFUNCTION(BlueprintGetter, Category =
"Cesium")
958 bool GetUseLodTransitions()
const {
return UseLodTransitions; }
960 UFUNCTION(BlueprintSetter, Category =
"Cesium")
961 void SetUseLodTransitions(
bool InUseLodTransitions);
963 UFUNCTION(BlueprintGetter, Category = "Cesium")
966 UFUNCTION(BlueprintSetter, Category =
"Cesium")
969 UFUNCTION(BlueprintGetter, Category = "Cesium")
970 FString GetUrl()
const {
return Url; }
972 UFUNCTION(BlueprintSetter, Category =
"Cesium")
973 void SetUrl(const FString& InUrl);
975 UFUNCTION(BlueprintGetter, Category = "Cesium")
976 int64 GetIonAssetID()
const {
return IonAssetID; }
978 UFUNCTION(BlueprintSetter, Category =
"Cesium")
979 void SetIonAssetID(int64 InAssetID);
981 UFUNCTION(BlueprintGetter, Category = "Cesium")
982 FString GetIonAccessToken()
const {
return IonAccessToken; }
984 UFUNCTION(BlueprintSetter, Category =
"Cesium")
985 void SetIonAccessToken(const FString& InAccessToken);
987 UFUNCTION(BlueprintGetter, Category = "Cesium")
990 UFUNCTION(BlueprintSetter, Category =
"Cesium")
993 UFUNCTION(BlueprintGetter, Category = "Cesium")
994 double GetMaximumScreenSpaceError() {
return MaximumScreenSpaceError; }
996 UFUNCTION(BlueprintSetter, Category =
"Cesium")
997 void SetMaximumScreenSpaceError(
double InMaximumScreenSpaceError);
999 UFUNCTION(BlueprintGetter, Category = "Cesium|Tile Culling|Experimental")
1000 bool GetEnableOcclusionCulling() const;
1002 UFUNCTION(BlueprintSetter, Category = "Cesium|Tile Culling|Experimental")
1003 void SetEnableOcclusionCulling(
bool bEnableOcclusionCulling);
1005 UFUNCTION(BlueprintGetter, Category = "Cesium|Tile Culling|Experimental")
1006 int32 GetOcclusionPoolSize()
const {
return OcclusionPoolSize; }
1008 UFUNCTION(BlueprintSetter, Category =
"Cesium|Tile Culling|Experimental")
1009 void SetOcclusionPoolSize(int32 newOcclusionPoolSize);
1011 UFUNCTION(BlueprintGetter, Category = "Cesium|Tile Culling|Experimental")
1012 bool GetDelayRefinementForOcclusion()
const {
1013 return DelayRefinementForOcclusion;
1016 UFUNCTION(BlueprintSetter, Category =
"Cesium|Tile Culling|Experimental")
1017 void SetDelayRefinementForOcclusion(
bool bDelayRefinementForOcclusion);
1019 UFUNCTION(BlueprintGetter, Category = "Cesium|Physics")
1020 bool GetCreatePhysicsMeshes()
const {
return CreatePhysicsMeshes; }
1022 UFUNCTION(BlueprintSetter, Category =
"Cesium|Physics")
1023 void SetCreatePhysicsMeshes(
bool bCreatePhysicsMeshes);
1025 UFUNCTION(BlueprintGetter, Category = "Cesium|Navigation")
1026 bool GetCreateNavCollision()
const {
return CreateNavCollision; }
1028 UFUNCTION(BlueprintSetter, Category =
"Cesium|Navigation")
1029 void SetCreateNavCollision(
bool bCreateNavCollision);
1031 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1032 bool GetAlwaysIncludeTangents()
const {
return AlwaysIncludeTangents; }
1034 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1035 void SetAlwaysIncludeTangents(
bool bAlwaysIncludeTangents);
1037 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1038 bool GetGenerateSmoothNormals()
const {
return GenerateSmoothNormals; }
1040 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1041 void SetGenerateSmoothNormals(
bool bGenerateSmoothNormals);
1043 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1044 bool GetEnableWaterMask()
const {
return EnableWaterMask; }
1046 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1047 void SetEnableWaterMask(
bool bEnableMask);
1049 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1050 bool GetIgnoreKhrMaterialsUnlit()
const {
return IgnoreKhrMaterialsUnlit; }
1051 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1052 void SetIgnoreKhrMaterialsUnlit(
bool bIgnoreKhrMaterialsUnlit);
1054 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1055 UMaterialInterface* GetMaterial()
const {
return Material; }
1057 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1058 void SetMaterial(UMaterialInterface* InMaterial);
1060 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1061 UMaterialInterface* GetTranslucentMaterial()
const {
1062 return TranslucentMaterial;
1065 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1066 void SetTranslucentMaterial(UMaterialInterface* InMaterial);
1068 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1069 UMaterialInterface* GetWaterMaterial()
const {
return WaterMaterial; }
1071 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1072 void SetWaterMaterial(UMaterialInterface* InMaterial);
1074 UFUNCTION(BlueprintGetter, Category = "Rendering")
1076 return CustomDepthParameters;
1079 UFUNCTION(BlueprintSetter, Category =
"Rendering")
1082 UFUNCTION(BlueprintGetter, Category = "Cesium|Rendering")
1084 return PointCloudShading;
1087 UFUNCTION(BlueprintSetter, Category =
"Cesium|Rendering")
1090 UFUNCTION(BlueprintCallable, Category = "Cesium|Rendering")
1091 void PlayMovieSequencer();
1093 UFUNCTION(BlueprintCallable, Category = "Cesium|Rendering")
1094 void StopMovieSequencer();
1096 UFUNCTION(BlueprintCallable, Category = "Cesium|Rendering")
1097 void PauseMovieSequencer();
1108 const glm::dmat4& GetCesiumTilesetToUnrealRelativeWorldTransform() const;
1111 return this->_pTileset.Get();
1114 return this->_pTileset.Get();
1117 const std::optional<FCesiumFeaturesMetadataDescription>&
1119 return this->_featuresMetadataDescription;
1124 virtual void Tick(
float DeltaTime)
override;
1128 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
1137 PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override;
1138 virtual void PostEditChangeChainProperty(
1139 FPropertyChangedChainEvent& PropertyChangedChainEvent)
override;
1140 virtual void PostEditUndo()
override;
1141 virtual void PostEditImport()
override;
1156 class UPrimitiveComponent* MyComp,
1158 class UPrimitiveComponent* OtherComp,
1160 FVector HitLocation,
1162 FVector NormalImpulse,
1163 const FHitResult& Hit)
override;
1167 void DestroyTileset();
1171 const glm::dmat4& unrealWorldToTileset,
1174 std::vector<FCesiumCamera> GetCameras()
const;
1175 std::vector<FCesiumCamera> GetPlayerCameras()
const;
1176 std::vector<FCesiumCamera> GetSceneCaptures()
const;
1192 UFUNCTION(CallInEditor)
1193 void HandleOnGeoreferenceEllipsoidChanged(
1202 void updateTilesetOptionsFromProperties();
1211 void updateLastViewUpdateResultState(
1221 showTilesToRender(
const std::vector<Cesium3DTilesSelection::Tile*>& tiles);
1228 void AddFocusViewportDelegate();
1231 std::vector<FCesiumCamera> GetEditorCameras()
const;
1242 void OnFocusEditorViewportOnThis();
1244 void RuntimeSettingsChanged(
1246 struct FPropertyChangedEvent& changed);
1250 TUniquePtr<Cesium3DTilesSelection::Tileset> _pTileset;
1252#ifdef CESIUM_DEBUG_TILE_STATES
1253 TUniquePtr<Cesium3DTilesSelection::DebugTileStateDatabase> _pStateDebug;
1256 std::optional<FCesiumFeaturesMetadataDescription>
1257 _featuresMetadataDescription;
1259 PRAGMA_DISABLE_DEPRECATION_WARNINGS
1260 std::optional<FMetadataDescription> _metadataDescription_DEPRECATED;
1261 PRAGMA_ENABLE_DEPRECATION_WARNINGS
1264 uint32_t _lastTilesRendered;
1265 uint32_t _lastWorkerThreadTileLoadQueueLength;
1266 uint32_t _lastMainThreadTileLoadQueueLength;
1268 uint32_t _lastTilesVisited;
1269 uint32_t _lastCulledTilesVisited;
1270 uint32_t _lastTilesCulled;
1271 uint32_t _lastTilesOccluded;
1272 uint32_t _lastTilesWaitingForOcclusionResults;
1273 uint32_t _lastMaxDepthVisited;
1275 std::chrono::high_resolution_clock::time_point _startTime;
1277 bool _captureMovieMode;
1278 bool _beforeMoviePreloadAncestors;
1279 bool _beforeMoviePreloadSiblings;
1280 int32_t _beforeMovieLoadingDescendantLimit;
1281 bool _beforeMovieUseLodTransitions;
1283 bool _scaleUsingDPI;
1297 std::vector<Cesium3DTilesSelection::Tile*> _tilesToHideNextFrame;
1299 int32 _tilesetsBeingDestroyed;
1301 friend class UnrealResourcePreparer;
1302 friend class UCesiumGltfPointsComponent;