@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,12 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
import {Deferred} from '../../Deferred';
|
|
2
|
+
import {createEvents, EventsHandler} from '../../Events';
|
|
3
|
+
import {Vec3} from "../../math/Vec3";
|
|
4
|
+
import {Planet} from "../../scene/Planet";
|
|
5
|
+
import {LonLat} from "../../LonLat";
|
|
6
|
+
|
|
7
|
+
interface ElevationProfileParams {
|
|
8
|
+
planet: Planet
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
interface IProfileData {
|
|
12
|
+
dist: number;
|
|
13
|
+
minY: number;
|
|
14
|
+
maxY: number;
|
|
15
|
+
trackCoords: number[][];
|
|
16
|
+
groundCoords: number[][];
|
|
17
|
+
}
|
|
2
18
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
19
|
+
type ElevationProfileEventsList = ["profilecollected"];
|
|
20
|
+
|
|
21
|
+
const ELEVATIONPROFILE_EVENTS: ElevationProfileEventsList = ["profilecollected"];
|
|
6
22
|
|
|
7
23
|
/**
|
|
8
24
|
* Point types
|
|
9
|
-
* @type {number}
|
|
10
25
|
*/
|
|
11
26
|
const SAFE = 0;
|
|
12
27
|
const WARNING = 1;
|
|
@@ -14,7 +29,6 @@ const COLLISION = 2;
|
|
|
14
29
|
|
|
15
30
|
/**
|
|
16
31
|
* drawData index names
|
|
17
|
-
* @type {number}
|
|
18
32
|
*/
|
|
19
33
|
const TRACK = 0;
|
|
20
34
|
const GROUND = 1;
|
|
@@ -27,8 +41,27 @@ const TOP_PADDING = 0.1; // Range maxY padding in percentage from the top
|
|
|
27
41
|
const HEIGHT_EPS = 0.1; // Warning height level error
|
|
28
42
|
|
|
29
43
|
class ElevationProfile {
|
|
30
|
-
|
|
31
|
-
|
|
44
|
+
public events: EventsHandler<ElevationProfileEventsList>;
|
|
45
|
+
public planet: Planet;
|
|
46
|
+
protected _warningHeightLevel: number;
|
|
47
|
+
protected _pointsReady: boolean;
|
|
48
|
+
protected _isWarning: boolean;
|
|
49
|
+
protected _minX: number;
|
|
50
|
+
protected _maxX: number;
|
|
51
|
+
protected _minY: number;
|
|
52
|
+
protected _maxY: number;
|
|
53
|
+
protected _drawData: [number[][], number[][]];
|
|
54
|
+
protected _promiseArr: Promise<void | number>[];
|
|
55
|
+
protected _promiseCounter: number;
|
|
56
|
+
protected _pMaxY: number;
|
|
57
|
+
protected _pMinY: number;
|
|
58
|
+
protected _pDist: number;
|
|
59
|
+
protected _pTrackCoords: number[][];
|
|
60
|
+
protected _pGroundCoords: number[][];
|
|
61
|
+
protected _pIndex: number;
|
|
62
|
+
|
|
63
|
+
constructor(options: ElevationProfileParams) {
|
|
64
|
+
this.events = createEvents(ELEVATIONPROFILE_EVENTS);
|
|
32
65
|
|
|
33
66
|
this.planet = options.planet;
|
|
34
67
|
|
|
@@ -53,21 +86,21 @@ class ElevationProfile {
|
|
|
53
86
|
this._pIndex = 0;
|
|
54
87
|
}
|
|
55
88
|
|
|
56
|
-
setWarningHeightLevel(warningHeight = 0) {
|
|
89
|
+
public setWarningHeightLevel(warningHeight: number = 0) {
|
|
57
90
|
this._warningHeightLevel = warningHeight;
|
|
58
91
|
}
|
|
59
92
|
|
|
60
|
-
setRange(minX, maxX, minY, maxY) {
|
|
93
|
+
public setRange(minX: number, maxX: number, minY: number, maxY: number) {
|
|
61
94
|
this._minX = minX;
|
|
62
95
|
this._maxX = maxX;
|
|
63
96
|
this._minY = minY;
|
|
64
97
|
this._maxY = maxY;
|
|
65
98
|
}
|
|
66
99
|
|
|
67
|
-
_getHeightAsync(ll, pIndex) {
|
|
68
|
-
let def = new Deferred();
|
|
69
|
-
this.planet.terrain
|
|
70
|
-
elv += this.planet.terrain
|
|
100
|
+
protected _getHeightAsync(ll: LonLat, pIndex: number): Promise<number> {
|
|
101
|
+
let def = new Deferred<number>();
|
|
102
|
+
this.planet.terrain!.getHeightAsync(ll, (elv: number) => {
|
|
103
|
+
elv += this.planet.terrain!.geoid.getHeightLonLat(ll);
|
|
71
104
|
this._pGroundCoords[pIndex][1] = elv;
|
|
72
105
|
this._pGroundCoords[pIndex][2] = SAFE;
|
|
73
106
|
this._pGroundCoords[pIndex][3] = ll.height;
|
|
@@ -77,7 +110,7 @@ class ElevationProfile {
|
|
|
77
110
|
return def.promise;
|
|
78
111
|
}
|
|
79
112
|
|
|
80
|
-
_collectCoordsBetweenTwoTrackPoints(internalPoints, scaleFactor, p0, trackDir) {
|
|
113
|
+
protected _collectCoordsBetweenTwoTrackPoints(internalPoints: number, scaleFactor: number, p0: Vec3, trackDir: Vec3) {
|
|
81
114
|
for (let j = 1; j <= internalPoints; j++) {
|
|
82
115
|
this._pDist += SEGMMENT_LENGTH;
|
|
83
116
|
this._pIndex++;
|
|
@@ -89,7 +122,7 @@ class ElevationProfile {
|
|
|
89
122
|
|
|
90
123
|
this._pGroundCoords[this._pIndex] = [this._pDist, 0, SAFE];
|
|
91
124
|
|
|
92
|
-
((lonlat, index) => {
|
|
125
|
+
((lonlat: LonLat, index: number) => {
|
|
93
126
|
this._promiseArr.push(
|
|
94
127
|
this._getHeightAsync(lonlat, index)
|
|
95
128
|
.then((elv) => {
|
|
@@ -101,7 +134,7 @@ class ElevationProfile {
|
|
|
101
134
|
}
|
|
102
135
|
}
|
|
103
136
|
|
|
104
|
-
_collectAllPoints(pointsLonLat) {
|
|
137
|
+
protected _collectAllPoints(pointsLonLat: LonLat[]) {
|
|
105
138
|
|
|
106
139
|
let p0 = new Vec3(),
|
|
107
140
|
p1 = new Vec3();
|
|
@@ -140,7 +173,7 @@ class ElevationProfile {
|
|
|
140
173
|
}
|
|
141
174
|
}
|
|
142
175
|
|
|
143
|
-
_getGroundElevation(lonLat) {
|
|
176
|
+
protected _getGroundElevation(lonLat: LonLat) {
|
|
144
177
|
this._pGroundCoords[this._pIndex] = [this._pDist, 0, SAFE];
|
|
145
178
|
this._promiseArr.push(
|
|
146
179
|
this._getHeightAsync(lonLat, this._pIndex)
|
|
@@ -153,7 +186,7 @@ class ElevationProfile {
|
|
|
153
186
|
);
|
|
154
187
|
}
|
|
155
188
|
|
|
156
|
-
_collectPromise(resolve) {
|
|
189
|
+
protected _collectPromise(resolve: (p: IProfileData) => void) {
|
|
157
190
|
Promise.all(this._promiseArr).then(() => {
|
|
158
191
|
resolve({
|
|
159
192
|
dist: this._pDist,
|
|
@@ -165,8 +198,8 @@ class ElevationProfile {
|
|
|
165
198
|
});
|
|
166
199
|
}
|
|
167
200
|
|
|
168
|
-
_calcPointsAsync(pointsLonLat) {
|
|
169
|
-
return new Promise((resolve, reject) => {
|
|
201
|
+
protected _calcPointsAsync(pointsLonLat: LonLat[]) {
|
|
202
|
+
return new Promise<IProfileData>((resolve: (p: IProfileData) => void, reject) => {
|
|
170
203
|
this._pTrackCoords = [[0, pointsLonLat[0].height]];
|
|
171
204
|
this._pMaxY = pointsLonLat[0].height;
|
|
172
205
|
this._pMinY = this._pMaxY;
|
|
@@ -181,31 +214,31 @@ class ElevationProfile {
|
|
|
181
214
|
});
|
|
182
215
|
}
|
|
183
216
|
|
|
184
|
-
get minX() {
|
|
217
|
+
public get minX(): number {
|
|
185
218
|
return this._minX;
|
|
186
219
|
}
|
|
187
220
|
|
|
188
|
-
get maxX() {
|
|
221
|
+
public get maxX(): number {
|
|
189
222
|
return this._maxX;
|
|
190
223
|
}
|
|
191
224
|
|
|
192
|
-
get minY() {
|
|
225
|
+
public get minY(): number {
|
|
193
226
|
return this._minY;
|
|
194
227
|
}
|
|
195
228
|
|
|
196
|
-
get maxY() {
|
|
229
|
+
public get maxY(): number {
|
|
197
230
|
return this._maxY;
|
|
198
231
|
}
|
|
199
232
|
|
|
200
|
-
get pointsReady() {
|
|
233
|
+
public get pointsReady(): boolean {
|
|
201
234
|
return this._pointsReady;
|
|
202
235
|
}
|
|
203
236
|
|
|
204
|
-
get isWarningOrCollision() {
|
|
237
|
+
public get isWarningOrCollision(): boolean {
|
|
205
238
|
return this._isWarning;
|
|
206
239
|
}
|
|
207
240
|
|
|
208
|
-
collectProfile(pointsLonLat) {
|
|
241
|
+
public collectProfile(pointsLonLat: LonLat[]) {
|
|
209
242
|
this._pointsReady = false;
|
|
210
243
|
this._isWarning = false;
|
|
211
244
|
|
|
@@ -213,8 +246,8 @@ class ElevationProfile {
|
|
|
213
246
|
|
|
214
247
|
this._promiseCounter++;
|
|
215
248
|
|
|
216
|
-
((counter) => {
|
|
217
|
-
this._calcPointsAsync(pointsLonLat).then((p) => {
|
|
249
|
+
((counter: number) => {
|
|
250
|
+
this._calcPointsAsync(pointsLonLat).then((p: IProfileData) => {
|
|
218
251
|
if (counter === this._promiseCounter) {
|
|
219
252
|
this.setRange(0, p.dist, p.minY - BOTTOM_PADDING * Math.abs(p.minY), p.maxY + Math.abs(p.maxY) * TOP_PADDING);
|
|
220
253
|
this._pointsReady = true;
|
|
@@ -225,7 +258,7 @@ class ElevationProfile {
|
|
|
225
258
|
})(this._promiseCounter);
|
|
226
259
|
}
|
|
227
260
|
|
|
228
|
-
_setPointType(pIndex) {
|
|
261
|
+
protected _setPointType(pIndex: number) {
|
|
229
262
|
if ((this._pGroundCoords[pIndex][3] >= this._pGroundCoords[pIndex][1]) &&
|
|
230
263
|
(this._pGroundCoords[pIndex][3] < this._pGroundCoords[pIndex][1] + this._warningHeightLevel - HEIGHT_EPS)) {
|
|
231
264
|
this._pGroundCoords[pIndex][2] = WARNING;
|
|
@@ -240,7 +273,7 @@ class ElevationProfile {
|
|
|
240
273
|
}
|
|
241
274
|
}
|
|
242
275
|
|
|
243
|
-
_setPointsType() {
|
|
276
|
+
protected _setPointsType() {
|
|
244
277
|
this._isWarning = false;
|
|
245
278
|
|
|
246
279
|
this._pTrackCoords = this._drawData[TRACK];
|
|
@@ -254,7 +287,7 @@ class ElevationProfile {
|
|
|
254
287
|
this.events.dispatch(this.events.profilecollected, this._drawData, this);
|
|
255
288
|
}
|
|
256
289
|
|
|
257
|
-
clear() {
|
|
290
|
+
public clear() {
|
|
258
291
|
this._pointsReady = false;
|
|
259
292
|
this._isWarning = false;
|
|
260
293
|
this._drawData = [][0];
|
|
@@ -268,8 +301,9 @@ class ElevationProfile {
|
|
|
268
301
|
}
|
|
269
302
|
|
|
270
303
|
export {
|
|
271
|
-
SAFE,
|
|
272
304
|
COLLISION,
|
|
305
|
+
SAFE,
|
|
273
306
|
WARNING,
|
|
274
|
-
|
|
275
|
-
|
|
307
|
+
IProfileData,
|
|
308
|
+
ElevationProfile,
|
|
309
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {Ruler, IRulerParams} from "../ruler/Ruler";
|
|
2
|
+
import {HeightRulerScene} from "./HeightRulerScene";
|
|
3
|
+
|
|
4
|
+
interface IHeightRulerParams extends IRulerParams {
|
|
5
|
+
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class HeightRuler extends Ruler {
|
|
9
|
+
constructor(options: IHeightRulerParams = {}) {
|
|
10
|
+
super(options);
|
|
11
|
+
this._rulerScene = new HeightRulerScene({
|
|
12
|
+
name: `heightRulerScene:${this.__id}`,
|
|
13
|
+
ignoreTerrain: false
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts}
RENAMED
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import {Entity} from '../../entity/Entity';
|
|
2
|
+
import {LonLat} from "../../LonLat";
|
|
3
|
+
import {Object3d} from "../../Object3d";
|
|
4
|
+
import {RulerScene, IRulerSceneParams} from "../ruler/RulerScene";
|
|
5
|
+
import {Vector} from "../../layer/Vector";
|
|
6
|
+
import {Vec3} from "../../math/Vec3";
|
|
7
|
+
import {ILabelParams} from "../../entity/Label";
|
|
8
|
+
import {IRayParams} from "../../entity/Ray";
|
|
9
|
+
|
|
10
|
+
let obj3d = Object3d.createCylinder(1.1, 0, 2, 6, 1, true, true, 0, 0, 0);
|
|
11
|
+
|
|
12
|
+
const RAYS_OPTIONS: IRayParams = {
|
|
11
13
|
startColor: "rgb(255,131,0)",
|
|
12
14
|
endColor: "rgb(255,131,0)",
|
|
13
15
|
thickness: 5
|
|
14
16
|
}
|
|
15
|
-
const LABEL_OPTIONS = {
|
|
17
|
+
const LABEL_OPTIONS: ILabelParams = {
|
|
16
18
|
text: "",
|
|
17
19
|
size: 11,
|
|
18
20
|
color: "rgba(455,455,455,1.0)",
|
|
19
21
|
outlineColor: "rgba(0,0,0,0.34)",
|
|
20
22
|
outline: 0.23,
|
|
21
23
|
align: "center",
|
|
22
|
-
offset: [0, 18]
|
|
24
|
+
offset: [0, 18, 0]
|
|
23
25
|
};
|
|
24
26
|
|
|
25
27
|
const RULER_CORNER_OPTIONS = {
|
|
@@ -30,19 +32,18 @@ const RULER_CORNER_OPTIONS = {
|
|
|
30
32
|
object3d: obj3d
|
|
31
33
|
};
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
constructor(options = {}) {
|
|
35
|
-
super(options);
|
|
35
|
+
interface IHeightRulerSceneParams extends IRulerSceneParams {
|
|
36
36
|
|
|
37
|
+
}
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
pickingScale: 2
|
|
44
|
-
});
|
|
39
|
+
class HeightRulerScene extends RulerScene {
|
|
40
|
+
protected _geoRulerLayer: Vector;
|
|
41
|
+
protected _heightLabels: Entity[];
|
|
42
|
+
protected _rayH: Entity;
|
|
43
|
+
protected _rayV: Entity;
|
|
45
44
|
|
|
45
|
+
constructor(options: IHeightRulerSceneParams = {}) {
|
|
46
|
+
super(options);
|
|
46
47
|
|
|
47
48
|
this._geoRulerLayer = new Vector("rayHeightRuler", {
|
|
48
49
|
entities: [],
|
|
@@ -51,54 +52,85 @@ class HeightRulerScene extends RulerScene {
|
|
|
51
52
|
relativeToGround: false,
|
|
52
53
|
displayInLayerSwitcher: false
|
|
53
54
|
});
|
|
55
|
+
|
|
56
|
+
this._rayV = new Entity({
|
|
57
|
+
name: 'verticalRay',
|
|
58
|
+
ray: RAYS_OPTIONS
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
this._rayH = new Entity({
|
|
62
|
+
name: 'heightRay',
|
|
63
|
+
ray: RAYS_OPTIONS
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
this._heightLabels = [
|
|
67
|
+
new Entity({
|
|
68
|
+
name: 'startCornerLabel',
|
|
69
|
+
label: {
|
|
70
|
+
...LABEL_OPTIONS
|
|
71
|
+
}
|
|
72
|
+
}),
|
|
73
|
+
new Entity({
|
|
74
|
+
name: 'endCornerLabel',
|
|
75
|
+
label: {
|
|
76
|
+
...LABEL_OPTIONS
|
|
77
|
+
}
|
|
78
|
+
}),
|
|
79
|
+
new Entity({
|
|
80
|
+
name: 'deltaLabel',
|
|
81
|
+
label: {
|
|
82
|
+
...LABEL_OPTIONS
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
];
|
|
54
86
|
}
|
|
55
87
|
|
|
56
|
-
setVisibility(visibility) {
|
|
88
|
+
public override setVisibility(visibility: boolean) {
|
|
57
89
|
super.setVisibility(visibility);
|
|
58
90
|
this._geoRulerLayer.setVisibility(visibility);
|
|
59
91
|
}
|
|
60
92
|
|
|
61
|
-
get deltaLabel() {
|
|
62
|
-
return this._heightLabels[2]
|
|
93
|
+
public get deltaLabel(): Entity {
|
|
94
|
+
return this._heightLabels[2];
|
|
63
95
|
}
|
|
64
96
|
|
|
65
|
-
get startLabel() {
|
|
97
|
+
public get startLabel(): Entity {
|
|
66
98
|
return this._heightLabels[0]
|
|
67
99
|
}
|
|
68
100
|
|
|
69
|
-
get endLabel() {
|
|
101
|
+
public get endLabel(): Entity {
|
|
70
102
|
return this._heightLabels[1]
|
|
71
103
|
}
|
|
72
104
|
|
|
73
|
-
get corners() {
|
|
105
|
+
public get corners(): Entity[] {
|
|
74
106
|
return this._cornerEntity;
|
|
75
107
|
}
|
|
76
108
|
|
|
77
|
-
get startCorner() {
|
|
109
|
+
public get startCorner(): Entity {
|
|
78
110
|
return this.corners[0];
|
|
79
111
|
}
|
|
80
112
|
|
|
81
|
-
get endCorner() {
|
|
113
|
+
public get endCorner(): Entity {
|
|
82
114
|
return this.corners[1];
|
|
83
115
|
}
|
|
84
116
|
|
|
85
|
-
get startCornerLonLat() {
|
|
117
|
+
public get startCornerLonLat(): LonLat {
|
|
86
118
|
return this.startCorner.getLonLat();
|
|
87
119
|
}
|
|
88
120
|
|
|
89
|
-
get startCornerHeight() {
|
|
121
|
+
public get startCornerHeight(): number {
|
|
90
122
|
return this.startCornerLonLat.height;
|
|
91
123
|
}
|
|
92
124
|
|
|
93
|
-
get endCornerLonLat() {
|
|
125
|
+
public get endCornerLonLat(): LonLat {
|
|
94
126
|
return this.endCorner.getLonLat();
|
|
95
127
|
}
|
|
96
128
|
|
|
97
|
-
get endCornerHeight() {
|
|
129
|
+
public get endCornerHeight(): number {
|
|
98
130
|
return this.endCornerLonLat.height;
|
|
99
131
|
}
|
|
100
132
|
|
|
101
|
-
get maxHeightCornerLonLat() {
|
|
133
|
+
public get maxHeightCornerLonLat(): LonLat {
|
|
102
134
|
if (this.startCornerHeight <= this.endCornerHeight) {
|
|
103
135
|
return this.endCornerLonLat;
|
|
104
136
|
} else {
|
|
@@ -106,7 +138,7 @@ class HeightRulerScene extends RulerScene {
|
|
|
106
138
|
}
|
|
107
139
|
}
|
|
108
140
|
|
|
109
|
-
get minHeightCornerLonLat() {
|
|
141
|
+
public get minHeightCornerLonLat(): LonLat {
|
|
110
142
|
if (this.startCornerHeight > this.endCornerHeight) {
|
|
111
143
|
return this.endCornerLonLat;
|
|
112
144
|
} else {
|
|
@@ -114,23 +146,23 @@ class HeightRulerScene extends RulerScene {
|
|
|
114
146
|
}
|
|
115
147
|
}
|
|
116
148
|
|
|
117
|
-
get deltaHeight() {
|
|
149
|
+
public get deltaHeight(): number {
|
|
118
150
|
return Math.abs(this.startCornerHeight - this.endCornerHeight);
|
|
119
151
|
}
|
|
120
152
|
|
|
121
|
-
_drawLine(startLonLat, endLonLat, startPos) {
|
|
153
|
+
public override _drawLine(startLonLat: LonLat, endLonLat: LonLat, startPos?: Vec3) {
|
|
122
154
|
super._drawLine(startLonLat, endLonLat, startPos);
|
|
123
155
|
this._updateHeightRaysAndLabels();
|
|
124
156
|
}
|
|
125
157
|
|
|
126
|
-
async _updateHeightRaysAndLabels() {
|
|
158
|
+
protected async _updateHeightRaysAndLabels() {
|
|
127
159
|
const middleLonLat = this.minHeightCornerLonLat.clone();
|
|
128
160
|
middleLonLat.height = this.maxHeightCornerLonLat.height;
|
|
129
161
|
|
|
130
|
-
this._rayH.ray
|
|
131
|
-
this._rayH.ray
|
|
132
|
-
this._rayV.ray
|
|
133
|
-
this._rayV.ray
|
|
162
|
+
this._rayH.ray!.setStartPosition3v(this._planet!.ellipsoid.lonLatToCartesian(this.maxHeightCornerLonLat))
|
|
163
|
+
this._rayH.ray!.setEndPosition3v(this._planet!.ellipsoid.lonLatToCartesian(middleLonLat))
|
|
164
|
+
this._rayV.ray!.setStartPosition3v(this._planet!.ellipsoid.lonLatToCartesian(this.minHeightCornerLonLat));
|
|
165
|
+
this._rayV.ray!.setEndPosition3v(this._planet!.ellipsoid.lonLatToCartesian(middleLonLat));
|
|
134
166
|
|
|
135
167
|
middleLonLat.height = this.minHeightCornerLonLat.height + this.deltaHeight / 2;
|
|
136
168
|
|
|
@@ -138,15 +170,15 @@ class HeightRulerScene extends RulerScene {
|
|
|
138
170
|
this.startLabel.setLonLat(this.startCornerLonLat);
|
|
139
171
|
this.endLabel.setLonLat(this.endCornerLonLat);
|
|
140
172
|
|
|
141
|
-
const startHeight = await this._planet
|
|
142
|
-
endHeight = await this._planet
|
|
173
|
+
const startHeight = await this._planet!.getHeightDefault(this.startCornerLonLat),
|
|
174
|
+
endHeight = await this._planet!.getHeightDefault(this.endCornerLonLat)
|
|
143
175
|
|
|
144
|
-
this.deltaLabel.label
|
|
145
|
-
this.startLabel.label
|
|
146
|
-
this.endLabel.label
|
|
176
|
+
this.deltaLabel.label!.setText(`\u0394 ${Math.abs(startHeight - endHeight).toFixed(1)} m`);
|
|
177
|
+
this.startLabel.label!.setText(`P1 ${startHeight.toFixed(1)} m`)
|
|
178
|
+
this.endLabel.label!.setText(`P2 ${endHeight.toFixed(1)} m`)
|
|
147
179
|
}
|
|
148
180
|
|
|
149
|
-
clear() {
|
|
181
|
+
public override clear() {
|
|
150
182
|
this._rayH.remove();
|
|
151
183
|
this._rayV.remove();
|
|
152
184
|
this.startCorner.remove();
|
|
@@ -154,14 +186,15 @@ class HeightRulerScene extends RulerScene {
|
|
|
154
186
|
this.startLabel.remove();
|
|
155
187
|
this.endLabel.remove();
|
|
156
188
|
this.deltaLabel.remove();
|
|
157
|
-
super.clear()
|
|
158
|
-
|
|
159
|
-
this.
|
|
189
|
+
super.clear();
|
|
190
|
+
|
|
191
|
+
// this._rayH = null;
|
|
192
|
+
// this._rayV = null;
|
|
160
193
|
|
|
161
|
-
this._planet
|
|
194
|
+
this._planet!.removeLayer(this._geoRulerLayer);
|
|
162
195
|
}
|
|
163
196
|
|
|
164
|
-
_createCorners() {
|
|
197
|
+
public override _createCorners() {
|
|
165
198
|
this._cornerEntity = [
|
|
166
199
|
new Entity({
|
|
167
200
|
geoObject: RULER_CORNER_OPTIONS,
|
|
@@ -180,49 +213,21 @@ class HeightRulerScene extends RulerScene {
|
|
|
180
213
|
this._cornersLayer.setEntities(this._cornerEntity);
|
|
181
214
|
}
|
|
182
215
|
|
|
183
|
-
init() {
|
|
184
|
-
|
|
216
|
+
public override init() {
|
|
185
217
|
super.init();
|
|
186
218
|
this._createCorners();
|
|
187
|
-
|
|
188
|
-
'name': 'verticalRay',
|
|
189
|
-
'ray': RAYS_OPTIONS
|
|
190
|
-
});
|
|
191
|
-
this._rayH = new Entity({
|
|
192
|
-
'name': 'heightRay',
|
|
193
|
-
'ray': RAYS_OPTIONS
|
|
194
|
-
});
|
|
195
|
-
this._heightLabels = [
|
|
196
|
-
new Entity({
|
|
197
|
-
'name': 'startCornerLabel',
|
|
198
|
-
'label': {
|
|
199
|
-
...LABEL_OPTIONS
|
|
200
|
-
}
|
|
201
|
-
}),
|
|
202
|
-
new Entity({
|
|
203
|
-
'name': 'endCornerLabel',
|
|
204
|
-
'label': {
|
|
205
|
-
...LABEL_OPTIONS
|
|
206
|
-
}
|
|
207
|
-
}),
|
|
208
|
-
new Entity({
|
|
209
|
-
'name': 'deltaLabel',
|
|
210
|
-
'label': {
|
|
211
|
-
...LABEL_OPTIONS
|
|
212
|
-
}
|
|
213
|
-
})
|
|
214
|
-
];
|
|
219
|
+
|
|
215
220
|
this._labelLayer.addEntities(this._heightLabels);
|
|
216
221
|
this._geoRulerLayer.addEntities([this._rayH, this._rayV]);
|
|
217
222
|
|
|
218
|
-
this._planet
|
|
223
|
+
this._planet!.addLayer(this._geoRulerLayer);
|
|
219
224
|
}
|
|
220
225
|
|
|
221
|
-
frame() {
|
|
226
|
+
public override frame() {
|
|
222
227
|
super.frame()
|
|
223
228
|
this._updateHeightRaysAndLabels();
|
|
224
229
|
}
|
|
225
230
|
}
|
|
226
231
|
|
|
227
232
|
|
|
228
|
-
export {
|
|
233
|
+
export {HeightRulerScene};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { RulerSwitcher } from "../RulerSwitcher
|
|
2
|
-
import { HeightRuler } from "./HeightRuler
|
|
1
|
+
import { RulerSwitcher } from "../RulerSwitcher";
|
|
2
|
+
import { HeightRuler } from "./HeightRuler";
|
|
3
3
|
|
|
4
4
|
export class HeightRulerSwitcher extends RulerSwitcher {
|
|
5
|
-
constructor(options = {}) {
|
|
5
|
+
constructor(options: { ignoreTerrain?: boolean } = {}) {
|
|
6
6
|
super({
|
|
7
7
|
name: `HeightRulerSwitcher`,
|
|
8
8
|
...options
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { CompassButton } from "./CompassButton";
|
|
2
|
+
import { Control } from "./Control";
|
|
3
|
+
import { DebugInfo } from "./DebugInfo";
|
|
4
|
+
import { DrawingSwitcher } from "./DrawingSwitcher";
|
|
5
|
+
import { EarthCoordinates } from "./EarthCoordinates";
|
|
6
|
+
import { EarthNavigation } from "./EarthNavigation";
|
|
7
|
+
import { GeoImageDragControl } from "./GeoImageDragControl";
|
|
8
|
+
import { KeyboardNavigation } from "./KeyboardNavigation";
|
|
9
|
+
import { LayerAnimation } from "./LayerAnimation";
|
|
10
|
+
import { LayerSwitcher } from "./LayerSwitcher";
|
|
11
|
+
import { Lighting } from "./Lighting";
|
|
12
|
+
import { MouseNavigation } from "./MouseNavigation";
|
|
13
|
+
import { MouseWheelZoomControl } from "./MouseWheelZoomControl";
|
|
14
|
+
import { RulerSwitcher } from "./RulerSwitcher";
|
|
15
|
+
import { ScaleControl } from "./ScaleControl";
|
|
16
|
+
import { ShowFps } from "./ShowFps";
|
|
17
|
+
import { SimpleNavigation } from "./SimpleNavigation";
|
|
18
|
+
import { SimpleSkyBackground } from "./SimpleSkyBackground";
|
|
19
|
+
import { Sun } from "./Sun";
|
|
20
|
+
import { ToggleWireframe } from "./ToggleWireframe";
|
|
21
|
+
import { TouchNavigation } from "./TouchNavigation";
|
|
22
|
+
import { ZoomControl } from "./ZoomControl";
|
|
23
|
+
import { DrawingControl } from "./drawing/DrawingControl";
|
|
24
|
+
import { HeightRuler } from "./heightRuler/HeightRuler";
|
|
25
|
+
import { Ruler } from "./ruler/Ruler";
|
|
26
|
+
import { Selection } from "./selection/Selection";
|
|
27
|
+
import { TimelineControl } from "./timeline/TimelineControl";
|
|
28
|
+
|
|
29
|
+
export {
|
|
30
|
+
CompassButton, Control, DebugInfo, DrawingControl, DrawingSwitcher, EarthCoordinates, EarthNavigation, GeoImageDragControl,
|
|
31
|
+
HeightRuler,
|
|
32
|
+
KeyboardNavigation, LayerAnimation, LayerSwitcher,
|
|
33
|
+
Lighting, MouseNavigation,
|
|
34
|
+
MouseWheelZoomControl,
|
|
35
|
+
Ruler,
|
|
36
|
+
RulerSwitcher,
|
|
37
|
+
ScaleControl, Selection, ShowFps,
|
|
38
|
+
SimpleNavigation,
|
|
39
|
+
SimpleSkyBackground,
|
|
40
|
+
Sun, TimelineControl,
|
|
41
|
+
ToggleWireframe,
|
|
42
|
+
TouchNavigation,
|
|
43
|
+
ZoomControl
|
|
44
|
+
};
|
|
45
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {Control, IControlParams} from "../Control";
|
|
2
|
+
import {RulerScene} from "./RulerScene";
|
|
3
|
+
|
|
4
|
+
export interface IRulerParams extends IControlParams {
|
|
5
|
+
ignoreTerrain?: boolean
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class Ruler extends Control {
|
|
9
|
+
protected _rulerScene: RulerScene;
|
|
10
|
+
|
|
11
|
+
constructor(options: IRulerParams = {}) {
|
|
12
|
+
super(options);
|
|
13
|
+
|
|
14
|
+
this._rulerScene = new RulerScene({
|
|
15
|
+
name: `rulerScene:${this.__id}`,
|
|
16
|
+
ignoreTerrain: options.ignoreTerrain
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public set ignoreTerrain(v: boolean) {
|
|
21
|
+
this._rulerScene.ignoreTerrain = v;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public override oninit() {
|
|
25
|
+
this._rulerScene.bindPlanet(this.planet!);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public override onactivate() {
|
|
29
|
+
this.renderer && this.renderer.addNode(this._rulerScene);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public override ondeactivate() {
|
|
33
|
+
this.renderer && this.renderer.removeNode(this._rulerScene);
|
|
34
|
+
}
|
|
35
|
+
}
|