@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,98 +1,136 @@
|
|
|
1
|
-
|
|
1
|
+
import * as quadTree from "../quadTree/quadTree";
|
|
2
|
+
import {EventCallback, EventsHandler} from "../Events";
|
|
3
|
+
import {ILayerParams, Layer, LayerEventsList} from "./Layer";
|
|
4
|
+
import {Material} from "../layer/Material";
|
|
5
|
+
import {NumberArray4} from "../math/Vec4";
|
|
6
|
+
import {Planet} from "../scene/Planet";
|
|
7
|
+
|
|
8
|
+
type ApplyImageFunc = (material: HTMLCanvasElement | ImageBitmap | HTMLImageElement) => void;
|
|
9
|
+
type DrawTileCallback = (material: Material, applyImage: ApplyImageFunc) => void;
|
|
10
|
+
|
|
11
|
+
export interface ICanvasTilesParams extends ILayerParams {
|
|
12
|
+
drawTile: DrawTileCallback;
|
|
13
|
+
animated?: boolean;
|
|
14
|
+
minNativeZoom?: number;
|
|
15
|
+
maxNativeZoom?: number;
|
|
16
|
+
}
|
|
2
17
|
|
|
3
|
-
|
|
4
|
-
|
|
18
|
+
type CanvasTilesEventsList = [
|
|
19
|
+
"load",
|
|
20
|
+
"loadend"
|
|
21
|
+
];
|
|
5
22
|
|
|
6
|
-
|
|
7
|
-
* Maximum tiles per frame.
|
|
8
|
-
* @const
|
|
9
|
-
* @type {number}
|
|
10
|
-
*/
|
|
23
|
+
type CanvasTilesEventsType = EventsHandler<CanvasTilesEventsList> & EventsHandler<LayerEventsList>;
|
|
11
24
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
25
|
+
const CANVASTILES_EVENTS: CanvasTilesEventsList = [
|
|
26
|
+
/**
|
|
27
|
+
* Triggered when current tile image has loaded before rendering.
|
|
28
|
+
* @event og.layer.CanvasTiles#load
|
|
29
|
+
*/
|
|
16
30
|
"load",
|
|
17
31
|
|
|
18
32
|
/**
|
|
19
33
|
* Triggered when all tiles have loaded or loading has stopped.
|
|
20
34
|
* @event og.layer.CanvasTiles#loadend
|
|
21
35
|
*/
|
|
22
|
-
"loadend"
|
|
36
|
+
"loadend"
|
|
37
|
+
];
|
|
23
38
|
|
|
24
39
|
/**
|
|
25
40
|
* Layer used to rendering each tile as a separate canvas object.
|
|
26
41
|
* @class
|
|
27
42
|
* @extends {Layer}
|
|
28
|
-
* //TODO: make asynchronous handler.
|
|
29
43
|
* @param {String} [name="noname"] - Layer name.
|
|
30
|
-
* @param {
|
|
44
|
+
* @param {ICanvasTilesParams} options:
|
|
31
45
|
* @param {number} [options.opacity=1.0] - Layer opacity.
|
|
32
46
|
* @param {number} [options.minZoom=0] - Minimal visibility zoom level.
|
|
33
47
|
* @param {number} [options.maxZoom=0] - Maximal visibility zoom level.
|
|
34
48
|
* @param {string} [options.attribution] - Layer attribution that displayed in the attribution area on the screen.
|
|
35
49
|
* @param {boolean} [options.isBaseLayer=false] - Base layer flag.
|
|
36
50
|
* @param {boolean} [options.visibility=true] - Layer visibility.
|
|
37
|
-
* @param {
|
|
38
|
-
* @fires
|
|
39
|
-
* @fires
|
|
51
|
+
* @param {DrawTileCallback} options.drawTile - Draw tile callback.
|
|
52
|
+
* @fires EventsHandler<CanvasTilesEventsList>#load
|
|
53
|
+
* @fires EventsHandler<CanvasTilesEventsList>#loadend
|
|
40
54
|
*/
|
|
41
55
|
class CanvasTiles extends Layer {
|
|
42
|
-
|
|
56
|
+
|
|
57
|
+
static MAX_REQUESTS: number = 20;
|
|
58
|
+
static __requestsCounter: number = 0
|
|
59
|
+
|
|
60
|
+
public override events: CanvasTilesEventsType;
|
|
61
|
+
|
|
62
|
+
public animated: boolean;
|
|
63
|
+
|
|
64
|
+
public minNativeZoom: number;
|
|
65
|
+
public maxNativeZoom: number;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Current creating tiles counter.
|
|
69
|
+
* @protected
|
|
70
|
+
* @type {number}
|
|
71
|
+
*/
|
|
72
|
+
protected _counter: number;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Tile pending queue that waiting for create.
|
|
76
|
+
* @protected
|
|
77
|
+
* @type {Material[]}
|
|
78
|
+
*/
|
|
79
|
+
protected _pendingsQueue: Material[]; // new og.QueueArray();
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Draw tile callback.
|
|
83
|
+
* @type {DrawTileCallback}
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
86
|
+
public drawTile: DrawTileCallback;
|
|
87
|
+
|
|
88
|
+
protected _onLoadend_: EventCallback | null;
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
constructor(name: string | null, options: ICanvasTilesParams) {
|
|
43
92
|
super(name, options);
|
|
44
93
|
|
|
45
|
-
|
|
94
|
+
//@ts-ignore
|
|
95
|
+
this.events = this.events.registerNames(CANVASTILES_EVENTS);
|
|
46
96
|
|
|
47
97
|
this.animated = options.animated || false;
|
|
48
98
|
|
|
49
99
|
this.minNativeZoom = options.minNativeZoom || 0;
|
|
50
100
|
this.maxNativeZoom = options.maxNativeZoom || 100;
|
|
51
|
-
|
|
52
|
-
* Current creating tiles couter.
|
|
53
|
-
* @protected
|
|
54
|
-
* @type {number}
|
|
55
|
-
*/
|
|
101
|
+
|
|
56
102
|
this._counter = 0;
|
|
57
103
|
|
|
58
|
-
/**
|
|
59
|
-
* Tile pending queue that waiting for create.
|
|
60
|
-
* @protected
|
|
61
|
-
* @type {Array.<planetSegment.Material>}
|
|
62
|
-
*/
|
|
63
104
|
this._pendingsQueue = []; // new og.QueueArray();
|
|
64
105
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
* @public
|
|
69
|
-
*/
|
|
70
|
-
this.drawTile = options.drawTile || null;
|
|
106
|
+
this.drawTile = options.drawTile;
|
|
107
|
+
|
|
108
|
+
this._onLoadend_ = null;
|
|
71
109
|
}
|
|
72
110
|
|
|
73
|
-
addTo(planet) {
|
|
111
|
+
public override addTo(planet: Planet) {
|
|
74
112
|
this._onLoadend_ = this._onLoadend.bind(this);
|
|
75
|
-
this.events.on("loadend", this._onLoadend_
|
|
113
|
+
this.events.on("loadend", this._onLoadend_!, this);
|
|
76
114
|
return super.addTo(planet);
|
|
77
115
|
}
|
|
78
116
|
|
|
79
|
-
remove() {
|
|
117
|
+
public override remove() {
|
|
80
118
|
this.events.off("loadend", this._onLoadend_);
|
|
81
119
|
this._onLoadend_ = null;
|
|
82
120
|
return super.remove();
|
|
83
121
|
}
|
|
84
122
|
|
|
85
|
-
_onLoadend() {
|
|
123
|
+
public _onLoadend() {
|
|
86
124
|
if (this._planet && this._planet._terrainCompletedActivated) {
|
|
87
125
|
this._planet.events.dispatch(this._planet.events.layerloadend, this);
|
|
88
126
|
}
|
|
89
127
|
}
|
|
90
128
|
|
|
91
|
-
get instanceName() {
|
|
129
|
+
public override get instanceName(): string {
|
|
92
130
|
return "CanvasTiles";
|
|
93
131
|
}
|
|
94
132
|
|
|
95
|
-
get isIdle() {
|
|
133
|
+
public override get isIdle() {
|
|
96
134
|
return super.isIdle && this._counter === 0;
|
|
97
135
|
}
|
|
98
136
|
|
|
@@ -100,15 +138,21 @@ class CanvasTiles extends Layer {
|
|
|
100
138
|
* Abort loading tiles.
|
|
101
139
|
* @public
|
|
102
140
|
*/
|
|
103
|
-
abortLoading() {
|
|
104
|
-
|
|
105
|
-
for (let i = q._shiftIndex + 1; i < q._popIndex + 1; i++) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
this._pendingsQueue = [];
|
|
141
|
+
public override abortLoading() {
|
|
142
|
+
//const q = this._pendingsQueue;
|
|
143
|
+
// for (let i = q._shiftIndex + 1; i < q._popIndex + 1; i++) {
|
|
144
|
+
// if (q._array[i]) {
|
|
145
|
+
// this.abortMaterialLoading(q._array[i]);
|
|
146
|
+
// }
|
|
147
|
+
// }
|
|
111
148
|
// this._pendingsQueue.clear();
|
|
149
|
+
// for (let i = 0; i < q.length; i++) {
|
|
150
|
+
// this.abortMaterialLoading(q[i]);
|
|
151
|
+
// }
|
|
152
|
+
this._pendingsQueue.forEach((qi: Material) => {
|
|
153
|
+
this.abortMaterialLoading(qi);
|
|
154
|
+
})
|
|
155
|
+
this._pendingsQueue = [];
|
|
112
156
|
}
|
|
113
157
|
|
|
114
158
|
/**
|
|
@@ -116,7 +160,7 @@ class CanvasTiles extends Layer {
|
|
|
116
160
|
* @public
|
|
117
161
|
* @param {boolean} visibility - Layer visibility.
|
|
118
162
|
*/
|
|
119
|
-
setVisibility(visibility) {
|
|
163
|
+
public override setVisibility(visibility: boolean) {
|
|
120
164
|
if (visibility !== this._visibility) {
|
|
121
165
|
super.setVisibility(visibility);
|
|
122
166
|
|
|
@@ -132,7 +176,7 @@ class CanvasTiles extends Layer {
|
|
|
132
176
|
* @virtual
|
|
133
177
|
* @param {Material} material -
|
|
134
178
|
*/
|
|
135
|
-
loadMaterial(material) {
|
|
179
|
+
public override loadMaterial(material: Material) {
|
|
136
180
|
let seg = material.segment;
|
|
137
181
|
|
|
138
182
|
if (this._isBaseLayer) {
|
|
@@ -141,7 +185,7 @@ class CanvasTiles extends Layer {
|
|
|
141
185
|
material.texture = seg.planet.transparentTexture;
|
|
142
186
|
}
|
|
143
187
|
|
|
144
|
-
if (this._planet
|
|
188
|
+
if (this._planet!.layerLock.isFree() || material.segment.tileZoom < 2) {
|
|
145
189
|
material.isReady = false;
|
|
146
190
|
material.isLoading = true;
|
|
147
191
|
if (CanvasTiles.__requestsCounter >= CanvasTiles.MAX_REQUESTS && this._counter) {
|
|
@@ -157,41 +201,29 @@ class CanvasTiles extends Layer {
|
|
|
157
201
|
* @protected
|
|
158
202
|
* @param {Material} material - Loads material image.
|
|
159
203
|
*/
|
|
160
|
-
_exec(material) {
|
|
204
|
+
protected _exec(material: Material) {
|
|
161
205
|
CanvasTiles.__requestsCounter++;
|
|
162
206
|
this._counter++;
|
|
163
|
-
|
|
164
|
-
if (
|
|
165
|
-
|
|
166
|
-
* Tile custom draw function.
|
|
167
|
-
* @callback og.layer.CanvasTiles~drawTileCallback
|
|
168
|
-
* @param {Material} material
|
|
169
|
-
* @param {applyCanvasCallback} applyCanvasCallback
|
|
170
|
-
*/
|
|
171
|
-
var e = that.events.load;
|
|
172
|
-
if (e.handlers.length) {
|
|
173
|
-
that.events.dispatch(e, material);
|
|
174
|
-
}
|
|
175
|
-
requestAnimationFrame(() => {
|
|
176
|
-
that.drawTile(
|
|
177
|
-
material,
|
|
178
|
-
/**
|
|
179
|
-
* Apply canvas.
|
|
180
|
-
* @callback applyCanvasCallback
|
|
181
|
-
* @param {Object} canvas -
|
|
182
|
-
*/
|
|
183
|
-
function (canvas) {
|
|
184
|
-
that._counter--;
|
|
185
|
-
CanvasTiles.__requestsCounter--;
|
|
186
|
-
if (material.isLoading) {
|
|
187
|
-
material.applyImage(canvas);
|
|
188
|
-
}
|
|
189
|
-
that._dequeueRequest();
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
} else {
|
|
193
|
-
material.textureNotExists();
|
|
207
|
+
const e = this.events.load!;
|
|
208
|
+
if (e.handlers.length) {
|
|
209
|
+
this.events.dispatch(e, material);
|
|
194
210
|
}
|
|
211
|
+
requestAnimationFrame(() => {
|
|
212
|
+
this.drawTile(material, (canvas: HTMLCanvasElement | ImageBitmap | HTMLImageElement) => {
|
|
213
|
+
this._counter--;
|
|
214
|
+
CanvasTiles.__requestsCounter--;
|
|
215
|
+
this._correctCounter();
|
|
216
|
+
if (material.isLoading) {
|
|
217
|
+
material.applyImage(canvas);
|
|
218
|
+
}
|
|
219
|
+
this._dequeueRequest();
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
protected _correctCounter() {
|
|
225
|
+
if (this._counter < 0) this._counter = 0;
|
|
226
|
+
if (CanvasTiles.__requestsCounter < 0) CanvasTiles.__requestsCounter = 0;
|
|
195
227
|
}
|
|
196
228
|
|
|
197
229
|
/**
|
|
@@ -199,21 +231,21 @@ class CanvasTiles extends Layer {
|
|
|
199
231
|
* @public
|
|
200
232
|
* @param {Material} material - Segment material.
|
|
201
233
|
*/
|
|
202
|
-
abortMaterialLoading(material) {
|
|
203
|
-
if (material.isLoading
|
|
204
|
-
material.image.src = "";
|
|
234
|
+
public override abortMaterialLoading(material: Material) {
|
|
235
|
+
if (material.isLoading) {
|
|
205
236
|
this._counter--;
|
|
206
237
|
CanvasTiles.__requestsCounter--;
|
|
238
|
+
this._correctCounter();
|
|
207
239
|
this._dequeueRequest();
|
|
208
240
|
}
|
|
209
241
|
material.isLoading = false;
|
|
210
242
|
material.isReady = false;
|
|
211
243
|
}
|
|
212
244
|
|
|
213
|
-
_dequeueRequest() {
|
|
245
|
+
protected _dequeueRequest() {
|
|
214
246
|
if (this._pendingsQueue.length) {
|
|
215
247
|
if (CanvasTiles.__requestsCounter < CanvasTiles.MAX_REQUESTS) {
|
|
216
|
-
|
|
248
|
+
const pmat = this._whilePendings();
|
|
217
249
|
if (pmat) {
|
|
218
250
|
this._exec(pmat);
|
|
219
251
|
}
|
|
@@ -223,10 +255,10 @@ class CanvasTiles extends Layer {
|
|
|
223
255
|
}
|
|
224
256
|
}
|
|
225
257
|
|
|
226
|
-
_whilePendings() {
|
|
258
|
+
protected _whilePendings(): Material | null {
|
|
227
259
|
while (this._pendingsQueue.length) {
|
|
228
|
-
|
|
229
|
-
if (pmat.segment.node) {
|
|
260
|
+
const pmat = this._pendingsQueue.pop();
|
|
261
|
+
if (pmat && pmat.segment && pmat.segment.node) {
|
|
230
262
|
if (pmat.segment.initialized && pmat.segment.node.getState() === quadTree.RENDERING) {
|
|
231
263
|
return pmat;
|
|
232
264
|
}
|
|
@@ -236,7 +268,7 @@ class CanvasTiles extends Layer {
|
|
|
236
268
|
return null;
|
|
237
269
|
}
|
|
238
270
|
|
|
239
|
-
applyMaterial(material) {
|
|
271
|
+
public override applyMaterial(material: Material): NumberArray4 {
|
|
240
272
|
if (material.isReady) {
|
|
241
273
|
|
|
242
274
|
// IMPORTANT!
|
|
@@ -244,7 +276,7 @@ class CanvasTiles extends Layer {
|
|
|
244
276
|
// It could be fixed with call drawTile method only for parent
|
|
245
277
|
// material (which is rendered on the current segment material),
|
|
246
278
|
// just for one renderer frame
|
|
247
|
-
if (material.layer.animated) {
|
|
279
|
+
if ((material.layer as CanvasTiles).animated) {
|
|
248
280
|
requestAnimationFrame(() => {
|
|
249
281
|
this.drawTile(material, function (canvas) {
|
|
250
282
|
material.applyImage(canvas);
|
|
@@ -261,7 +293,7 @@ class CanvasTiles extends Layer {
|
|
|
261
293
|
let segment = material.segment;
|
|
262
294
|
let pn = segment.node,
|
|
263
295
|
parentTextureExists = false;
|
|
264
|
-
let maxNativeZoom = material.layer.maxNativeZoom;
|
|
296
|
+
let maxNativeZoom = (material.layer as CanvasTiles).maxNativeZoom;
|
|
265
297
|
|
|
266
298
|
if (segment.passReady && !material.isLoading && segment.tileZoom <= maxNativeZoom) {
|
|
267
299
|
this.loadMaterial(material);
|
|
@@ -287,7 +319,7 @@ class CanvasTiles extends Layer {
|
|
|
287
319
|
|
|
288
320
|
let pn = segment.node;
|
|
289
321
|
while (pn.segment.tileZoom > maxNativeZoom) {
|
|
290
|
-
pn = pn.parentNode
|
|
322
|
+
pn = pn.parentNode!;
|
|
291
323
|
}
|
|
292
324
|
|
|
293
325
|
let pnm = pn.segment.materials[mId];
|
|
@@ -307,7 +339,7 @@ class CanvasTiles extends Layer {
|
|
|
307
339
|
//
|
|
308
340
|
// Animated doesn't work withMaxNativeZoom
|
|
309
341
|
//
|
|
310
|
-
if (material.layer.animated) {
|
|
342
|
+
if ((material.layer as CanvasTiles).animated) {
|
|
311
343
|
requestAnimationFrame(() => {
|
|
312
344
|
this.drawTile(material, function (canvas) {
|
|
313
345
|
material.applyImage(canvas);
|
|
@@ -334,11 +366,11 @@ class CanvasTiles extends Layer {
|
|
|
334
366
|
return material.texOffset;
|
|
335
367
|
}
|
|
336
368
|
|
|
337
|
-
clearMaterial(material) {
|
|
369
|
+
public override clearMaterial(material: Material) {
|
|
338
370
|
if (material.isReady) {
|
|
339
371
|
material.isReady = false;
|
|
340
372
|
if (material.textureExists && material.texture && !material.texture.default) {
|
|
341
|
-
material.segment.handler.gl
|
|
373
|
+
material.segment.handler.gl!.deleteTexture(material.texture);
|
|
342
374
|
material.texture = null;
|
|
343
375
|
}
|
|
344
376
|
}
|
|
@@ -347,14 +379,16 @@ class CanvasTiles extends Layer {
|
|
|
347
379
|
material.isLoading = false;
|
|
348
380
|
material.textureExists = false;
|
|
349
381
|
|
|
382
|
+
//@ts-ignore
|
|
350
383
|
material.layer = null;
|
|
384
|
+
//@ts-ignore
|
|
351
385
|
material.segment = null;
|
|
352
386
|
|
|
353
|
-
if (material.image) {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
}
|
|
387
|
+
// if (material.image) {
|
|
388
|
+
// material.image.src = "";
|
|
389
|
+
// material.image = null;
|
|
390
|
+
// }
|
|
357
391
|
}
|
|
358
392
|
}
|
|
359
393
|
|
|
360
|
-
export {
|
|
394
|
+
export {CanvasTiles};
|
|
@@ -1,47 +1,58 @@
|
|
|
1
|
-
|
|
1
|
+
import {nextHighestPowerOfTwo} from "../math";
|
|
2
|
+
import {BaseGeoImage, IBaseGeoImageParams} from "./BaseGeoImage";
|
|
3
|
+
import {isImageLoaded} from "../utils/shared";
|
|
4
|
+
import {Material} from "./Material";
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
interface IGeoImageParams extends IBaseGeoImageParams {
|
|
7
|
+
image?: HTMLImageElement | HTMLCanvasElement | ImageBitmap;
|
|
8
|
+
src?: string;
|
|
9
|
+
}
|
|
6
10
|
|
|
7
11
|
/**
|
|
8
|
-
* Used to load and display a single image over specific corner coordinates on the globe
|
|
12
|
+
* Used to load and display a single image over specific corner coordinates on the globe.
|
|
9
13
|
* @class
|
|
10
14
|
* @extends {BaseGeoImage}
|
|
11
15
|
*/
|
|
12
16
|
class GeoImage extends BaseGeoImage {
|
|
13
|
-
|
|
14
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Image object.
|
|
19
|
+
* @protected
|
|
20
|
+
* @type {HTMLImageElement | HTMLCanvasElement | ImageBitmap}
|
|
21
|
+
*/
|
|
22
|
+
protected _image: HTMLImageElement | HTMLCanvasElement | ImageBitmap | null;
|
|
15
23
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Image source url path.
|
|
26
|
+
* @protected
|
|
27
|
+
* @type {string}
|
|
28
|
+
*/
|
|
29
|
+
protected _src: string | null;
|
|
30
|
+
|
|
31
|
+
protected _onLoad_: ((this: HTMLImageElement, ev: Event) => void) | null;
|
|
22
32
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
* @type {String}
|
|
27
|
-
*/
|
|
33
|
+
constructor(name: string | null, options: IGeoImageParams = {}) {
|
|
34
|
+
super(name, options);
|
|
35
|
+
this._image = options.image || null;
|
|
28
36
|
this._src = options.src || null;
|
|
37
|
+
this._onLoad_ = null;
|
|
29
38
|
}
|
|
30
39
|
|
|
31
|
-
get instanceName() {
|
|
40
|
+
public override get instanceName(): string {
|
|
32
41
|
return "GeoImage";
|
|
33
42
|
}
|
|
34
43
|
|
|
35
|
-
abortLoading() {
|
|
36
|
-
this._image
|
|
44
|
+
public override abortLoading() {
|
|
45
|
+
if (this._image instanceof HTMLImageElement) {
|
|
46
|
+
this._image.src = "";
|
|
47
|
+
}
|
|
37
48
|
}
|
|
38
49
|
|
|
39
50
|
/**
|
|
40
51
|
* Sets image source url path.
|
|
41
52
|
* @public
|
|
42
|
-
* @param {
|
|
53
|
+
* @param {string} srs - Image url path.
|
|
43
54
|
*/
|
|
44
|
-
setSrc(src) {
|
|
55
|
+
public setSrc(src: string) {
|
|
45
56
|
this._planet && this._planet._geoImageCreator.remove(this);
|
|
46
57
|
this._src = src;
|
|
47
58
|
this._sourceReady = false;
|
|
@@ -57,7 +68,7 @@ class GeoImage extends BaseGeoImage {
|
|
|
57
68
|
* @public
|
|
58
69
|
* @param {Image} image - Image object.
|
|
59
70
|
*/
|
|
60
|
-
setImage(image) {
|
|
71
|
+
public setImage(image: HTMLImageElement) {
|
|
61
72
|
this._planet && this._planet._geoImageCreator.remove(this);
|
|
62
73
|
this._sourceCreated = false;
|
|
63
74
|
this._sourceReady = false;
|
|
@@ -76,53 +87,50 @@ class GeoImage extends BaseGeoImage {
|
|
|
76
87
|
* @virtual
|
|
77
88
|
* @protected
|
|
78
89
|
*/
|
|
79
|
-
_createSourceTexture() {
|
|
80
|
-
if (!this._sourceCreated) {
|
|
81
|
-
this._sourceTexture = this._planet
|
|
90
|
+
protected override _createSourceTexture() {
|
|
91
|
+
if (!this._sourceCreated && this._image) {
|
|
92
|
+
this._sourceTexture = this._planet!.renderer!.handler.createTexture_l(this._image);
|
|
82
93
|
this._sourceCreated = true;
|
|
83
94
|
}
|
|
84
95
|
}
|
|
85
96
|
|
|
86
|
-
|
|
87
|
-
* @private
|
|
88
|
-
* @param {Image} [img]
|
|
89
|
-
*/
|
|
90
|
-
_onLoad() {
|
|
97
|
+
protected _onLoad(ev: Event) {
|
|
91
98
|
this._applyImage(this._image);
|
|
92
|
-
this._image
|
|
93
|
-
|
|
99
|
+
if (this._image instanceof HTMLImageElement) {
|
|
100
|
+
this._image.removeEventListener("load", this._onLoad_!);
|
|
101
|
+
}
|
|
102
|
+
this._onLoad_ = null;
|
|
94
103
|
}
|
|
95
104
|
|
|
96
|
-
|
|
97
|
-
* @private
|
|
98
|
-
* @param {Image} [img]
|
|
99
|
-
*/
|
|
100
|
-
_applyImage(img) {
|
|
105
|
+
protected _applyImage(img: HTMLImageElement | HTMLCanvasElement | ImageBitmap | null) {
|
|
101
106
|
if (img) {
|
|
102
107
|
this._frameWidth = nextHighestPowerOfTwo(img.width * 2, 4096);
|
|
103
108
|
this._frameHeight = nextHighestPowerOfTwo(img.height * 3, 4096);
|
|
104
109
|
this._sourceReady = true;
|
|
105
|
-
this._planet
|
|
110
|
+
if (this._planet) {
|
|
111
|
+
this._planet._geoImageCreator.add(this);
|
|
112
|
+
}
|
|
106
113
|
}
|
|
107
114
|
}
|
|
108
115
|
|
|
109
116
|
|
|
110
117
|
/**
|
|
111
118
|
* Loads planet segment material. In this case - GeoImage source image.
|
|
112
|
-
* @virtual
|
|
113
119
|
* @public
|
|
114
120
|
* @param {Material} material - GeoImage planet material.
|
|
115
121
|
*/
|
|
116
|
-
loadMaterial(material) {
|
|
122
|
+
public override loadMaterial(material: Material) {
|
|
117
123
|
material.isLoading = true;
|
|
118
124
|
this._creationProceeding = true;
|
|
119
125
|
if (!this._sourceReady && this._src) {
|
|
120
126
|
if (this._image) {
|
|
121
|
-
if (
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
127
|
+
if (this._image instanceof HTMLImageElement) {
|
|
128
|
+
if (isImageLoaded(this._image)) {
|
|
129
|
+
this._applyImage(this._image);
|
|
130
|
+
} else {
|
|
131
|
+
this._onLoad_ = this._onLoad.bind(this);
|
|
132
|
+
this._image.addEventListener("load", this._onLoad_);
|
|
133
|
+
}
|
|
126
134
|
}
|
|
127
135
|
} else {
|
|
128
136
|
this._image = new Image();
|
|
@@ -130,21 +138,23 @@ class GeoImage extends BaseGeoImage {
|
|
|
130
138
|
this._image.addEventListener("load", this._onLoad_);
|
|
131
139
|
this._image.src = this._src;
|
|
132
140
|
}
|
|
133
|
-
} else {
|
|
141
|
+
} else if (this._planet) {
|
|
134
142
|
this._planet._geoImageCreator.add(this);
|
|
135
143
|
}
|
|
136
144
|
}
|
|
137
145
|
|
|
138
146
|
/**
|
|
139
|
-
* @
|
|
147
|
+
* @public
|
|
140
148
|
* @param {Material} material - GeoImage material.
|
|
141
149
|
*/
|
|
142
|
-
abortMaterialLoading(material) {
|
|
143
|
-
this._image &&
|
|
150
|
+
public override abortMaterialLoading(material: Material) {
|
|
151
|
+
if (this._image && this._image instanceof HTMLImageElement) {
|
|
152
|
+
this._image.src = "";
|
|
153
|
+
}
|
|
144
154
|
this._creationProceeding = false;
|
|
145
155
|
material.isLoading = false;
|
|
146
156
|
material.isReady = false;
|
|
147
157
|
}
|
|
148
158
|
}
|
|
149
159
|
|
|
150
|
-
export {
|
|
160
|
+
export {GeoImage};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {BaseGeoImage, IBaseGeoImageParams} from './BaseGeoImage';
|
|
2
|
+
import {Material} from "../layer/Material";
|
|
3
|
+
import {nextHighestPowerOfTwo} from '../math';
|
|
4
|
+
import {WebGLTextureExt} from "../webgl/Handler";
|
|
5
|
+
|
|
6
|
+
interface IGeoTexture2dParams extends IBaseGeoImageParams {
|
|
7
|
+
texture?: WebGLTextureExt;
|
|
8
|
+
frameWidth?: number;
|
|
9
|
+
frameHeight?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
class GeoTexture2d extends BaseGeoImage {
|
|
13
|
+
constructor(name: string | null, options: IGeoTexture2dParams = {}) {
|
|
14
|
+
super(name, options);
|
|
15
|
+
|
|
16
|
+
this._sourceTexture = options.texture || null;
|
|
17
|
+
|
|
18
|
+
if (options.texture) {
|
|
19
|
+
this._sourceReady = true;
|
|
20
|
+
this._sourceCreated = true;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
this._frameWidth = options.frameWidth != undefined ? nextHighestPowerOfTwo(options.frameWidth!) : 256;
|
|
24
|
+
this._frameHeight = options.frameHeight != undefined ? nextHighestPowerOfTwo(options.frameHeight!) : 256;
|
|
25
|
+
|
|
26
|
+
this._animate = true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public override get instanceName(): string {
|
|
30
|
+
return "GeoTexture2d";
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public override loadMaterial(material: Material) {
|
|
34
|
+
this._planet!._geoImageCreator.add(this);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public bindTexture(texture: WebGLTextureExt) {
|
|
38
|
+
this._sourceReady = true;
|
|
39
|
+
this._sourceCreated = true;
|
|
40
|
+
this._sourceTexture = texture;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public setSize(width: number, height: number) {
|
|
44
|
+
this._frameWidth = width;
|
|
45
|
+
this._frameHeight = height;
|
|
46
|
+
this._frameCreated = false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public override abortMaterialLoading(material: Material) {
|
|
50
|
+
this._creationProceeding = false;
|
|
51
|
+
material.isLoading = false;
|
|
52
|
+
material.isReady = false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export {GeoTexture2d};
|