|
6 | 6 | #include "Camera/CameraTypes.h" |
7 | 7 | #include "Camera/PlayerCameraManager.h" |
8 | 8 | #include "Cesium3DTilesSelection/EllipsoidTilesetLoader.h" |
| 9 | +#include "Cesium3DTilesSelection/GltfModifier.h" |
9 | 10 | #include "Cesium3DTilesSelection/Tile.h" |
10 | 11 | #include "Cesium3DTilesSelection/TilesetLoadFailureDetails.h" |
11 | 12 | #include "Cesium3DTilesSelection/TilesetOptions.h" |
@@ -86,23 +87,32 @@ ACesium3DTileset::ACesium3DTileset() |
86 | 87 | _pStateDebug(nullptr), |
87 | 88 | #endif |
88 | 89 |
|
| 90 | + _featuresMetadataDescription(), |
| 91 | + _metadataDescription_DEPRECATED(), |
| 92 | + |
89 | 93 | _lastTilesRendered(0), |
90 | 94 | _lastWorkerThreadTileLoadQueueLength(0), |
91 | 95 | _lastMainThreadTileLoadQueueLength(0), |
92 | 96 |
|
93 | 97 | _lastTilesVisited(0), |
| 98 | + _lastCulledTilesVisited(0), |
94 | 99 | _lastTilesCulled(0), |
95 | 100 | _lastTilesOccluded(0), |
96 | 101 | _lastTilesWaitingForOcclusionResults(0), |
97 | 102 | _lastMaxDepthVisited(0), |
98 | 103 |
|
99 | | - _captureMovieMode{false}, |
100 | | - _beforeMoviePreloadAncestors{PreloadAncestors}, |
101 | | - _beforeMoviePreloadSiblings{PreloadSiblings}, |
102 | | - _beforeMovieLoadingDescendantLimit{LoadingDescendantLimit}, |
103 | | - _beforeMovieUseLodTransitions{true}, |
| 104 | + _captureMovieMode(false), |
| 105 | + _beforeMoviePreloadAncestors(PreloadAncestors), |
| 106 | + _beforeMoviePreloadSiblings(PreloadSiblings), |
| 107 | + _beforeMovieLoadingDescendantLimit(LoadingDescendantLimit), |
| 108 | + _beforeMovieUseLodTransitions(true), |
| 109 | + |
| 110 | + _scaleUsingDPI(false), |
| 111 | + _tilesToHideNextFrame(), |
104 | 112 |
|
105 | | - _tilesetsBeingDestroyed(0) { |
| 113 | + _tilesetsBeingDestroyed(0), |
| 114 | + _pGltfModifier(nullptr), |
| 115 | + _pLifecycleEventReceiver(nullptr) { |
106 | 116 | PrimaryActorTick.bCanEverTick = true; |
107 | 117 | PrimaryActorTick.TickGroup = ETickingGroup::TG_PostUpdateWork; |
108 | 118 |
|
@@ -996,7 +1006,9 @@ void ACesium3DTileset::LoadTileset() { |
996 | 1006 | ->EnableExperimentalOcclusionCullingFeature && |
997 | 1007 | this->EnableOcclusionCulling && this->BoundingVolumePoolComponent) |
998 | 1008 | ? this->BoundingVolumePoolComponent->getPool() |
999 | | - : nullptr}; |
| 1009 | + : nullptr, |
| 1010 | + Cesium3DTilesSelection::TilesetSharedAssetSystem::getDefault(), |
| 1011 | + this->_pGltfModifier}; |
1000 | 1012 |
|
1001 | 1013 | this->_startTime = std::chrono::high_resolution_clock::now(); |
1002 | 1014 |
|
@@ -2320,15 +2332,28 @@ void ACesium3DTileset::RuntimeSettingsChanged( |
2320 | 2332 | } |
2321 | 2333 | #endif |
2322 | 2334 |
|
| 2335 | +const std::shared_ptr<Cesium3DTilesSelection::GltfModifier>& |
| 2336 | +ACesium3DTileset::GetGltfModifier() const { |
| 2337 | + return this->_pGltfModifier; |
| 2338 | +} |
| 2339 | + |
| 2340 | +void ACesium3DTileset::SetGltfModifier( |
| 2341 | + const std::shared_ptr<Cesium3DTilesSelection::GltfModifier>& Modifier) { |
| 2342 | + if (Modifier != this->_pGltfModifier) { |
| 2343 | + this->_pGltfModifier = Modifier; |
| 2344 | + this->RefreshTileset(); |
| 2345 | + } |
| 2346 | +} |
| 2347 | + |
2323 | 2348 | ICesium3DTilesetLifecycleEventReceiver* |
2324 | 2349 | ACesium3DTileset::GetLifecycleEventReceiver() { |
2325 | 2350 | return Cast<ICesium3DTilesetLifecycleEventReceiver>( |
2326 | 2351 | this->_pLifecycleEventReceiver); |
2327 | 2352 | } |
2328 | 2353 |
|
2329 | | -void ACesium3DTileset::SetLifecycleEventReceiver(UObject* InEventReceiver) { |
| 2354 | +void ACesium3DTileset::SetLifecycleEventReceiver(UObject* EventReceiver) { |
2330 | 2355 | if (UKismetSystemLibrary::DoesImplementInterface( |
2331 | | - InEventReceiver, |
| 2356 | + EventReceiver, |
2332 | 2357 | UCesium3DTilesetLifecycleEventReceiver::StaticClass())) |
2333 | | - this->_pLifecycleEventReceiver = InEventReceiver; |
| 2358 | + this->_pLifecycleEventReceiver = EventReceiver; |
2334 | 2359 | } |
0 commit comments