@openglobus/og 0.17.2 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -46
- package/dist/@openglobus/og.esm.js +1 -20
- package/dist/@openglobus/og.esm.js.map +1 -1
- package/dist/@openglobus/og.umd.js +1 -20
- package/dist/@openglobus/og.umd.js.map +1 -1
- package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
- package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
- package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
- package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
- package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
- package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
- package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
- package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
- package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
- package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
- package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/arial.json +4321 -0
- package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
- package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
- package/dist/@openglobus/res/night-4326.png +0 -0
- package/dist/@openglobus/res/night.png +0 -0
- package/dist/@openglobus/res/spec.png +0 -0
- package/package.json +25 -23
- package/src/{og/Clock.js → Clock.ts} +100 -78
- package/src/Deferred.ts +17 -0
- package/src/Events.ts +200 -0
- package/src/{og/Extent.js → Extent.ts} +324 -352
- package/src/Globe.ts +363 -0
- package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
- package/src/Lock.ts +41 -0
- package/src/{og/LonLat.js → LonLat.ts} +50 -47
- package/src/{og/Object3d.js → Object3d.ts} +89 -55
- package/src/Popup.ts +228 -0
- package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
- package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
- package/src/Stack.ts +58 -0
- package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
- package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
- package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
- package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
- package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
- package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
- package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
- package/src/bv/index.ts +4 -0
- package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
- package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
- package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +246 -182
- package/src/camera/index.ts +4 -0
- package/src/{og/cons.js → cons.ts} +14 -18
- package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
- package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
- package/src/{og/control/Control.js → control/Control.ts} +76 -70
- package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
- package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
- package/src/control/EarthCoordinates.ts +222 -0
- package/src/control/EarthNavigation.ts +293 -0
- package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
- package/src/control/KeyboardNavigation.ts +168 -0
- package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
- package/src/control/LayerSwitcher.ts +76 -0
- package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
- package/src/control/MouseNavigation.ts +468 -0
- package/src/control/MouseWheelZoomControl.ts +269 -0
- package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
- package/src/control/ScaleControl.ts +131 -0
- package/src/control/SegmentBoundVisualization.ts +50 -0
- package/src/control/ShowFps.ts +28 -0
- package/src/control/SimpleNavigation.ts +118 -0
- package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
- package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
- package/src/control/ToggleWireframe.ts +35 -0
- package/src/control/TouchNavigation.ts +368 -0
- package/src/control/ZoomControl.ts +111 -0
- package/src/control/drawing/DrawingControl.ts +45 -0
- package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
- package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
- package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
- package/src/control/heightRuler/HeightRuler.ts +16 -0
- package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
- package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
- package/src/control/index.ts +45 -0
- package/src/control/ruler/Ruler.ts +35 -0
- package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
- package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
- package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
- package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
- package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
- package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
- package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
- package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
- package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
- package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
- package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
- package/src/ellipsoid/index.ts +4 -0
- package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
- package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
- package/src/entity/BaseBillboardHandler.ts +772 -0
- package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
- package/src/entity/BillboardHandler.ts +135 -0
- package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
- package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
- package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
- package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
- package/src/entity/Geometry.ts +486 -0
- package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
- package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
- package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
- package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
- package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
- package/src/entity/PointCloudHandler.ts +125 -0
- package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
- package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
- package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
- package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
- package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
- package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
- package/src/entity/index.ts +12 -0
- package/src/index.ts +173 -0
- package/src/input/KeyboardHandler.ts +196 -0
- package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
- package/src/input/TouchHandler.ts +54 -0
- package/src/{og/input/input.js → input/input.ts} +1 -3
- package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
- package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
- package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
- package/src/layer/GeoTexture2d.ts +56 -0
- package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
- package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
- package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
- package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
- package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
- package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
- package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
- package/src/layer/index.ts +12 -0
- package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
- package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
- package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
- package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
- package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
- package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
- package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
- package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
- package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
- package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
- package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
- package/src/{og/math/coder.js → math/coder.ts} +30 -27
- package/src/math/index.ts +26 -0
- package/src/{og/math.js → math.ts} +46 -49
- package/src/{og/mercator.js → mercator.ts} +143 -149
- package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
- package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
- package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
- package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
- package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
- package/src/quadTree/EntityCollectionNode.ts +395 -0
- package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
- package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
- package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
- package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
- package/src/quadTree/index.ts +14 -0
- package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
- package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
- package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -256
- package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
- package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
- package/src/{og/scene/Planet.js → scene/Planet.ts} +776 -592
- package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
- package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
- package/src/scene/index.ts +6 -0
- package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
- package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
- package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
- package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
- package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
- package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
- package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
- package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
- package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
- package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
- package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
- package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
- package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
- package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
- package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
- package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
- package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
- package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
- package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
- package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
- package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
- package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
- package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
- package/src/terrain/EmptyTerrain.ts +230 -0
- package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
- package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
- package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
- package/src/terrain/index.ts +6 -0
- package/src/ui/Button.ts +121 -0
- package/src/ui/ButtonGroup.ts +63 -0
- package/src/ui/Dialog.ts +244 -0
- package/src/ui/Slider.ts +188 -0
- package/src/ui/ToggleButton.ts +68 -0
- package/src/{og/ui/View.js → ui/View.ts} +66 -59
- package/src/utils/BaseWorker.ts +60 -0
- package/src/utils/FontAtlas.ts +356 -0
- package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
- package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
- package/src/utils/Loader.ts +247 -0
- package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
- package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
- package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
- package/src/utils/TextureAtlas.ts +322 -0
- package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
- package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
- package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
- package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
- package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
- package/src/utils/units.ts +78 -0
- package/src/webgl/BaseFramebuffer.ts +125 -0
- package/src/webgl/Framebuffer.ts +206 -0
- package/src/webgl/Handler.ts +1414 -0
- package/src/webgl/Multisample.ts +153 -0
- package/src/webgl/Program.ts +451 -0
- package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
- package/src/webgl/index.ts +13 -0
- package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
- package/src/webgl/variableHandlers.ts +114 -0
- package/src/og/Deferred.js +0 -11
- package/src/og/Events.js +0 -185
- package/src/og/Globe.js +0 -342
- package/src/og/Lock.js +0 -44
- package/src/og/Popup.js +0 -187
- package/src/og/Stack.js +0 -49
- package/src/og/bv/index.js +0 -4
- package/src/og/camera/index.js +0 -4
- package/src/og/control/EarthCoordinates.js +0 -214
- package/src/og/control/EarthNavigation.js +0 -258
- package/src/og/control/KeyboardNavigation.js +0 -172
- package/src/og/control/LayerSwitcher.js +0 -424
- package/src/og/control/MouseNavigation.js +0 -436
- package/src/og/control/MouseWheelZoomControl.js +0 -253
- package/src/og/control/ScaleControl.js +0 -119
- package/src/og/control/SegmentBoundVisualization.js +0 -54
- package/src/og/control/ShowFps.js +0 -40
- package/src/og/control/SimpleNavigation.js +0 -123
- package/src/og/control/ToggleWireframe.js +0 -35
- package/src/og/control/TouchNavigation.js +0 -350
- package/src/og/control/ZoomControl.js +0 -115
- package/src/og/control/drawing/DrawingControl.js +0 -51
- package/src/og/control/heightRuler/HeightRuler.js +0 -12
- package/src/og/control/index.js +0 -56
- package/src/og/control/ruler/Ruler.js +0 -39
- package/src/og/ellipsoid/index.js +0 -4
- package/src/og/entity/BillboardHandler.js +0 -883
- package/src/og/entity/Geometry.js +0 -320
- package/src/og/entity/PointCloudHandler.js +0 -122
- package/src/og/entity/index.js +0 -9
- package/src/og/index.js +0 -112
- package/src/og/input/KeyboardHandler.js +0 -195
- package/src/og/input/TouchHandler.js +0 -59
- package/src/og/layer/GeoTexture2d.js +0 -50
- package/src/og/layer/index.js +0 -11
- package/src/og/math/index.js +0 -23
- package/src/og/quadTree/EntityCollectionNode.js +0 -391
- package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
- package/src/og/quadTree/index.js +0 -14
- package/src/og/res/images.js +0 -8
- package/src/og/scene/index.js +0 -5
- package/src/og/terrain/EmptyTerrain.js +0 -174
- package/src/og/terrain/index.js +0 -6
- package/src/og/ui/Button.js +0 -107
- package/src/og/ui/ButtonGroup.js +0 -57
- package/src/og/ui/Dialog.js +0 -239
- package/src/og/ui/Slider.js +0 -170
- package/src/og/ui/ToggleButton.js +0 -51
- package/src/og/ui/UIhelpers.js +0 -155
- package/src/og/utils/BaseWorker.js +0 -46
- package/src/og/utils/FontAtlas.js +0 -218
- package/src/og/utils/Loader.js +0 -188
- package/src/og/utils/TextureAtlas.js +0 -291
- package/src/og/utils/functionComposition.js +0 -13
- package/src/og/utils/units.js +0 -78
- package/src/og/webgl/Framebuffer.js +0 -311
- package/src/og/webgl/Handler.js +0 -1170
- package/src/og/webgl/Multisample.js +0 -275
- package/src/og/webgl/Program.js +0 -407
- package/src/og/webgl/callbacks.js +0 -98
- package/src/og/webgl/index.js +0 -13
- package/src/og.jsdoc +0 -3
- package/types/Clock.d.ts +0 -99
- package/types/Deferred.d.ts +0 -6
- package/types/Events.d.ts +0 -78
- package/types/Extent.d.ts +0 -166
- package/types/Globe.d.ts +0 -108
- package/types/ImageCanvas.d.ts +0 -128
- package/types/Lock.d.ts +0 -12
- package/types/LonLat.d.ts +0 -127
- package/types/Object3d.d.ts +0 -35
- package/types/Popup.d.ts +0 -29
- package/types/QueueArray.d.ts +0 -19
- package/types/Rectangle.d.ts +0 -80
- package/types/Stack.d.ts +0 -19
- package/types/arial.d.ts +0 -49
- package/types/astro/astro.d.ts +0 -38
- package/types/astro/earth.d.ts +0 -7
- package/types/astro/jd.d.ts +0 -254
- package/types/bv/Box.d.ts +0 -30
- package/types/bv/Sphere.d.ts +0 -38
- package/types/bv/index.d.ts +0 -3
- package/types/camera/Camera.d.ts +0 -314
- package/types/camera/Frustum.d.ts +0 -133
- package/types/camera/PlanetCamera.d.ts +0 -219
- package/types/camera/index.d.ts +0 -3
- package/types/cons.d.ts +0 -40
- package/types/control/Atmosphere.d.ts +0 -15
- package/types/control/CompassButton.d.ts +0 -16
- package/types/control/Control.d.ts +0 -104
- package/types/control/DebugInfo.d.ts +0 -19
- package/types/control/DrawingSwitcher.d.ts +0 -13
- package/types/control/EarthCoordinates.d.ts +0 -44
- package/types/control/EarthNavigation.d.ts +0 -43
- package/types/control/GeoImageDragControl.d.ts +0 -14
- package/types/control/KeyboardNavigation.d.ts +0 -24
- package/types/control/LayerAnimation.d.ts +0 -73
- package/types/control/LayerSwitcher.d.ts +0 -64
- package/types/control/Lighting.d.ts +0 -41
- package/types/control/MouseNavigation.d.ts +0 -49
- package/types/control/MouseWheelZoomControl.d.ts +0 -46
- package/types/control/ScaleControl.d.ts +0 -23
- package/types/control/ShowFps.d.ts +0 -11
- package/types/control/SimpleNavigation.d.ts +0 -26
- package/types/control/SimpleSkyBackground.d.ts +0 -15
- package/types/control/Sun.d.ts +0 -53
- package/types/control/ToggleWireframe.d.ts +0 -12
- package/types/control/TouchNavigation.d.ts +0 -54
- package/types/control/ZoomControl.d.ts +0 -26
- package/types/control/drawing/DrawingControl.d.ts +0 -14
- package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
- package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
- package/types/control/heightRuler/HeightRuler.d.ts +0 -6
- package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
- package/types/control/index.d.ts +0 -27
- package/types/control/ruler/Ruler.d.ts +0 -13
- package/types/control/ruler/RulerScene.d.ts +0 -51
- package/types/control/selection/Selection.d.ts +0 -49
- package/types/control/selection/SelectionScene.d.ts +0 -32
- package/types/control/timeline/TimelineControl.d.ts +0 -10
- package/types/control/timeline/TimelineModel.d.ts +0 -33
- package/types/control/timeline/TimelineView.d.ts +0 -57
- package/types/control/timeline/timelineUtils.d.ts +0 -9
- package/types/ellipsoid/Ellipsoid.d.ts +0 -170
- package/types/ellipsoid/index.d.ts +0 -3
- package/types/ellipsoid/wgs84.d.ts +0 -6
- package/types/entity/BaseBillboard.d.ts +0 -215
- package/types/entity/Billboard.d.ts +0 -94
- package/types/entity/BillboardHandler.d.ts +0 -75
- package/types/entity/Entity.d.ts +0 -340
- package/types/entity/EntityCollection.d.ts +0 -303
- package/types/entity/GeoObject.d.ts +0 -117
- package/types/entity/GeoObjectHandler.d.ts +0 -41
- package/types/entity/Geometry.d.ts +0 -79
- package/types/entity/GeometryHandler.d.ts +0 -76
- package/types/entity/Label.d.ts +0 -190
- package/types/entity/LabelHandler.d.ts +0 -31
- package/types/entity/LabelWorker.d.ts +0 -9
- package/types/entity/PointCloud.d.ts +0 -174
- package/types/entity/PointCloudHandler.d.ts +0 -38
- package/types/entity/Polyline.d.ts +0 -307
- package/types/entity/PolylineHandler.d.ts +0 -18
- package/types/entity/Ray.d.ts +0 -122
- package/types/entity/RayHandler.d.ts +0 -63
- package/types/entity/Strip.d.ts +0 -119
- package/types/entity/StripHandler.d.ts +0 -38
- package/types/entity/index.d.ts +0 -8
- package/types/index.d.ts +0 -53
- package/types/input/KeyboardHandler.d.ts +0 -17
- package/types/input/MouseHandler.d.ts +0 -5
- package/types/input/TouchHandler.d.ts +0 -5
- package/types/input/input.d.ts +0 -42
- package/types/layer/BaseGeoImage.d.ts +0 -116
- package/types/layer/CanvasTiles.d.ts +0 -73
- package/types/layer/GeoImage.d.ts +0 -51
- package/types/layer/GeoTexture2d.d.ts +0 -7
- package/types/layer/GeoVideo.d.ts +0 -47
- package/types/layer/KML.d.ts +0 -93
- package/types/layer/Layer.d.ts +0 -320
- package/types/layer/Material.d.ts +0 -45
- package/types/layer/Vector.d.ts +0 -211
- package/types/layer/WMS.d.ts +0 -66
- package/types/layer/XYZ.d.ts +0 -122
- package/types/layer/index.d.ts +0 -10
- package/types/light/LightSource.d.ts +0 -178
- package/types/math/Line2.d.ts +0 -11
- package/types/math/Line3.d.ts +0 -10
- package/types/math/Mat3.d.ts +0 -65
- package/types/math/Mat4.d.ts +0 -176
- package/types/math/Plane.d.ts +0 -18
- package/types/math/Quat.d.ts +0 -379
- package/types/math/Ray.d.ts +0 -82
- package/types/math/Vec2.d.ts +0 -309
- package/types/math/Vec3.d.ts +0 -472
- package/types/math/Vec4.d.ts +0 -161
- package/types/math/coder.d.ts +0 -43
- package/types/math/index.d.ts +0 -11
- package/types/math.d.ts +0 -268
- package/types/mercator.d.ts +0 -92
- package/types/proj/EPSG3857.d.ts +0 -6
- package/types/proj/EPSG4326.d.ts +0 -6
- package/types/proj/Proj.d.ts +0 -42
- package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/EntityCollectionNode.d.ts +0 -41
- package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/Node.d.ts +0 -58
- package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
- package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/index.d.ts +0 -12
- package/types/quadTree/quadTree.d.ts +0 -40
- package/types/renderer/Renderer.d.ts +0 -291
- package/types/renderer/RendererEvents.d.ts +0 -241
- package/types/res/images.d.ts +0 -2
- package/types/scene/Axes.d.ts +0 -10
- package/types/scene/BaseNode.d.ts +0 -60
- package/types/scene/Planet.d.ts +0 -594
- package/types/scene/RenderNode.d.ts +0 -152
- package/types/scene/SkyBox.d.ts +0 -9
- package/types/scene/index.d.ts +0 -4
- package/types/segment/Segment.d.ts +0 -273
- package/types/segment/SegmentLonLat.d.ts +0 -22
- package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
- package/types/segment/Slice.d.ts +0 -10
- package/types/segment/segmentHelper.d.ts +0 -13
- package/types/shaders/atmos.d.ts +0 -4
- package/types/shaders/billboard.d.ts +0 -3
- package/types/shaders/depth.d.ts +0 -2
- package/types/shaders/drawnode.d.ts +0 -8
- package/types/shaders/geoObject.d.ts +0 -3
- package/types/shaders/label.d.ts +0 -4
- package/types/shaders/pickingMask.d.ts +0 -2
- package/types/shaders/pointCloud.d.ts +0 -2
- package/types/shaders/polyline.d.ts +0 -3
- package/types/shaders/ray.d.ts +0 -2
- package/types/shaders/screenFrame.d.ts +0 -2
- package/types/shaders/skybox.d.ts +0 -2
- package/types/shaders/toneMapping.d.ts +0 -2
- package/types/shaders/utils.d.ts +0 -1
- package/types/terrain/BilTerrain.d.ts +0 -14
- package/types/terrain/EmptyTerrain.d.ts +0 -87
- package/types/terrain/Geoid.d.ts +0 -17
- package/types/terrain/GlobusTerrain.d.ts +0 -122
- package/types/terrain/MapboxTerrain.d.ts +0 -14
- package/types/terrain/index.d.ts +0 -5
- package/types/ui/Button.d.ts +0 -21
- package/types/ui/ButtonGroup.d.ts +0 -12
- package/types/ui/Dialog.d.ts +0 -41
- package/types/ui/Slider.d.ts +0 -33
- package/types/ui/ToggleButton.d.ts +0 -10
- package/types/ui/UIhelpers.d.ts +0 -13
- package/types/ui/View.d.ts +0 -33
- package/types/ui/icons.d.ts +0 -1
- package/types/utils/BaseWorker.d.ts +0 -14
- package/types/utils/FontAtlas.d.ts +0 -16
- package/types/utils/GeoImageCreator.d.ts +0 -30
- package/types/utils/ImagesCacheManager.d.ts +0 -10
- package/types/utils/Loader.d.ts +0 -31
- package/types/utils/NormalMapCreator.d.ts +0 -39
- package/types/utils/PlainSegmentWorker.d.ts +0 -8
- package/types/utils/TerrainWorker.d.ts +0 -7
- package/types/utils/TextureAtlas.d.ts +0 -113
- package/types/utils/VectorTileCreator.d.ts +0 -14
- package/types/utils/colorTable.d.ts +0 -143
- package/types/utils/earcut.d.ts +0 -6
- package/types/utils/functionComposition.d.ts +0 -5
- package/types/utils/objParser.d.ts +0 -8
- package/types/utils/shared.d.ts +0 -241
- package/types/utils/units.d.ts +0 -20
- package/types/webgl/Framebuffer.d.ts +0 -134
- package/types/webgl/Handler.d.ts +0 -403
- package/types/webgl/Multisample.d.ts +0 -91
- package/types/webgl/Program.d.ts +0 -163
- package/types/webgl/ProgramController.d.ts +0 -89
- package/types/webgl/callbacks.d.ts +0 -1
- package/types/webgl/index.d.ts +0 -6
- package/types/webgl/types.d.ts +0 -2
- /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
- /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
|
@@ -1,60 +1,90 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
// import { QueueArray } from '../QueueArray
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*/
|
|
25
|
-
"load",
|
|
1
|
+
import * as mercator from "../mercator";
|
|
2
|
+
import {createEvents, EventsHandler} from "../Events";
|
|
3
|
+
import {createExtent, stringTemplate, TypedArray} from "../utils/shared";
|
|
4
|
+
import {EPSG3857} from "../proj/EPSG3857";
|
|
5
|
+
import {EmptyTerrain, IEmptyTerrainParams} from "./EmptyTerrain";
|
|
6
|
+
import {Extent} from "../Extent";
|
|
7
|
+
import {Layer} from "../layer/Layer";
|
|
8
|
+
import {IResponse, Loader} from "../utils/Loader";
|
|
9
|
+
import {LonLat} from "../LonLat";
|
|
10
|
+
import {NOTRENDERING} from "../quadTree/quadTree";
|
|
11
|
+
import {Segment} from "../segment/Segment";
|
|
12
|
+
// import { QueueArray } from '../QueueArray';
|
|
13
|
+
import {Ray} from "../math/Ray";
|
|
14
|
+
import {Vec3} from "../math/Vec3";
|
|
15
|
+
|
|
16
|
+
export interface IGlobusTerrainParams extends IEmptyTerrainParams {
|
|
17
|
+
subdomains?: string[];
|
|
18
|
+
url?: string;
|
|
19
|
+
extent?: Extent | [[number, number], [number, number]];
|
|
20
|
+
urlRewrite?: UrlRewriteFunc;
|
|
21
|
+
noDataValues?: number[];
|
|
22
|
+
plainGridSize?: number;
|
|
23
|
+
}
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
25
|
+
type TileData = {
|
|
26
|
+
heights: number[] | TypedArray | null,
|
|
27
|
+
extent: Extent | null
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type UrlRewriteFunc = (segment: Segment, url: string) => string;
|
|
33
31
|
|
|
34
32
|
/**
|
|
35
33
|
* Class that loads segment elevation data, converts it to the array and passes it to the planet segment.
|
|
36
34
|
* @class
|
|
37
|
-
* @extends {
|
|
35
|
+
* @extends {GlobusTerrain}
|
|
38
36
|
* @param {string} [name=""] - Terrain provider name.
|
|
39
|
-
* @param {
|
|
37
|
+
* @param {IGlobusTerrainParams} [options] - Provider options:
|
|
40
38
|
* @param {number} [options.minZoom=3] - Minimal visible zoom index when terrain handler works.
|
|
41
39
|
* @param {number} [options.minZoom=14] - Maximal visible zoom index when terrain handler works.
|
|
42
40
|
* @param {number} [options.minNativeZoom=14] - Maximal available terrain zoom level.
|
|
43
41
|
* @param {string} [options.url="//openglobus.org/heights/srtm3/{z}/{y}/{x}.ddm"] - Terrain source path url template. Default is openglobus ddm elevation file.
|
|
44
42
|
* @param {Array.<number>} [options.gridSizeByZoom] - Array of segment triangulation grid sizes where array index agreed to the segment zoom index.
|
|
45
43
|
* @param {number} [options.plainGridSize=32] - Elevation grid size. Default is 32x32. Must be power of two.
|
|
46
|
-
* @param {string} [options.responseType="arraybuffer"] -
|
|
44
|
+
* @param {string} [options.responseType="arraybuffer"] - Response type.
|
|
47
45
|
* @param {number} [options.MAX_LOADING_TILES] - Maximum at one time loading tiles.
|
|
48
46
|
* @param {Array.<number>} [gridSizeByZoom] - Array of values, where each value corresponds to the size of a tile(or segment) on the globe. Each value must be power of two.
|
|
49
|
-
*
|
|
50
|
-
* @fires
|
|
47
|
+
*
|
|
48
|
+
* @fires GlobusTerrainEvents#load
|
|
49
|
+
* @fires GlobusTerrainEvents#loadend
|
|
51
50
|
*/
|
|
52
51
|
class GlobusTerrain extends EmptyTerrain {
|
|
52
|
+
|
|
53
|
+
public events: GlobusTerrainEvents;
|
|
54
|
+
|
|
55
|
+
protected _s: string[];
|
|
56
|
+
|
|
57
|
+
protected _requestCount: number;
|
|
58
|
+
|
|
59
|
+
protected _requestsPeerSubdomain: number;
|
|
60
|
+
|
|
53
61
|
/**
|
|
54
|
-
*
|
|
55
|
-
* @
|
|
62
|
+
* Terrain source path url template.
|
|
63
|
+
* @protected
|
|
64
|
+
* @type {string}
|
|
56
65
|
*/
|
|
57
|
-
|
|
66
|
+
protected url: string;
|
|
67
|
+
|
|
68
|
+
protected _extent: Extent;
|
|
69
|
+
|
|
70
|
+
protected _dataType: string;
|
|
71
|
+
|
|
72
|
+
protected _elevationCache: Record<string, TileData>;
|
|
73
|
+
|
|
74
|
+
protected _fetchCache: Record<string, Promise<any>>;
|
|
75
|
+
|
|
76
|
+
protected _loader: Loader<GlobusTerrain>;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Rewrites elevation storage url query.
|
|
80
|
+
* @protected
|
|
81
|
+
* @type {Function} -
|
|
82
|
+
*/
|
|
83
|
+
protected _urlRewriteCallback: UrlRewriteFunc | null;
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
constructor(name: string | null, options: IGlobusTerrainParams = {}) {
|
|
87
|
+
|
|
58
88
|
super({
|
|
59
89
|
geoidSrc: "//openglobus.org/geoid/egm84-30.pgm",
|
|
60
90
|
maxNativeZoom: options.maxNativeZoom || 14,
|
|
@@ -63,57 +93,29 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
63
93
|
|
|
64
94
|
this._s = options.subdomains || ["a", "b", "c"];
|
|
65
95
|
|
|
66
|
-
|
|
67
|
-
* Events handler.
|
|
68
|
-
* @public
|
|
69
|
-
* @type {Events}
|
|
70
|
-
*/
|
|
71
|
-
this.events = new Events(EVENT_NAMES, this);
|
|
96
|
+
this.events = createEvents(GLOBUSTERRAIN_EVENTS, this);
|
|
72
97
|
|
|
73
98
|
this._requestCount = 0;
|
|
74
99
|
|
|
75
|
-
this.
|
|
100
|
+
this._requestsPeerSubdomain = 4;
|
|
76
101
|
|
|
77
102
|
this.isEmpty = false;
|
|
78
103
|
|
|
79
104
|
this.equalizeNormals = true;
|
|
80
105
|
|
|
81
|
-
/**
|
|
82
|
-
* Provider name.
|
|
83
|
-
* @public
|
|
84
|
-
* @type {string}
|
|
85
|
-
*/
|
|
86
106
|
this.name = name || "openglobus";
|
|
87
107
|
|
|
88
|
-
/**
|
|
89
|
-
* Terrain source path url template.
|
|
90
|
-
* @public
|
|
91
|
-
* @type {string}
|
|
92
|
-
*/
|
|
93
108
|
this.url = options.url || "//{s}.srtm3.openglobus.org/{z}/{y}/{x}.ddm";
|
|
94
109
|
|
|
95
|
-
/**
|
|
96
|
-
* Array of segment triangulation grid sizes where array index agreed to the segment zoom index.
|
|
97
|
-
* @public
|
|
98
|
-
* @type {Array.<number>}
|
|
99
|
-
*/
|
|
100
110
|
this.gridSizeByZoom = options.gridSizeByZoom || [
|
|
101
111
|
64, 32, 32, 16, 16, 8, 8, 8, 8, 16, 16, 16, 16, 32, 32, 16, 8, 4, 2, 2, 2, 2, 2, 2
|
|
102
112
|
];
|
|
103
113
|
|
|
104
114
|
this.noDataValues = options.noDataValues || [];
|
|
105
115
|
|
|
106
|
-
/**
|
|
107
|
-
* Elevation tile grid size.
|
|
108
|
-
* @public
|
|
109
|
-
* @type {number}
|
|
110
|
-
*/
|
|
111
116
|
this.plainGridSize = options.plainGridSize || 32;
|
|
112
117
|
|
|
113
|
-
this._extent = createExtent(
|
|
114
|
-
options.extent,
|
|
115
|
-
new Extent(new LonLat(-180.0, -90.0), new LonLat(180.0, 90.0))
|
|
116
|
-
);
|
|
118
|
+
this._extent = createExtent(options.extent, new Extent(new LonLat(-180.0, -90.0), new LonLat(180.0, 90.0)));
|
|
117
119
|
|
|
118
120
|
this._dataType = "arrayBuffer";
|
|
119
121
|
|
|
@@ -123,46 +125,40 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
123
125
|
|
|
124
126
|
this._fetchCache = {};
|
|
125
127
|
|
|
126
|
-
this._loader = new Loader();
|
|
128
|
+
this._loader = new Loader<GlobusTerrain>();
|
|
127
129
|
|
|
128
|
-
/**
|
|
129
|
-
* Rewrites elevation storage url query.
|
|
130
|
-
* @private
|
|
131
|
-
* @callback og.terrain.GlobusTerrain~_urlRewriteCallback
|
|
132
|
-
* @param {Segment} segment - Segment to load.
|
|
133
|
-
* @param {string} url - Created url.
|
|
134
|
-
* @returns {string} - Url query string.
|
|
135
|
-
*/
|
|
136
130
|
this._urlRewriteCallback = options.urlRewrite || null;
|
|
137
131
|
}
|
|
138
132
|
|
|
139
|
-
|
|
140
|
-
|
|
133
|
+
public get loader(): Loader<GlobusTerrain> {
|
|
134
|
+
return this._loader;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
public override clearCache() {
|
|
141
138
|
for (let c in this._elevationCache) {
|
|
142
139
|
this._elevationCache[c].heights = null;
|
|
143
140
|
this._elevationCache[c].extent = null;
|
|
144
141
|
delete this._elevationCache[c];
|
|
145
142
|
}
|
|
143
|
+
//@ts-ignore
|
|
146
144
|
this._elevationCache = null;
|
|
147
145
|
this._elevationCache = {};
|
|
148
146
|
|
|
149
|
-
//?
|
|
150
147
|
for (let c in this._fetchCache) {
|
|
148
|
+
//@ts-ignore
|
|
151
149
|
this._fetchCache[c] = null;
|
|
152
150
|
delete this._fetchCache[c];
|
|
153
151
|
}
|
|
152
|
+
//@ts-ignore
|
|
154
153
|
this._fetchCache = null;
|
|
155
154
|
this._fetchCache = {};
|
|
156
155
|
}
|
|
157
156
|
|
|
158
|
-
isBlur(segment) {
|
|
159
|
-
|
|
160
|
-
return true;
|
|
161
|
-
}
|
|
162
|
-
return false;
|
|
157
|
+
public override isBlur(segment: Segment): boolean {
|
|
158
|
+
return segment.tileZoom >= 6;
|
|
163
159
|
}
|
|
164
160
|
|
|
165
|
-
getHeightAsync(lonLat, callback, zoom, firstAttempt) {
|
|
161
|
+
public override getHeightAsync(lonLat: LonLat, callback: (h: number) => void, zoom?: number, firstAttempt?: boolean): boolean {
|
|
166
162
|
if (!lonLat || lonLat.lat > mercator.MAX_LAT || lonLat.lat < mercator.MIN_LAT) {
|
|
167
163
|
callback(0);
|
|
168
164
|
return true;
|
|
@@ -170,7 +166,7 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
170
166
|
|
|
171
167
|
firstAttempt = firstAttempt != undefined ? firstAttempt : true;
|
|
172
168
|
|
|
173
|
-
let z = zoom || this.
|
|
169
|
+
let z = zoom || this.maxZoom,
|
|
174
170
|
z2 = Math.pow(2, z),
|
|
175
171
|
size = mercator.POLE2 / z2,
|
|
176
172
|
merc = mercator.forward(lonLat),
|
|
@@ -197,35 +193,34 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
197
193
|
});
|
|
198
194
|
}
|
|
199
195
|
|
|
200
|
-
this._fetchCache[tileIndex].then((response) => {
|
|
196
|
+
this._fetchCache[tileIndex].then((response: IResponse) => {
|
|
201
197
|
|
|
202
198
|
let extent = mercator.getTileExtent(x, y, z);
|
|
203
199
|
|
|
204
200
|
if (response.status === "ready") {
|
|
205
|
-
let cache = {
|
|
201
|
+
let cache: TileData = {
|
|
206
202
|
heights: this._createHeights(response.data, tileIndex, x, y, z, extent),
|
|
207
203
|
extent: extent
|
|
208
204
|
};
|
|
209
205
|
this._elevationCache[tileIndex] = cache;
|
|
210
206
|
callback(this._getGroundHeightMerc(merc, cache));
|
|
211
|
-
} else if (response.status === "error") {
|
|
212
207
|
|
|
213
|
-
|
|
208
|
+
} else if (response.status === "error") {
|
|
209
|
+
if (firstAttempt && z > this.maxNativeZoom) {
|
|
214
210
|
firstAttempt = false;
|
|
215
|
-
this.getHeightAsync(lonLat, callback, this.
|
|
211
|
+
this.getHeightAsync(lonLat, callback, this.maxNativeZoom, false);
|
|
216
212
|
return;
|
|
217
213
|
}
|
|
218
214
|
|
|
219
|
-
|
|
215
|
+
this._elevationCache[tileIndex] = {
|
|
220
216
|
heights: null,
|
|
221
217
|
extent: extent
|
|
222
218
|
};
|
|
223
219
|
|
|
224
|
-
this._elevationCache[tileIndex] = cache;
|
|
225
|
-
|
|
226
220
|
callback(0);
|
|
227
221
|
|
|
228
222
|
} else {
|
|
223
|
+
// @ts-ignore
|
|
229
224
|
this._fetchCache[tileIndex] = null;
|
|
230
225
|
delete this._fetchCache[tileIndex];
|
|
231
226
|
}
|
|
@@ -235,7 +230,7 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
235
230
|
return false;
|
|
236
231
|
}
|
|
237
232
|
|
|
238
|
-
getTileCache(lonLat, z) {
|
|
233
|
+
public getTileCache(lonLat: LonLat, z: number): TileData | undefined {
|
|
239
234
|
if (!lonLat || lonLat.lat > mercator.MAX_LAT || lonLat.lat < mercator.MIN_LAT) {
|
|
240
235
|
return;
|
|
241
236
|
}
|
|
@@ -251,7 +246,7 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
251
246
|
return this._elevationCache[tileIndex];
|
|
252
247
|
}
|
|
253
248
|
|
|
254
|
-
_getGroundHeightMerc(merc, tileData) {
|
|
249
|
+
protected _getGroundHeightMerc(merc: LonLat, tileData: TileData): number {
|
|
255
250
|
if (!(tileData.extent && tileData.heights)) {
|
|
256
251
|
return 0;
|
|
257
252
|
}
|
|
@@ -282,11 +277,7 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
282
277
|
h2 = tileData.heights[v2Ind],
|
|
283
278
|
h3 = tileData.heights[v3Ind];
|
|
284
279
|
|
|
285
|
-
let v0 = new Vec3(
|
|
286
|
-
tileData.extent.southWest.lon + size * j,
|
|
287
|
-
h0,
|
|
288
|
-
tileData.extent.northEast.lat - size * i - size
|
|
289
|
-
),
|
|
280
|
+
let v0 = new Vec3(tileData.extent.southWest.lon + size * j, h0, tileData.extent.northEast.lat - size * i - size),
|
|
290
281
|
v1 = new Vec3(v0.x + size, h1, v0.z),
|
|
291
282
|
v2 = new Vec3(v0.x, h2, v0.z + size),
|
|
292
283
|
v3 = new Vec3(v0.x + size, h3, v0.z + size);
|
|
@@ -305,13 +296,15 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
305
296
|
if (d === Ray.INSIDE) {
|
|
306
297
|
return res.y;
|
|
307
298
|
}
|
|
299
|
+
|
|
300
|
+
return 0;
|
|
308
301
|
}
|
|
309
302
|
|
|
310
303
|
/**
|
|
311
304
|
* Stop loading.
|
|
312
305
|
* @public
|
|
313
306
|
*/
|
|
314
|
-
abortLoading() {
|
|
307
|
+
public override abortLoading() {
|
|
315
308
|
this._loader.abortAll();
|
|
316
309
|
}
|
|
317
310
|
|
|
@@ -322,7 +315,7 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
322
315
|
* @example <caption>Default openglobus url template:</caption>:
|
|
323
316
|
* "http://earth3.openglobus.org/{z}/{y}/{x}.ddm"
|
|
324
317
|
*/
|
|
325
|
-
setUrl(url) {
|
|
318
|
+
public setUrl(url: string) {
|
|
326
319
|
this.url = url;
|
|
327
320
|
}
|
|
328
321
|
|
|
@@ -331,47 +324,46 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
331
324
|
* @public
|
|
332
325
|
* @param {string} name - Name.
|
|
333
326
|
*/
|
|
334
|
-
setName(name) {
|
|
327
|
+
public setName(name: string) {
|
|
335
328
|
this.name = name;
|
|
336
329
|
}
|
|
337
330
|
|
|
338
|
-
isReadyToLoad(segment) {
|
|
339
|
-
return (
|
|
340
|
-
segment._projection.id === EPSG3857.id &&
|
|
341
|
-
this._extent.overlaps(segment.getExtentLonLat())
|
|
342
|
-
);
|
|
331
|
+
public isReadyToLoad(segment: Segment): boolean {
|
|
332
|
+
return segment._projection.equal(EPSG3857) && this._extent.overlaps(segment.getExtentLonLat());
|
|
343
333
|
}
|
|
344
334
|
|
|
345
335
|
/**
|
|
346
|
-
* Starts to load segment data.
|
|
336
|
+
* Starts to load segment elevation data.
|
|
347
337
|
* @public
|
|
348
|
-
* @virtual
|
|
349
338
|
* @param {Segment} segment - Segment that wants a terrain data.
|
|
350
|
-
* @param {boolean} forceLoading
|
|
339
|
+
* @param {boolean} [forceLoading] -
|
|
351
340
|
*/
|
|
352
|
-
loadTerrain(segment, forceLoading) {
|
|
353
|
-
|
|
341
|
+
public override loadTerrain(segment: Segment, forceLoading: boolean = false) {
|
|
342
|
+
|
|
343
|
+
if (this._planet!.terrainLock.isFree()) {
|
|
344
|
+
|
|
354
345
|
segment.terrainReady = false;
|
|
355
346
|
segment.terrainIsLoading = true;
|
|
347
|
+
|
|
356
348
|
if (this.isReadyToLoad(segment)) {
|
|
349
|
+
|
|
357
350
|
let cache = this._elevationCache[segment.tileIndex];
|
|
351
|
+
|
|
358
352
|
if (cache) {
|
|
359
353
|
this._applyElevationsData(segment, cache.heights);
|
|
360
354
|
} else {
|
|
361
|
-
this._loader.load(
|
|
362
|
-
{
|
|
355
|
+
this._loader.load({
|
|
363
356
|
sender: this,
|
|
364
357
|
src: this._getHTTPRequestString(segment),
|
|
365
358
|
segment: segment,
|
|
366
359
|
type: this._dataType,
|
|
367
|
-
filter: () =>
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
},
|
|
371
|
-
(response) => {
|
|
360
|
+
filter: () => (segment.plainReady && segment.node.getState() !== NOTRENDERING) || forceLoading
|
|
361
|
+
}, (response: IResponse) => {
|
|
362
|
+
|
|
372
363
|
if (response.status === "ready") {
|
|
373
364
|
|
|
374
|
-
let heights = this._createHeights(
|
|
365
|
+
let heights = this._createHeights(
|
|
366
|
+
response.data,
|
|
375
367
|
segment.tileIndex,
|
|
376
368
|
segment.tileX, segment.tileY, segment.tileZoom,
|
|
377
369
|
segment.getExtent(),
|
|
@@ -403,30 +395,28 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
403
395
|
}
|
|
404
396
|
}
|
|
405
397
|
|
|
406
|
-
_getSubdomain() {
|
|
398
|
+
protected _getSubdomain(): string {
|
|
407
399
|
this._requestCount++;
|
|
408
|
-
return this._s[Math.floor(this._requestCount % (this.
|
|
400
|
+
return this._s[Math.floor(this._requestCount % (this._requestsPeerSubdomain * this._s.length) / this._requestsPeerSubdomain)];
|
|
409
401
|
}
|
|
410
402
|
|
|
411
|
-
_buildURL(x, y, z) {
|
|
403
|
+
public _buildURL(x: number, y: number, z: number): string {
|
|
412
404
|
return stringTemplate(this.url, {
|
|
413
|
-
s: this._getSubdomain(),
|
|
405
|
+
s: this._getSubdomain(),
|
|
406
|
+
x: x.toString(),
|
|
407
|
+
y: y.toString(),
|
|
408
|
+
z: z.toString()
|
|
414
409
|
});
|
|
415
410
|
}
|
|
416
411
|
|
|
417
412
|
/**
|
|
418
|
-
* Creates query url.
|
|
413
|
+
* Creates default query url string.
|
|
419
414
|
* @protected
|
|
420
|
-
* @virtual
|
|
421
415
|
* @param {Segment} segment -
|
|
422
416
|
* @returns {string} -
|
|
423
417
|
*/
|
|
424
|
-
_createUrl(segment) {
|
|
425
|
-
return this._buildURL(
|
|
426
|
-
segment.tileX.toString(),
|
|
427
|
-
segment.tileY.toString(),
|
|
428
|
-
segment.tileZoom.toString()
|
|
429
|
-
)
|
|
418
|
+
protected _createUrl(segment: Segment): string {
|
|
419
|
+
return this._buildURL(segment.tileX, segment.tileY, segment.tileZoom);
|
|
430
420
|
}
|
|
431
421
|
|
|
432
422
|
/**
|
|
@@ -435,40 +425,34 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
435
425
|
* @param {Segment} segment - Segment that loads image data.
|
|
436
426
|
* @returns {string} - Url string.
|
|
437
427
|
*/
|
|
438
|
-
_getHTTPRequestString(segment) {
|
|
439
|
-
return this._urlRewriteCallback
|
|
440
|
-
? this._urlRewriteCallback(segment, this.url)
|
|
441
|
-
: this._createUrl(segment);
|
|
428
|
+
protected _getHTTPRequestString(segment: Segment): string {
|
|
429
|
+
return this._urlRewriteCallback ? this._urlRewriteCallback(segment, this.url) : this._createUrl(segment);
|
|
442
430
|
}
|
|
443
431
|
|
|
444
432
|
/**
|
|
445
|
-
* Sets url rewrite callback, used for custom url rewriting for every tile
|
|
433
|
+
* Sets url rewrite callback, used for custom url rewriting for every tile loading.
|
|
446
434
|
* @public
|
|
447
|
-
* @param {
|
|
435
|
+
* @param {UrlRewriteFunc} ur - The callback that returns tile custom created url.
|
|
448
436
|
*/
|
|
449
|
-
setUrlRewriteCallback(ur) {
|
|
437
|
+
public setUrlRewriteCallback(ur: UrlRewriteFunc) {
|
|
450
438
|
this._urlRewriteCallback = ur;
|
|
451
439
|
}
|
|
452
440
|
|
|
453
441
|
/**
|
|
454
|
-
* Converts loaded data to segment elevation data type(
|
|
442
|
+
* Converts loaded data to segment elevation data type(column major elevation data array in meters)
|
|
455
443
|
* @public
|
|
456
|
-
* @virtual
|
|
457
|
-
* @param {*} data - Loaded elevation data.
|
|
458
444
|
* @returns {Array.<number>} -
|
|
459
445
|
*/
|
|
460
|
-
_createHeights(data) {
|
|
446
|
+
protected _createHeights(data: any, tileIndex?: string, x?: number, y?: number, z?: number, extent?: Extent, isMaxZoom?: boolean): TypedArray | number[] {
|
|
461
447
|
return new Float32Array(data);
|
|
462
448
|
}
|
|
463
449
|
|
|
464
450
|
/**
|
|
465
451
|
* @protected
|
|
466
|
-
* @param {Segment} segment -
|
|
467
|
-
* @param {*} data -
|
|
468
452
|
*/
|
|
469
|
-
_applyElevationsData(segment, elevations) {
|
|
453
|
+
protected _applyElevationsData(segment: Segment, elevations: number[] | TypedArray | null) {
|
|
470
454
|
if (segment) {
|
|
471
|
-
|
|
455
|
+
let e = this.events.load!;
|
|
472
456
|
if (e.handlers.length) {
|
|
473
457
|
this.events.dispatch(e, {
|
|
474
458
|
elevations: elevations,
|
|
@@ -480,4 +464,26 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
480
464
|
}
|
|
481
465
|
}
|
|
482
466
|
|
|
483
|
-
|
|
467
|
+
type GlobusTerrainEventsList = [
|
|
468
|
+
"load",
|
|
469
|
+
"loadend"
|
|
470
|
+
];
|
|
471
|
+
|
|
472
|
+
type GlobusTerrainEvents = EventsHandler<GlobusTerrainEventsList>;
|
|
473
|
+
|
|
474
|
+
const GLOBUSTERRAIN_EVENTS: GlobusTerrainEventsList = [
|
|
475
|
+
/**
|
|
476
|
+
* Triggered when current elevation tile has loaded but before rendering.
|
|
477
|
+
* @event og.terrain.GlobusTerrain#load
|
|
478
|
+
*/
|
|
479
|
+
"load",
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* Triggered when all elevation tiles have loaded or loading has stopped.
|
|
483
|
+
* @event og.terrain.GlobusTerrain#loadend
|
|
484
|
+
*/
|
|
485
|
+
"loadend"
|
|
486
|
+
];
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
export {GlobusTerrain};
|