99#include " Components/ActorComponent.h"
1010#include " CoreMinimal.h"
1111#include " Delegates/Delegate.h"
12- #include " CesiumVectorDocumentRasterOverlay .generated.h"
12+ #include " CesiumGeoJsonDocumentRasterOverlay .generated.h"
1313
1414/* *
1515 * The projection used by a CesiumVectorDocumentRasterOverlay.
1616 */
1717UENUM (BlueprintType)
18- enum class ECesiumVectorDocumentRasterOverlayProjection : uint8 {
18+ enum class ECesiumGeoJsonDocumentRasterOverlayProjection : uint8 {
1919 /* *
2020 * The raster overlay is projected using Web Mercator.
2121 */
@@ -32,20 +32,24 @@ enum class ECesiumVectorDocumentRasterOverlayProjection : uint8 {
3232 * data from.
3333 */
3434UENUM (BlueprintType)
35- enum class ECesiumVectorDocumentRasterOverlaySource : uint8 {
35+ enum class ECesiumGeoJsonDocumentRasterOverlaySource : uint8 {
3636 /* *
37- * The raster overlay will display the provided VectorDocument .
37+ * The raster overlay will display the provided GeoJsonDocument .
3838 */
3939 FromDocument = 0 ,
4040 /* *
41- * The raster overlay will load the VectorDocument from Cesium ion.
41+ * The raster overlay will load a GeoJsonDocument from Cesium ion.
4242 */
43- FromCesiumIon = 1
43+ FromCesiumIon = 1 ,
44+ /* *
45+ * The raster overlay will load a GeoJsonDocument from a URL.
46+ */
47+ FromUrl = 2
4448};
4549
4650DECLARE_DYNAMIC_DELEGATE_RetVal_TwoParams (
4751 bool ,
48- FCesiumVectorDocumentRasterOverlayStyleCallback ,
52+ FCesiumGeoJsonDocumentRasterOverlayStyleCallback ,
4953 FCesiumGeoJsonObject,
5054 InObject,
5155 FCesiumVectorStyle&,
@@ -56,7 +60,7 @@ UCLASS(
5660 BlueprintType,
5761 Blueprintable,
5862 meta = (BlueprintSpawnableComponent))
59- class CESIUMRUNTIME_API UCesiumVectorDocumentRasterOverlay
63+ class CESIUMRUNTIME_API UCesiumGeoJsonDocumentRasterOverlay
6064 : public UCesiumRasterOverlay {
6165 GENERATED_BODY ()
6266
@@ -67,12 +71,12 @@ class CESIUMRUNTIME_API UCesiumVectorDocumentRasterOverlay
6771 * Mercator.
6872 */
6973 UPROPERTY (EditAnywhere, BlueprintReadWrite, Category = " Cesium" )
70- ECesiumVectorDocumentRasterOverlayProjection Projection =
71- ECesiumVectorDocumentRasterOverlayProjection ::WebMercator;
74+ ECesiumGeoJsonDocumentRasterOverlayProjection Projection =
75+ ECesiumGeoJsonDocumentRasterOverlayProjection ::WebMercator;
7276
7377 UPROPERTY (EditAnywhere, BlueprintReadWrite, Category = " Cesium" )
74- ECesiumVectorDocumentRasterOverlaySource Source =
75- ECesiumVectorDocumentRasterOverlaySource ::FromCesiumIon;
78+ ECesiumGeoJsonDocumentRasterOverlaySource Source =
79+ ECesiumGeoJsonDocumentRasterOverlaySource ::FromCesiumIon;
7680
7781 /* *
7882 * The ID of the Cesium ion asset to use.
@@ -83,7 +87,7 @@ class CESIUMRUNTIME_API UCesiumVectorDocumentRasterOverlay
8387 Category = " Cesium" ,
8488 meta =
8589 (EditCondition =
86- " Source == ECesiumVectorDocumentRasterOverlaySource ::FromCesiumIon" ))
90+ " Source == ECesiumGeoJsonDocumentRasterOverlaySource ::FromCesiumIon" ))
8791 int64 IonAssetID;
8892
8993 /* *
@@ -96,30 +100,74 @@ class CESIUMRUNTIME_API UCesiumVectorDocumentRasterOverlay
96100 AdvancedDisplay,
97101 meta =
98102 (EditCondition =
99- " Source == ECesiumVectorDocumentRasterOverlaySource ::FromCesiumIon" ))
103+ " Source == ECesiumGeoJsonDocumentRasterOverlaySource ::FromCesiumIon" ))
100104 UCesiumIonServer* CesiumIonServer;
101105
106+ /* *
107+ * A FCesiumGeoJsonDocument to display.
108+ */
109+ UPROPERTY (
110+ EditAnywhere,
111+ BlueprintReadWrite,
112+ Category = " Cesium" ,
113+ meta =
114+ (EditCondition =
115+ " Source == ECesiumGeoJsonDocumentRasterOverlaySource::FromDocument" ))
116+ FCesiumGeoJsonDocument GeoJsonDocument;
117+
118+ /* *
119+ * A URL to load a GeoJSON document from.
120+ */
121+ UPROPERTY (
122+ EditAnywhere,
123+ BlueprintReadWrite,
124+ Category = " Cesium" ,
125+ meta =
126+ (EditCondition =
127+ " Source == ECesiumGeoJsonDocumentRasterOverlaySource::FromUrl" ))
128+ FString Url;
129+
130+ /* *
131+ * Headers to use while making a request to `Url` to load a GeoJSON document.
132+ */
102133 UPROPERTY (
103134 EditAnywhere,
104135 BlueprintReadWrite,
105136 Category = " Cesium" ,
106137 meta =
107138 (EditCondition =
108- " Source == ECesiumVectorDocumentRasterOverlaySource::FromDocument " ))
109- FCesiumGeoJsonDocument VectorDocument ;
139+ " Source == ECesiumGeoJsonDocumentRasterOverlaySource::FromUrl " ))
140+ TMap<FString, FString> RequestHeaders ;
110141
142+ /* *
143+ * The number of mip levels to generate for each tile of this raster overlay.
144+ *
145+ * Additional mip levels can improve the visual quality of tiles farther from
146+ * the camera at the cost of additional rasterization time to create each mip
147+ * level.
148+ */
111149 UPROPERTY (
112150 EditAnywhere,
113151 BlueprintReadWrite,
114152 Category = " Cesium" ,
115153 meta = (ClampMin = " 0" , ClampMax = " 8" ))
116154 int32 MipLevels = 0 ;
117155
156+ /* *
157+ * The default style to use for this raster overlay.
158+ *
159+ * If no style is set on a GeoJSON object or any of its parents, this style
160+ * will be used instead.
161+ */
118162 UPROPERTY (EditAnywhere, BlueprintReadWrite, Category = " Cesium" )
119163 FCesiumVectorStyle DefaultStyle;
120164
165+ /* *
166+ * A callback that will be called to set the styles of each object in the
167+ * loaded document.
168+ */
121169 UPROPERTY (EditAnywhere, BlueprintReadWrite, Category = " Cesium" )
122- FCesiumVectorDocumentRasterOverlayStyleCallback StyleCallback;
170+ FCesiumGeoJsonDocumentRasterOverlayStyleCallback StyleCallback;
123171
124172protected:
125173 virtual std::unique_ptr<CesiumRasterOverlays::RasterOverlay> CreateOverlay (
0 commit comments