Skip to content

Commit a74da54

Browse files
committed
Prototype popout UI for CesiumFeaturesMetadataComponent
1 parent 3f4e777 commit a74da54

15 files changed

+837
-7
lines changed

Source/CesiumEditor/Private/CesiumEditor.cpp

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
// Copyright 2020-2024 CesiumGS, Inc. and Contributors
22

33
#include "CesiumEditor.h"
4-
#include "Cesium3DTilesSelection/Tileset.h"
54
#include "Cesium3DTileset.h"
65
#include "Cesium3DTilesetCustomization.h"
76
#include "CesiumCartographicPolygon.h"
87
#include "CesiumCommands.h"
8+
#include "CesiumFeaturesMetadataViewer.h"
99
#include "CesiumGeoreferenceCustomization.h"
1010
#include "CesiumGlobeAnchorCustomization.h"
1111
#include "CesiumIonPanel.h"
1212
#include "CesiumIonRasterOverlay.h"
1313
#include "CesiumIonServer.h"
1414
#include "CesiumIonTokenTroubleshooting.h"
15+
#include "CesiumMetadataValueCustomization.h"
1516
#include "CesiumPanel.h"
1617
#include "CesiumRuntime.h"
1718
#include "CesiumSunSky.h"
@@ -29,6 +30,8 @@
2930
#include "Styling/SlateStyle.h"
3031
#include "Styling/SlateStyleRegistry.h"
3132

33+
#include <Cesium3DTilesSelection/Tileset.h>
34+
3235
constexpr int MaximumOverlaysWithDefaultMaterial = 3;
3336

3437
IMPLEMENT_MODULE(FCesiumEditorModule, CesiumEditor)
@@ -115,6 +118,7 @@ void registerDetailCustomization() {
115118
FCesiumGeoreferenceCustomization::Register(PropertyEditorModule);
116119
FCesiumGlobeAnchorCustomization::Register(PropertyEditorModule);
117120
FCesium3DTilesetCustomization::Register(PropertyEditorModule);
121+
FCesiumMetadataValueCustomization::Register(PropertyEditorModule);
118122

119123
PropertyEditorModule.NotifyCustomizationModuleChanged();
120124
}
@@ -131,6 +135,7 @@ void unregisterDetailCustomization() {
131135
FCesiumGeoreferenceCustomization::Unregister(PropertyEditorModule);
132136
FCesiumGlobeAnchorCustomization::Unregister(PropertyEditorModule);
133137
FCesium3DTilesetCustomization::Unregister(PropertyEditorModule);
138+
FCesiumMetadataValueCustomization::Unregister(PropertyEditorModule);
134139
}
135140
}
136141

@@ -364,6 +369,11 @@ void FCesiumEditorModule::StartupModule() {
364369
OnCesiumRasterOverlayIonTroubleshooting.AddRaw(
365370
this,
366371
&FCesiumEditorModule::OnRasterOverlayIonTroubleshooting);
372+
373+
this->_featuresMetadataViewPropertiesSubscription =
374+
OnCesiumFeaturesMetadataViewProperties.AddRaw(
375+
this,
376+
&FCesiumEditorModule::OnFeaturesMetadataViewProperties);
367377
}
368378

369379
void FCesiumEditorModule::ShutdownModule() {
@@ -386,6 +396,12 @@ void FCesiumEditorModule::ShutdownModule() {
386396
this->_rasterOverlayIonTroubleshootingSubscription);
387397
this->_rasterOverlayIonTroubleshootingSubscription.Reset();
388398
}
399+
if (this->_featuresMetadataViewPropertiesSubscription.IsValid()) {
400+
OnCesiumFeaturesMetadataViewProperties.Remove(
401+
this->_featuresMetadataViewPropertiesSubscription);
402+
this->_featuresMetadataViewPropertiesSubscription.Reset();
403+
}
404+
389405
FGlobalTabmanager::Get()->UnregisterNomadTabSpawner(TEXT("Cesium"));
390406
FCesiumCommands::Unregister();
391407
IModuleInterface::ShutdownModule();
@@ -477,6 +493,11 @@ void FCesiumEditorModule::OnRasterOverlayIonTroubleshooting(
477493
CesiumIonTokenTroubleshooting::Open(pOverlay, false);
478494
}
479495

496+
void FCesiumEditorModule::OnFeaturesMetadataViewProperties(
497+
ACesium3DTileset* pTileset) {
498+
CesiumFeaturesMetadataViewer::Open(pTileset);
499+
}
500+
480501
TSharedPtr<FSlateStyleSet> FCesiumEditorModule::GetStyle() { return StyleSet; }
481502

482503
const FName& FCesiumEditorModule::GetStyleSetName() {

Source/CesiumEditor/Private/CesiumEditor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,14 @@ class FCesiumEditorModule : public IModuleInterface {
110110
const FCesiumRasterOverlayLoadFailureDetails& details);
111111
void OnTilesetIonTroubleshooting(ACesium3DTileset* pTileset);
112112
void OnRasterOverlayIonTroubleshooting(UCesiumRasterOverlay* pOverlay);
113+
void OnFeaturesMetadataViewProperties(ACesium3DTileset* pTileset);
113114

114115
CesiumIonServerManager _serverManager;
115116
FDelegateHandle _tilesetLoadFailureSubscription;
116117
FDelegateHandle _rasterOverlayLoadFailureSubscription;
117118
FDelegateHandle _tilesetIonTroubleshootingSubscription;
118119
FDelegateHandle _rasterOverlayIonTroubleshootingSubscription;
120+
FDelegateHandle _featuresMetadataViewPropertiesSubscription;
119121

120122
CesiumEditorSubLevelMutex _subLevelMutex;
121123
CesiumEditorReparentHandler _reparentHandler;

0 commit comments

Comments
 (0)