@openglobus/og 0.18.0 → 0.18.1
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 +8 -8
- package/lib/@openglobus/og.esm.js +2 -0
- package/lib/@openglobus/og.esm.js.map +1 -0
- package/lib/@openglobus/og.umd.js +2 -0
- package/lib/@openglobus/og.umd.js.map +1 -0
- package/lib/js/Clock.d.ts +106 -0
- package/{src/Clock.ts → lib/js/Clock.js} +31 -126
- package/lib/js/Deferred.d.ts +6 -0
- package/lib/js/Deferred.js +13 -0
- package/lib/js/Events.d.ts +90 -0
- package/{src/Events.ts → lib/js/Events.js} +29 -84
- package/lib/js/Extent.d.ts +145 -0
- package/{src/Extent.ts → lib/js/Extent.js} +74 -120
- package/lib/js/Globe.d.ts +132 -0
- package/{src/Globe.ts → lib/js/Globe.js} +61 -159
- package/lib/js/ImageCanvas.d.ts +128 -0
- package/{src/ImageCanvas.ts → lib/js/ImageCanvas.js} +24 -65
- package/lib/js/Lock.d.ts +15 -0
- package/{src/Lock.ts → lib/js/Lock.js} +7 -21
- package/lib/js/LonLat.d.ts +128 -0
- package/{src/LonLat.ts → lib/js/LonLat.js} +44 -75
- package/lib/js/Object3d.d.ts +49 -0
- package/{src/Object3d.ts → lib/js/Object3d.js} +64 -184
- package/lib/js/Popup.d.ts +46 -0
- package/{src/Popup.ts → lib/js/Popup.js} +42 -110
- package/lib/js/QueueArray.d.ts +16 -0
- package/{src/QueueArray.ts → lib/js/QueueArray.js} +12 -25
- package/lib/js/Rectangle.d.ts +76 -0
- package/{src/Rectangle.ts → lib/js/Rectangle.js} +12 -50
- package/lib/js/Stack.d.ts +20 -0
- package/{src/Stack.ts → lib/js/Stack.js} +13 -29
- package/lib/js/astro/astro.d.ts +39 -0
- package/{src/astro/astro.ts → lib/js/astro/astro.js} +2 -8
- package/lib/js/astro/earth.d.ts +8 -0
- package/{src/astro/earth.ts → lib/js/astro/earth.js} +3 -39
- package/lib/js/astro/jd.d.ts +234 -0
- package/{src/astro/jd.ts → lib/js/astro/jd.js} +55 -134
- package/lib/js/astro/orbit.d.ts +5 -0
- package/{src/astro/orbit.ts → lib/js/astro/orbit.js} +26 -39
- package/lib/js/astro/rotation.d.ts +2 -0
- package/{src/astro/rotation.ts → lib/js/astro/rotation.js} +2 -11
- package/lib/js/bv/Box.d.ts +32 -0
- package/{src/bv/Box.ts → lib/js/bv/Box.js} +7 -35
- package/lib/js/bv/Sphere.d.ts +37 -0
- package/{src/bv/Sphere.ts → lib/js/bv/Sphere.js} +6 -34
- package/{src/bv/index.ts → lib/js/bv/index.d.ts} +0 -1
- package/lib/js/bv/index.js +3 -0
- package/lib/js/camera/Camera.d.ts +314 -0
- package/{src/camera/Camera.ts → lib/js/camera/Camera.js} +77 -326
- package/lib/js/camera/Frustum.d.ts +139 -0
- package/{src/camera/Frustum.ts → lib/js/camera/Frustum.js} +66 -185
- package/lib/js/camera/PlanetCamera.d.ts +234 -0
- package/{src/camera/PlanetCamera.ts → lib/js/camera/PlanetCamera.js} +65 -338
- package/{src/camera/index.ts → lib/js/camera/index.d.ts} +0 -1
- package/lib/js/camera/index.js +3 -0
- package/lib/js/cons.d.ts +40 -0
- package/{src/cons.ts → lib/js/cons.js} +10 -22
- package/lib/js/control/Atmosphere.d.ts +16 -0
- package/{src/control/Atmosphere.ts → lib/js/control/Atmosphere.js} +33 -86
- package/lib/js/control/CompassButton.d.ts +16 -0
- package/{src/control/CompassButton.ts → lib/js/control/CompassButton.js} +18 -43
- package/lib/js/control/Control.d.ts +100 -0
- package/{src/control/Control.ts → lib/js/control/Control.js} +22 -89
- package/lib/js/control/DebugInfo.d.ts +25 -0
- package/{src/control/DebugInfo.ts → lib/js/control/DebugInfo.js} +38 -84
- package/lib/js/control/DrawingSwitcher.d.ts +13 -0
- package/{src/control/DrawingSwitcher.ts → lib/js/control/DrawingSwitcher.js} +13 -30
- package/lib/js/control/EarthCoordinates.d.ts +41 -0
- package/{src/control/EarthCoordinates.ts → lib/js/control/EarthCoordinates.js} +58 -119
- package/lib/js/control/EarthNavigation.d.ts +50 -0
- package/{src/control/EarthNavigation.ts → lib/js/control/EarthNavigation.js} +70 -161
- package/lib/js/control/GeoImageDragControl.d.ts +22 -0
- package/{src/control/GeoImageDragControl.ts → lib/js/control/GeoImageDragControl.js} +26 -49
- package/lib/js/control/KeyboardNavigation.d.ts +28 -0
- package/{src/control/KeyboardNavigation.ts → lib/js/control/KeyboardNavigation.js} +67 -92
- package/lib/js/control/LayerAnimation.d.ts +71 -0
- package/{src/control/LayerAnimation.ts → lib/js/control/LayerAnimation.js} +82 -162
- package/lib/js/control/LayerSwitcher.d.ts +21 -0
- package/{src/control/LayerSwitcher.ts → lib/js/control/LayerSwitcher.js} +16 -41
- package/lib/js/control/Lighting.d.ts +49 -0
- package/{src/control/Lighting.ts → lib/js/control/Lighting.js} +106 -219
- package/lib/js/control/MouseNavigation.d.ts +62 -0
- package/{src/control/MouseNavigation.ts → lib/js/control/MouseNavigation.js} +105 -211
- package/lib/js/control/MouseWheelZoomControl.d.ts +44 -0
- package/lib/js/control/MouseWheelZoomControl.js +181 -0
- package/lib/js/control/RulerSwitcher.d.ts +17 -0
- package/{src/control/RulerSwitcher.ts → lib/js/control/RulerSwitcher.js} +13 -28
- package/lib/js/control/ScaleControl.d.ts +24 -0
- package/lib/js/control/ScaleControl.js +91 -0
- package/lib/js/control/SegmentBoundVisualization.d.ts +12 -0
- package/lib/js/control/SegmentBoundVisualization.js +37 -0
- package/lib/js/control/ShowFps.d.ts +9 -0
- package/lib/js/control/ShowFps.js +20 -0
- package/lib/js/control/SimpleNavigation.d.ts +25 -0
- package/{src/control/SimpleNavigation.ts → lib/js/control/SimpleNavigation.js} +29 -51
- package/lib/js/control/SimpleSkyBackground.d.ts +15 -0
- package/{src/control/SimpleSkyBackground.ts → lib/js/control/SimpleSkyBackground.js} +21 -48
- package/lib/js/control/Sun.d.ts +33 -0
- package/{src/control/Sun.ts → lib/js/control/Sun.js} +34 -85
- package/lib/js/control/ToggleWireframe.d.ts +14 -0
- package/lib/js/control/ToggleWireframe.js +28 -0
- package/lib/js/control/TouchNavigation.d.ts +52 -0
- package/{src/control/TouchNavigation.ts → lib/js/control/TouchNavigation.js} +88 -193
- package/lib/js/control/ZoomControl.d.ts +27 -0
- package/{src/control/ZoomControl.ts → lib/js/control/ZoomControl.js} +25 -50
- package/lib/js/control/drawing/DrawingControl.d.ts +12 -0
- package/{src/control/drawing/DrawingControl.ts → lib/js/control/drawing/DrawingControl.js} +10 -20
- package/lib/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
- package/{src/control/drawing/LineStringDrawingScene.ts → lib/js/control/drawing/LineStringDrawingScene.js} +28 -85
- package/lib/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
- package/{src/control/drawing/PolygonDrawingScene.ts → lib/js/control/drawing/PolygonDrawingScene.js} +190 -388
- package/lib/js/control/elevationProfile/ElevationProfile.d.ts +61 -0
- package/{src/control/elevationProfile/ElevationProfile.ts → lib/js/control/elevationProfile/ElevationProfile.js} +56 -148
- package/lib/js/control/heightRuler/HeightRuler.d.ts +7 -0
- package/{src/control/heightRuler/HeightRuler.ts → lib/js/control/heightRuler/HeightRuler.js} +4 -9
- package/lib/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
- package/{src/control/heightRuler/HeightRulerScene.ts → lib/js/control/heightRuler/HeightRulerScene.js} +47 -99
- package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
- package/{src/control/heightRuler/HeightRulerSwitcher.ts → lib/js/control/heightRuler/HeightRulerSwitcher.js} +2 -4
- package/{src/control/index.ts → lib/js/control/index.d.ts} +1 -18
- package/lib/js/control/index.js +28 -0
- package/lib/js/control/ruler/Ruler.d.ts +13 -0
- package/lib/js/control/ruler/Ruler.js +23 -0
- package/lib/js/control/ruler/RulerScene.d.ts +88 -0
- package/lib/js/control/ruler/RulerScene.js +324 -0
- package/lib/js/control/selection/Selection.d.ts +55 -0
- package/{src/control/selection/Selection.ts → lib/js/control/selection/Selection.js} +15 -34
- package/lib/js/control/selection/SelectionScene.d.ts +44 -0
- package/{src/control/selection/SelectionScene.ts → lib/js/control/selection/SelectionScene.js} +26 -113
- package/lib/js/control/timeline/TimelineControl.d.ts +18 -0
- package/{src/control/timeline/TimelineControl.ts → lib/js/control/timeline/TimelineControl.js} +13 -43
- package/lib/js/control/timeline/TimelineModel.d.ts +41 -0
- package/{src/control/timeline/TimelineModel.ts → lib/js/control/timeline/TimelineModel.js} +26 -74
- package/lib/js/control/timeline/TimelineView.d.ts +85 -0
- package/{src/control/timeline/TimelineView.ts → lib/js/control/timeline/TimelineView.js} +133 -281
- package/lib/js/control/timeline/timelineUtils.d.ts +12 -0
- package/lib/js/control/timeline/timelineUtils.js +112 -0
- package/lib/js/control/visibleExtent/Segment.d.ts +277 -0
- package/{src → lib/js}/control/visibleExtent/Segment.js +145 -698
- package/lib/js/control/visibleExtent/VisibleExtent.d.ts +5 -0
- package/{src → lib/js}/control/visibleExtent/VisibleExtent.js +1 -18
- package/lib/js/control/visibleExtent/drawnode.d.ts +7 -0
- package/{src/control/visibleExtent/drawnode.ts → lib/js/control/visibleExtent/drawnode.js} +1 -28
- package/lib/js/ellipsoid/Ellipsoid.d.ts +187 -0
- package/{src/ellipsoid/Ellipsoid.ts → lib/js/ellipsoid/Ellipsoid.js} +82 -267
- package/lib/js/ellipsoid/index.d.ts +3 -0
- package/lib/js/ellipsoid/index.js +3 -0
- package/lib/js/ellipsoid/wgs84.d.ts +6 -0
- package/{src/ellipsoid/wgs84.ts → lib/js/ellipsoid/wgs84.js} +1 -2
- package/lib/js/entity/BaseBillboard.d.ts +222 -0
- package/{src/entity/BaseBillboard.ts → lib/js/entity/BaseBillboard.js} +48 -165
- package/lib/js/entity/BaseBillboardHandler.d.ts +81 -0
- package/{src/entity/BaseBillboardHandler.ts → lib/js/entity/BaseBillboardHandler.js} +139 -365
- package/lib/js/entity/Billboard.d.ts +113 -0
- package/{src/entity/Billboard.ts → lib/js/entity/Billboard.js} +19 -83
- package/lib/js/entity/BillboardHandler.d.ts +15 -0
- package/{src/entity/BillboardHandler.ts → lib/js/entity/BillboardHandler.js} +27 -59
- package/lib/js/entity/Entity.d.ts +354 -0
- package/{src/entity/Entity.ts → lib/js/entity/Entity.js} +101 -373
- package/lib/js/entity/EntityCollection.d.ts +364 -0
- package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +51 -353
- package/lib/js/entity/GeoObject.d.ts +138 -0
- package/{src/entity/GeoObject.ts → lib/js/entity/GeoObject.js} +41 -146
- package/lib/js/entity/GeoObjectHandler.d.ts +99 -0
- package/{src/entity/GeoObjectHandler.ts → lib/js/entity/GeoObjectHandler.js} +162 -423
- package/lib/js/entity/Geometry.d.ts +111 -0
- package/lib/js/entity/Geometry.js +283 -0
- package/lib/js/entity/GeometryHandler.d.ts +84 -0
- package/{src/entity/GeometryHandler.ts → lib/js/entity/GeometryHandler.js} +162 -657
- package/lib/js/entity/Label.d.ts +207 -0
- package/{src/entity/Label.ts → lib/js/entity/Label.js} +62 -164
- package/lib/js/entity/LabelHandler.d.ts +65 -0
- package/{src/entity/LabelHandler.ts → lib/js/entity/LabelHandler.js} +175 -408
- package/lib/js/entity/LabelWorker.d.ts +15 -0
- package/{src/entity/LabelWorker.ts → lib/js/entity/LabelWorker.js} +24 -45
- package/lib/js/entity/PointCloud.d.ts +179 -0
- package/{src/entity/PointCloud.ts → lib/js/entity/PointCloud.js} +65 -265
- package/lib/js/entity/PointCloudHandler.d.ts +42 -0
- package/{src/entity/PointCloudHandler.ts → lib/js/entity/PointCloudHandler.js} +19 -62
- package/lib/js/entity/Polyline.d.ts +337 -0
- package/{src/entity/Polyline.ts → lib/js/entity/Polyline.js} +289 -924
- package/lib/js/entity/PolylineHandler.d.ts +22 -0
- package/{src/entity/PolylineHandler.ts → lib/js/entity/PolylineHandler.js} +12 -37
- package/lib/js/entity/Ray.d.ts +133 -0
- package/{src/entity/Ray.ts → lib/js/entity/Ray.js} +26 -146
- package/lib/js/entity/RayHandler.d.ts +70 -0
- package/{src/entity/RayHandler.ts → lib/js/entity/RayHandler.js} +102 -342
- package/lib/js/entity/Strip.d.ts +127 -0
- package/{src/entity/Strip.ts → lib/js/entity/Strip.js} +102 -372
- package/lib/js/entity/StripHandler.d.ts +42 -0
- package/{src/entity/StripHandler.ts → lib/js/entity/StripHandler.js} +22 -74
- package/{src/entity/index.ts → lib/js/entity/index.d.ts} +1 -2
- package/lib/js/entity/index.js +11 -0
- package/lib/js/index.d.ts +33 -0
- package/lib/js/index.js +33 -0
- package/lib/js/input/KeyboardHandler.d.ts +33 -0
- package/{src/input/KeyboardHandler.ts → lib/js/input/KeyboardHandler.js} +45 -84
- package/lib/js/input/MouseHandler.d.ts +16 -0
- package/{src/input/MouseHandler.ts → lib/js/input/MouseHandler.js} +12 -36
- package/lib/js/input/TouchHandler.d.ts +11 -0
- package/{src/input/TouchHandler.ts → lib/js/input/TouchHandler.js} +11 -23
- package/lib/js/input/input.d.ts +3 -0
- package/{src/input/input.ts → lib/js/input/input.js} +1 -1
- package/lib/js/layer/BaseGeoImage.d.ts +145 -0
- package/{src/layer/BaseGeoImage.ts → lib/js/layer/BaseGeoImage.js} +70 -235
- package/lib/js/layer/CanvasTiles.d.ts +103 -0
- package/{src/layer/CanvasTiles.ts → lib/js/layer/CanvasTiles.js} +54 -146
- package/lib/js/layer/GeoImage.d.ts +61 -0
- package/{src/layer/GeoImage.ts → lib/js/layer/GeoImage.js} +24 -54
- package/lib/js/layer/GeoTexture2d.d.ts +17 -0
- package/lib/js/layer/GeoTexture2d.js +37 -0
- package/lib/js/layer/GeoVideo.d.ts +68 -0
- package/{src/layer/GeoVideo.ts → lib/js/layer/GeoVideo.js} +31 -61
- package/lib/js/layer/KML.d.ts +72 -0
- package/{src/layer/KML.ts → lib/js/layer/KML.js} +94 -138
- package/lib/js/layer/Layer.d.ts +401 -0
- package/{src/layer/Layer.ts → lib/js/layer/Layer.js} +92 -443
- package/lib/js/layer/Material.d.ts +34 -0
- package/{src/layer/Material.ts → lib/js/layer/Material.js} +9 -43
- package/lib/js/layer/Vector.d.ts +244 -0
- package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +147 -418
- package/lib/js/layer/WMS.d.ts +75 -0
- package/{src/layer/WMS.ts → lib/js/layer/WMS.js} +18 -100
- package/lib/js/layer/XYZ.d.ts +149 -0
- package/{src/layer/XYZ.ts → lib/js/layer/XYZ.js} +71 -171
- package/lib/js/layer/index.d.ts +11 -0
- package/lib/js/layer/index.js +11 -0
- package/lib/js/light/LightSource.d.ts +174 -0
- package/{src/light/LightSource.ts → lib/js/light/LightSource.js} +22 -131
- package/lib/js/math/Line2.d.ts +11 -0
- package/{src/math/Line2.ts → lib/js/math/Line2.js} +5 -15
- package/lib/js/math/Line3.d.ts +28 -0
- package/lib/js/math/Line3.js +85 -0
- package/lib/js/math/Mat3.d.ts +77 -0
- package/{src/math/Mat3.ts → lib/js/math/Mat3.js} +22 -51
- package/lib/js/math/Mat4.d.ts +195 -0
- package/{src/math/Mat4.ts → lib/js/math/Mat4.js} +53 -219
- package/lib/js/math/Plane.d.ts +20 -0
- package/{src/math/Plane.ts → lib/js/math/Plane.js} +26 -40
- package/lib/js/math/Quat.d.ts +373 -0
- package/{src/math/Quat.ts → lib/js/math/Quat.js} +106 -319
- package/lib/js/math/Ray.d.ts +76 -0
- package/{src/math/Ray.ts → lib/js/math/Ray.js} +21 -66
- package/lib/js/math/Vec2.d.ts +310 -0
- package/{src/math/Vec2.ts → lib/js/math/Vec2.js} +55 -121
- package/lib/js/math/Vec3.d.ts +472 -0
- package/{src/math/Vec3.ts → lib/js/math/Vec3.js} +103 -236
- package/lib/js/math/Vec4.d.ts +163 -0
- package/{src/math/Vec4.ts → lib/js/math/Vec4.js} +23 -79
- package/lib/js/math/coder.d.ts +51 -0
- package/{src/math/coder.ts → lib/js/math/coder.js} +14 -20
- package/lib/js/math/index.d.ts +11 -0
- package/lib/js/math/index.js +11 -0
- package/lib/js/math.d.ts +266 -0
- package/{src/math.ts → lib/js/math.js} +37 -85
- package/lib/js/mercator.d.ts +92 -0
- package/{src/mercator.ts → lib/js/mercator.js} +13 -37
- package/lib/js/proj/EPSG3857.d.ts +9 -0
- package/{src/proj/EPSG3857.ts → lib/js/proj/EPSG3857.js} +0 -2
- package/lib/js/proj/EPSG4326.d.ts +9 -0
- package/{src/proj/EPSG4326.ts → lib/js/proj/EPSG4326.js} +0 -2
- package/lib/js/proj/Proj.d.ts +43 -0
- package/{src/proj/Proj.ts → lib/js/proj/Proj.js} +4 -29
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.js +19 -0
- package/lib/js/quadTree/EntityCollectionNode.d.ts +54 -0
- package/{src/quadTree/EntityCollectionNode.ts → lib/js/quadTree/EntityCollectionNode.js} +83 -150
- package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/MarsQuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/Node.d.ts +61 -0
- package/{src/quadTree/Node.ts → lib/js/quadTree/Node.js} +140 -357
- package/lib/js/quadTree/QuadTreeStrategy.d.ts +25 -0
- package/{src/quadTree/QuadTreeStrategy.ts → lib/js/quadTree/QuadTreeStrategy.js} +13 -44
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +15 -0
- package/lib/js/quadTree/index.d.ts +12 -0
- package/lib/js/quadTree/index.js +12 -0
- package/lib/js/quadTree/quadTree.d.ts +40 -0
- package/{src/quadTree/quadTree.ts → lib/js/quadTree/quadTree.js} +0 -9
- package/lib/js/renderer/Renderer.d.ts +311 -0
- package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +169 -611
- package/lib/js/renderer/RendererEvents.d.ts +237 -0
- package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +134 -471
- package/lib/js/scene/Axes.d.ts +12 -0
- package/lib/js/scene/Axes.js +59 -0
- package/lib/js/scene/BaseNode.d.ts +61 -0
- package/{src/scene/BaseNode.ts → lib/js/scene/BaseNode.js} +11 -57
- package/lib/js/scene/Planet.d.ts +623 -0
- package/{src/scene/Planet.ts → lib/js/scene/Planet.js} +251 -935
- package/lib/js/scene/RenderNode.d.ts +150 -0
- package/{src/scene/RenderNode.ts → lib/js/scene/RenderNode.js} +33 -138
- package/lib/js/scene/SkyBox.d.ts +13 -0
- package/{src/scene/SkyBox.ts → lib/js/scene/SkyBox.js} +16 -37
- package/{src/scene/index.ts → lib/js/scene/index.d.ts} +0 -1
- package/lib/js/scene/index.js +5 -0
- package/lib/js/segment/Segment.d.ts +278 -0
- package/{src/segment/Segment.ts → lib/js/segment/Segment.js} +242 -913
- package/lib/js/segment/SegmentLonLat.d.ts +48 -0
- package/{src/segment/SegmentLonLat.ts → lib/js/segment/SegmentLonLat.js} +58 -132
- package/lib/js/segment/SegmentLonLatWgs84.d.ts +10 -0
- package/lib/js/segment/SegmentLonLatWgs84.js +23 -0
- package/lib/js/segment/Slice.d.ts +13 -0
- package/{src/segment/Slice.ts → lib/js/segment/Slice.js} +4 -22
- package/lib/js/segment/segmentHelper.d.ts +18 -0
- package/{src/segment/segmentHelper.ts → lib/js/segment/segmentHelper.js} +30 -88
- package/lib/js/shaders/atmos.d.ts +4 -0
- package/{src/shaders/atmos.ts → lib/js/shaders/atmos.js} +8 -26
- package/lib/js/shaders/billboard.d.ts +3 -0
- package/{src/shaders/billboard.ts → lib/js/shaders/billboard.js} +9 -18
- package/lib/js/shaders/bloom.d.ts +2 -0
- package/{src/shaders/bloom.ts → lib/js/shaders/bloom.js} +5 -8
- package/lib/js/shaders/blur.d.ts +3 -0
- package/{src/shaders/blur.ts → lib/js/shaders/blur.js} +11 -19
- package/lib/js/shaders/depth.d.ts +2 -0
- package/{src/shaders/depth.ts → lib/js/shaders/depth.js} +3 -6
- package/lib/js/shaders/drawnode.d.ts +8 -0
- package/{src/shaders/drawnode.ts → lib/js/shaders/drawnode.js} +23 -75
- package/lib/js/shaders/geoObject.d.ts +3 -0
- package/{src/shaders/geoObject.ts → lib/js/shaders/geoObject.js} +51 -63
- package/lib/js/shaders/label.d.ts +4 -0
- package/{src/shaders/label.ts → lib/js/shaders/label.js} +12 -25
- package/lib/js/shaders/lumFilter.d.ts +2 -0
- package/{src/shaders/lumFilter.ts → lib/js/shaders/lumFilter.js} +4 -7
- package/lib/js/shaders/pickingMask.d.ts +2 -0
- package/{src/shaders/pickingMask.ts → lib/js/shaders/pickingMask.js} +5 -8
- package/lib/js/shaders/pointCloud.d.ts +2 -0
- package/{src/shaders/pointCloud.ts → lib/js/shaders/pointCloud.js} +4 -7
- package/lib/js/shaders/polyline.d.ts +3 -0
- package/{src/shaders/polyline.ts → lib/js/shaders/polyline.js} +7 -22
- package/lib/js/shaders/ray.d.ts +2 -0
- package/{src/shaders/ray.ts → lib/js/shaders/ray.js} +4 -7
- package/lib/js/shaders/screenFrame.d.ts +2 -0
- package/{src/shaders/screenFrame.ts → lib/js/shaders/screenFrame.js} +5 -8
- package/lib/js/shaders/skybox.d.ts +2 -0
- package/{src/shaders/skybox.ts → lib/js/shaders/skybox.js} +10 -13
- package/lib/js/shaders/toneMapping.d.ts +2 -0
- package/{src/shaders/toneMapping.ts → lib/js/shaders/toneMapping.js} +5 -8
- package/lib/js/shaders/utils.d.ts +1 -0
- package/{src/shaders/utils.ts → lib/js/shaders/utils.js} +1 -1
- package/lib/js/terrain/BilTerrain.d.ts +18 -0
- package/{src/terrain/BilTerrain.ts → lib/js/terrain/BilTerrain.js} +21 -118
- package/lib/js/terrain/EmptyTerrain.d.ts +106 -0
- package/{src/terrain/EmptyTerrain.ts → lib/js/terrain/EmptyTerrain.js} +20 -144
- package/lib/js/terrain/Geoid.d.ts +33 -0
- package/lib/js/terrain/Geoid.js +191 -0
- package/lib/js/terrain/GlobusTerrain.d.ts +134 -0
- package/{src/terrain/GlobusTerrain.ts → lib/js/terrain/GlobusTerrain.js} +82 -239
- package/lib/js/terrain/MapboxTerrain.d.ts +21 -0
- package/{src/terrain/MapboxTerrain.ts → lib/js/terrain/MapboxTerrain.js} +46 -215
- package/{src/terrain/index.ts → lib/js/terrain/index.d.ts} +0 -1
- package/lib/js/terrain/index.js +5 -0
- package/lib/js/ui/Button.d.ts +32 -0
- package/lib/js/ui/Button.js +78 -0
- package/lib/js/ui/ButtonGroup.d.ts +16 -0
- package/lib/js/ui/ButtonGroup.js +41 -0
- package/lib/js/ui/Dialog.d.ts +55 -0
- package/lib/js/ui/Dialog.js +173 -0
- package/lib/js/ui/Slider.d.ts +38 -0
- package/lib/js/ui/Slider.js +129 -0
- package/lib/js/ui/ToggleButton.d.ts +20 -0
- package/lib/js/ui/ToggleButton.js +42 -0
- package/lib/js/ui/View.d.ts +37 -0
- package/{src/ui/View.ts → lib/js/ui/View.js} +31 -77
- package/lib/js/ui/icons.d.ts +1 -0
- package/{src/ui/icons.ts → lib/js/ui/icons.js} +1 -1
- package/lib/js/utils/BaseWorker.d.ts +14 -0
- package/{src/utils/BaseWorker.ts → lib/js/utils/BaseWorker.js} +15 -28
- package/lib/js/utils/FontAtlas.d.ts +82 -0
- package/{src/utils/FontAtlas.ts → lib/js/utils/FontAtlas.js} +45 -181
- package/lib/js/utils/GeoImageCreator.d.ts +34 -0
- package/{src/utils/GeoImageCreator.ts → lib/js/utils/GeoImageCreator.js} +34 -91
- package/lib/js/utils/ImagesCacheManager.d.ts +22 -0
- package/{src/utils/ImagesCacheManager.ts → lib/js/utils/ImagesCacheManager.js} +16 -38
- package/lib/js/utils/Loader.d.ts +63 -0
- package/lib/js/utils/Loader.js +156 -0
- package/lib/js/utils/NormalMapCreator.d.ts +52 -0
- package/{src/utils/NormalMapCreator.ts → lib/js/utils/NormalMapCreator.js} +64 -195
- package/lib/js/utils/PlainSegmentWorker.d.ts +24 -0
- package/{src/utils/PlainSegmentWorker.ts → lib/js/utils/PlainSegmentWorker.js} +24 -56
- package/lib/js/utils/TerrainWorker.d.ts +28 -0
- package/{src/utils/TerrainWorker.ts → lib/js/utils/TerrainWorker.js} +19 -56
- package/lib/js/utils/TextureAtlas.d.ts +113 -0
- package/{src/utils/TextureAtlas.ts → lib/js/utils/TextureAtlas.js} +40 -131
- package/lib/js/utils/VectorTileCreator.d.ts +18 -0
- package/{src/utils/VectorTileCreator.ts → lib/js/utils/VectorTileCreator.js} +61 -147
- package/lib/js/utils/colorTable.d.ts +3 -0
- package/{src/utils/colorTable.ts → lib/js/utils/colorTable.js} +2 -2
- package/lib/js/utils/earcut.d.ts +7 -0
- package/{src/utils/earcut.ts → lib/js/utils/earcut.js} +95 -223
- package/lib/js/utils/objParser.d.ts +24 -0
- package/{src/utils/objParser.ts → lib/js/utils/objParser.js} +38 -93
- package/lib/js/utils/shared.d.ts +267 -0
- package/{src/utils/shared.ts → lib/js/utils/shared.js} +184 -341
- package/lib/js/utils/units.d.ts +16 -0
- package/lib/js/utils/units.js +61 -0
- package/lib/js/webgl/BaseFramebuffer.d.ts +53 -0
- package/{src/webgl/BaseFramebuffer.ts → lib/js/webgl/BaseFramebuffer.js} +22 -59
- package/lib/js/webgl/Framebuffer.d.ts +69 -0
- package/{src/webgl/Framebuffer.ts → lib/js/webgl/Framebuffer.js} +30 -87
- package/lib/js/webgl/Handler.d.ts +473 -0
- package/{src/webgl/Handler.ts → lib/js/webgl/Handler.js} +175 -586
- package/lib/js/webgl/Multisample.d.ts +27 -0
- package/lib/js/webgl/Multisample.js +77 -0
- package/lib/js/webgl/Program.d.ts +159 -0
- package/{src/webgl/Program.ts → lib/js/webgl/Program.js} +73 -210
- package/lib/js/webgl/ProgramController.d.ts +86 -0
- package/{src/webgl/ProgramController.ts → lib/js/webgl/ProgramController.js} +11 -45
- package/{src/webgl/index.ts → lib/js/webgl/index.d.ts} +1 -8
- package/lib/js/webgl/index.js +6 -0
- package/lib/js/webgl/types.d.ts +9 -0
- package/{src/webgl/types.ts → lib/js/webgl/types.js} +5 -8
- package/lib/js/webgl/variableHandlers.d.ts +22 -0
- package/lib/js/webgl/variableHandlers.js +78 -0
- package/package.json +23 -34
- package/dist/@openglobus/og.esm.js +0 -2
- package/dist/@openglobus/og.esm.js.map +0 -1
- package/dist/@openglobus/og.umd.js +0 -2
- package/dist/@openglobus/og.umd.js.map +0 -1
- package/src/Deferred.ts +0 -17
- package/src/control/MouseWheelZoomControl.ts +0 -269
- package/src/control/ScaleControl.ts +0 -131
- package/src/control/SegmentBoundVisualization.ts +0 -50
- package/src/control/ShowFps.ts +0 -28
- package/src/control/ToggleWireframe.ts +0 -35
- package/src/control/ruler/Ruler.ts +0 -35
- package/src/control/ruler/RulerScene.ts +0 -437
- package/src/control/timeline/timelineUtils.ts +0 -133
- package/src/ellipsoid/index.ts +0 -4
- package/src/entity/Geometry.ts +0 -486
- package/src/index.ts +0 -173
- package/src/layer/GeoTexture2d.ts +0 -56
- package/src/layer/index.ts +0 -12
- package/src/math/Line3.ts +0 -162
- package/src/math/index.ts +0 -26
- package/src/quadTree/EPSG4326QuadTreeStrategy.ts +0 -24
- package/src/quadTree/EarthQuadTreeStrategy.ts +0 -28
- package/src/quadTree/MarsQuadTreeStrategy.ts +0 -25
- package/src/quadTree/Wgs84QuadTreeStrategy.ts +0 -22
- package/src/quadTree/index.ts +0 -14
- package/src/scene/Axes.ts +0 -78
- package/src/segment/SegmentLonLatWgs84.ts +0 -33
- package/src/terrain/Geoid.ts +0 -273
- package/src/ui/Button.ts +0 -121
- package/src/ui/ButtonGroup.ts +0 -63
- package/src/ui/Dialog.ts +0 -244
- package/src/ui/Slider.ts +0 -188
- package/src/ui/ToggleButton.ts +0 -68
- package/src/utils/Loader.ts +0 -247
- package/src/utils/units.ts +0 -78
- package/src/webgl/Multisample.ts +0 -153
- package/src/webgl/variableHandlers.ts +0 -114
- /package/{dist → lib}/@openglobus/og.css +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.js +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/night-4326.png +0 -0
- /package/{dist → lib}/@openglobus/res/night.png +0 -0
- /package/{dist → lib}/@openglobus/res/spec.png +0 -0
|
@@ -1,28 +1,12 @@
|
|
|
1
1
|
import * as mercator from "../mercator";
|
|
2
2
|
import * as math from "../math";
|
|
3
|
-
import {Camera
|
|
4
|
-
import {Key} from "../Lock";
|
|
5
|
-
import {LonLat} from "../LonLat";
|
|
6
|
-
import {Mat4} from "../math/Mat4";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {Vec3} from "../math/Vec3";
|
|
11
|
-
import {Extent} from "../Extent";
|
|
12
|
-
import {Segment} from "../segment/Segment";
|
|
13
|
-
|
|
14
|
-
interface IPlanetCameraParams extends ICameraParams {
|
|
15
|
-
minAltitude?: number;
|
|
16
|
-
maxAltitude?: number;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
type CameraFrame = {
|
|
20
|
-
eye: Vec3;
|
|
21
|
-
n: Vec3;
|
|
22
|
-
u: Vec3;
|
|
23
|
-
v: Vec3;
|
|
24
|
-
}
|
|
25
|
-
|
|
3
|
+
import { Camera } from "./Camera";
|
|
4
|
+
import { Key } from "../Lock";
|
|
5
|
+
import { LonLat } from "../LonLat";
|
|
6
|
+
import { Mat4 } from "../math/Mat4";
|
|
7
|
+
import { Quat } from "../math/Quat";
|
|
8
|
+
import { Ray } from "../math/Ray";
|
|
9
|
+
import { Vec3 } from "../math/Vec3";
|
|
26
10
|
/**
|
|
27
11
|
* Planet camera.
|
|
28
12
|
* @class
|
|
@@ -40,104 +24,21 @@ type CameraFrame = {
|
|
|
40
24
|
* @param {Vec3} [options.up] - Camera eye position. Default (0,1,0)
|
|
41
25
|
*/
|
|
42
26
|
class PlanetCamera extends Camera {
|
|
43
|
-
|
|
44
|
-
* Assigned camera's planet.
|
|
45
|
-
* @public
|
|
46
|
-
* @type {Planet}
|
|
47
|
-
*/
|
|
48
|
-
public planet: Planet;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Minimal altitude that camera can reach over the terrain.
|
|
52
|
-
* @public
|
|
53
|
-
* @type {number}
|
|
54
|
-
*/
|
|
55
|
-
public minAltitude: number;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Maximal altitude that camera can reach over the globe.
|
|
59
|
-
* @public
|
|
60
|
-
* @type {number}
|
|
61
|
-
*/
|
|
62
|
-
public maxAltitude: number;
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Current geographical degree position.
|
|
66
|
-
* @public
|
|
67
|
-
* @type {LonLat}
|
|
68
|
-
*/
|
|
69
|
-
public _lonLat: LonLat;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Current geographical mercator position.
|
|
73
|
-
* @public
|
|
74
|
-
* @type {LonLat}
|
|
75
|
-
*/
|
|
76
|
-
public _lonLatMerc: LonLat;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Current altitude.
|
|
80
|
-
* @protected
|
|
81
|
-
* @type {number}
|
|
82
|
-
*/
|
|
83
|
-
protected _terrainAltitude: number;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Cartesian coordinates on the terrain.
|
|
87
|
-
* @protected
|
|
88
|
-
* @type {Vec3}
|
|
89
|
-
*/
|
|
90
|
-
protected _terrainPoint: Vec3;
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Quad node that camera flies over.
|
|
94
|
-
* @protected
|
|
95
|
-
* @type {Segment}
|
|
96
|
-
*/
|
|
97
|
-
|
|
98
|
-
public _insideSegment: Segment | null;
|
|
99
|
-
|
|
100
|
-
public slope: number;
|
|
101
|
-
|
|
102
|
-
protected _keyLock: Key;
|
|
103
|
-
protected _framesArr: CameraFrame[];
|
|
104
|
-
protected _framesCounter: number;
|
|
105
|
-
protected _numFrames: number;
|
|
106
|
-
protected _completeCallback: Function | null;
|
|
107
|
-
protected _frameCallback: Function | null;
|
|
108
|
-
|
|
109
|
-
protected _flying: boolean;
|
|
110
|
-
protected _checkTerrainCollision: boolean;
|
|
111
|
-
|
|
112
|
-
public eyeNorm: Vec3;
|
|
113
|
-
|
|
114
|
-
constructor(planet: Planet, options: IPlanetCameraParams = {}) {
|
|
27
|
+
constructor(planet, options = {}) {
|
|
115
28
|
super(planet.renderer, {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
);
|
|
120
|
-
|
|
29
|
+
...options,
|
|
30
|
+
frustums: options.frustums || [[1, 100 + 0.075], [100, 1000 + 0.075], [1000, 1e6 + 10000], [1e6, 1e9]],
|
|
31
|
+
});
|
|
121
32
|
this.planet = planet;
|
|
122
|
-
|
|
123
33
|
this.minAltitude = options.minAltitude || 1;
|
|
124
|
-
|
|
125
34
|
this.maxAltitude = options.maxAltitude || 20000000;
|
|
126
|
-
|
|
127
35
|
this._lonLat = this.planet.ellipsoid.cartesianToLonLat(this.eye);
|
|
128
|
-
|
|
129
36
|
this._lonLatMerc = this._lonLat.forwardMercator();
|
|
130
|
-
|
|
131
37
|
this._terrainAltitude = this._lonLat.height;
|
|
132
|
-
|
|
133
38
|
this._terrainPoint = new Vec3();
|
|
134
|
-
|
|
135
39
|
this._insideSegment = null;
|
|
136
|
-
|
|
137
40
|
this.slope = 0;
|
|
138
|
-
|
|
139
41
|
this._keyLock = new Key();
|
|
140
|
-
|
|
141
42
|
this._framesArr = [];
|
|
142
43
|
this._framesCounter = 0;
|
|
143
44
|
this._numFrames = 50;
|
|
@@ -145,70 +46,54 @@ class PlanetCamera extends Camera {
|
|
|
145
46
|
this._frameCallback = null;
|
|
146
47
|
this._flying = false;
|
|
147
48
|
this._checkTerrainCollision = true;
|
|
148
|
-
|
|
149
49
|
this.eyeNorm = this.eye.getNormal();
|
|
150
50
|
}
|
|
151
|
-
|
|
152
|
-
public setTerrainCollisionActivity(isActive: boolean) {
|
|
51
|
+
setTerrainCollisionActivity(isActive) {
|
|
153
52
|
this._checkTerrainCollision = isActive;
|
|
154
53
|
}
|
|
155
|
-
|
|
156
54
|
/**
|
|
157
55
|
* Updates camera view space.
|
|
158
56
|
* @public
|
|
159
57
|
* @virtual
|
|
160
58
|
*/
|
|
161
|
-
|
|
59
|
+
update() {
|
|
162
60
|
this.events.stopPropagation();
|
|
163
|
-
|
|
164
61
|
let maxAlt = this.maxAltitude + this.planet.ellipsoid.getEquatorialSize();
|
|
165
|
-
|
|
166
62
|
if (this.eye.length() > maxAlt) {
|
|
167
63
|
this.eye.copy(this.eye.getNormal().scale(maxAlt));
|
|
168
64
|
}
|
|
169
|
-
|
|
170
65
|
super.update();
|
|
171
|
-
|
|
172
66
|
this.updateGeodeticPosition();
|
|
173
|
-
|
|
174
67
|
this.eyeNorm = this.eye.getNormal();
|
|
175
68
|
this.slope = this._b.dot(this.eyeNorm);
|
|
176
|
-
|
|
177
69
|
this.events.dispatch(this.events.viewchange, this);
|
|
178
70
|
}
|
|
179
|
-
|
|
180
|
-
public updateGeodeticPosition() {
|
|
71
|
+
updateGeodeticPosition() {
|
|
181
72
|
this.planet.ellipsoid.cartesianToLonLatRes(this.eye, this._lonLat);
|
|
182
73
|
if (Math.abs(this._lonLat.lat) <= mercator.MAX_LAT) {
|
|
183
74
|
LonLat.forwardMercatorRes(this._lonLat, this._lonLatMerc);
|
|
184
75
|
}
|
|
185
76
|
}
|
|
186
|
-
|
|
187
77
|
/**
|
|
188
78
|
* Sets altitude over the terrain.
|
|
189
79
|
* @public
|
|
190
80
|
* @param {number} alt - Altitude over the terrain.
|
|
191
81
|
*/
|
|
192
|
-
|
|
193
|
-
|
|
82
|
+
setAltitude(alt) {
|
|
194
83
|
let t = this._terrainPoint;
|
|
195
84
|
let n = this.planet.ellipsoid.getSurfaceNormal3v(this.eye);
|
|
196
|
-
|
|
197
85
|
this.eye.x = n.x * alt + t.x;
|
|
198
86
|
this.eye.y = n.y * alt + t.y;
|
|
199
87
|
this.eye.z = n.z * alt + t.z;
|
|
200
|
-
|
|
201
88
|
this._terrainAltitude = alt;
|
|
202
89
|
}
|
|
203
|
-
|
|
204
90
|
/**
|
|
205
91
|
* Gets altitude over the terrain.
|
|
206
92
|
* @public
|
|
207
93
|
*/
|
|
208
|
-
|
|
94
|
+
getAltitude() {
|
|
209
95
|
return this._terrainAltitude;
|
|
210
96
|
}
|
|
211
|
-
|
|
212
97
|
/**
|
|
213
98
|
* Places camera to view to the geographical point.
|
|
214
99
|
* @public
|
|
@@ -216,7 +101,7 @@ class PlanetCamera extends Camera {
|
|
|
216
101
|
* @param {LonLat} [lookLonLat] - Look up coordinates.
|
|
217
102
|
* @param {Vec3} [up] - Camera UP vector. Default (0,1,0)
|
|
218
103
|
*/
|
|
219
|
-
|
|
104
|
+
setLonLat(lonlat, lookLonLat, up) {
|
|
220
105
|
this.stopFlying();
|
|
221
106
|
this._lonLat.set(lonlat.lon, lonlat.lat, lonlat.height || this._lonLat.height);
|
|
222
107
|
let el = this.planet.ellipsoid;
|
|
@@ -225,25 +110,22 @@ class PlanetCamera extends Camera {
|
|
|
225
110
|
this.set(newEye, newLook, up || Vec3.NORTH);
|
|
226
111
|
this.update();
|
|
227
112
|
}
|
|
228
|
-
|
|
229
113
|
/**
|
|
230
114
|
* Returns camera geographical position.
|
|
231
115
|
* @public
|
|
232
116
|
* @returns {LonLat}
|
|
233
117
|
*/
|
|
234
|
-
|
|
118
|
+
getLonLat() {
|
|
235
119
|
return this._lonLat;
|
|
236
120
|
}
|
|
237
|
-
|
|
238
121
|
/**
|
|
239
122
|
* Returns camera height.
|
|
240
123
|
* @public
|
|
241
124
|
* @returns {number}
|
|
242
125
|
*/
|
|
243
|
-
|
|
126
|
+
getHeight() {
|
|
244
127
|
return this._lonLat.height;
|
|
245
128
|
}
|
|
246
|
-
|
|
247
129
|
/**
|
|
248
130
|
* Gets position by viewable extent.
|
|
249
131
|
* @public
|
|
@@ -251,18 +133,15 @@ class PlanetCamera extends Camera {
|
|
|
251
133
|
* @param {Number} height - Camera height
|
|
252
134
|
* @returns {Vec3}
|
|
253
135
|
*/
|
|
254
|
-
|
|
136
|
+
getExtentPosition(extent, height = 0) {
|
|
255
137
|
let north = extent.getNorth();
|
|
256
138
|
let south = extent.getSouth();
|
|
257
139
|
let east = extent.getEast();
|
|
258
140
|
let west = extent.getWest();
|
|
259
|
-
|
|
260
141
|
if (west > east) {
|
|
261
142
|
east += 360;
|
|
262
143
|
}
|
|
263
|
-
|
|
264
144
|
let e = this.planet.ellipsoid;
|
|
265
|
-
|
|
266
145
|
let cart = new LonLat(east, north);
|
|
267
146
|
let northEast = e.lonLatToCartesian(cart);
|
|
268
147
|
cart.lat = south;
|
|
@@ -271,61 +150,40 @@ class PlanetCamera extends Camera {
|
|
|
271
150
|
let southWest = e.lonLatToCartesian(cart);
|
|
272
151
|
cart.lat = north;
|
|
273
152
|
let northWest = e.lonLatToCartesian(cart);
|
|
274
|
-
|
|
275
153
|
let center = Vec3.sub(northEast, southWest).scale(0.5).addA(southWest);
|
|
276
|
-
|
|
277
154
|
let mag = center.length();
|
|
278
155
|
if (mag < 0.000001) {
|
|
279
156
|
cart.lon = (east + west) * 0.5;
|
|
280
157
|
cart.lat = (north + south) * 0.5;
|
|
281
158
|
center = e.lonLatToCartesian(cart);
|
|
282
159
|
}
|
|
283
|
-
|
|
284
160
|
northWest.subA(center);
|
|
285
161
|
southEast.subA(center);
|
|
286
162
|
northEast.subA(center);
|
|
287
163
|
southWest.subA(center);
|
|
288
|
-
|
|
289
164
|
let direction = center.getNormal(); // ellipsoid.getSurfaceNormal(center).negate().normalize();
|
|
290
165
|
let right = direction.cross(Vec3.NORTH).normalize();
|
|
291
166
|
let up = right.cross(direction).normalize();
|
|
292
|
-
|
|
293
|
-
let
|
|
294
|
-
Math.abs(up.dot(northWest)),
|
|
295
|
-
Math.abs(up.dot(southEast)),
|
|
296
|
-
Math.abs(up.dot(northEast)),
|
|
297
|
-
Math.abs(up.dot(southWest))
|
|
298
|
-
);
|
|
299
|
-
|
|
300
|
-
let _w = Math.max(
|
|
301
|
-
Math.abs(right.dot(northWest)),
|
|
302
|
-
Math.abs(right.dot(southEast)),
|
|
303
|
-
Math.abs(right.dot(northEast)),
|
|
304
|
-
Math.abs(right.dot(southWest))
|
|
305
|
-
);
|
|
306
|
-
|
|
167
|
+
let _h = Math.max(Math.abs(up.dot(northWest)), Math.abs(up.dot(southEast)), Math.abs(up.dot(northEast)), Math.abs(up.dot(southWest)));
|
|
168
|
+
let _w = Math.max(Math.abs(right.dot(northWest)), Math.abs(right.dot(southEast)), Math.abs(right.dot(northEast)), Math.abs(right.dot(southWest)));
|
|
307
169
|
let tanPhi = Math.tan(this._viewAngle * math.RADIANS * 0.5);
|
|
308
170
|
let tanTheta = this._aspect * tanPhi;
|
|
309
171
|
let d = Math.max(_w / tanTheta, _h / tanPhi);
|
|
310
|
-
|
|
311
172
|
center.normalize();
|
|
312
173
|
center.scale(mag + d + height);
|
|
313
|
-
|
|
314
174
|
return center;
|
|
315
175
|
}
|
|
316
|
-
|
|
317
176
|
/**
|
|
318
177
|
* View current extent.
|
|
319
178
|
* @public
|
|
320
179
|
* @param {Extent} extent - Current extent.
|
|
321
180
|
* @param {number} [height]
|
|
322
181
|
*/
|
|
323
|
-
|
|
182
|
+
viewExtent(extent, height) {
|
|
324
183
|
this.stopFlying();
|
|
325
184
|
this.set(this.getExtentPosition(extent, height), Vec3.ZERO, Vec3.NORTH);
|
|
326
185
|
this.update();
|
|
327
186
|
}
|
|
328
|
-
|
|
329
187
|
/**
|
|
330
188
|
* Flies to the current extent.
|
|
331
189
|
* @public
|
|
@@ -337,67 +195,34 @@ class PlanetCamera extends Camera {
|
|
|
337
195
|
* @param {Function} [startCallback] - Callback that calls before the flying begins.
|
|
338
196
|
* @param {Function} [frameCallback] - Each frame callback
|
|
339
197
|
*/
|
|
340
|
-
|
|
341
|
-
extent
|
|
342
|
-
height?: number,
|
|
343
|
-
up?: Vec3,
|
|
344
|
-
ampl?: number,
|
|
345
|
-
completeCallback?: Function,
|
|
346
|
-
startCallback?: Function,
|
|
347
|
-
frameCallback?: Function) {
|
|
348
|
-
this.flyCartesian(
|
|
349
|
-
this.getExtentPosition(extent, height),
|
|
350
|
-
Vec3.ZERO,
|
|
351
|
-
up,
|
|
352
|
-
ampl,
|
|
353
|
-
completeCallback,
|
|
354
|
-
startCallback,
|
|
355
|
-
frameCallback
|
|
356
|
-
);
|
|
198
|
+
flyExtent(extent, height, up, ampl, completeCallback, startCallback, frameCallback) {
|
|
199
|
+
this.flyCartesian(this.getExtentPosition(extent, height), Vec3.ZERO, up, ampl, completeCallback, startCallback, frameCallback);
|
|
357
200
|
}
|
|
358
|
-
|
|
359
|
-
public viewDistance(cartesian: Vec3, distance: number = 10000.0) {
|
|
201
|
+
viewDistance(cartesian, distance = 10000.0) {
|
|
360
202
|
let p0 = this.eye.add(this.getForward().scaleTo(distance));
|
|
361
203
|
let _rot = Quat.getRotationBetweenVectors(p0.getNormal(), cartesian.getNormal());
|
|
362
204
|
if (_rot.isZero()) {
|
|
363
205
|
let newPos = cartesian.add(this.getBackward().scaleTo(distance));
|
|
364
206
|
this.set(newPos, cartesian);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
let newPos = cartesian.add(_rot.mulVec3(this.getBackward()).scale(distance)), newUp = _rot.mulVec3(this.getUp());
|
|
368
210
|
this.set(newPos, cartesian, newUp);
|
|
369
211
|
}
|
|
370
212
|
this.update();
|
|
371
213
|
}
|
|
372
|
-
|
|
373
|
-
public flyDistance(
|
|
374
|
-
cartesian: Vec3,
|
|
375
|
-
distance: number = 10000.0,
|
|
376
|
-
ampl: number = 0.0,
|
|
377
|
-
completeCallback?: Function,
|
|
378
|
-
startCallback?: Function,
|
|
379
|
-
frameCallback?: Function
|
|
380
|
-
) {
|
|
214
|
+
flyDistance(cartesian, distance = 10000.0, ampl = 0.0, completeCallback, startCallback, frameCallback) {
|
|
381
215
|
let p0 = this.eye.add(this.getForward().scaleTo(distance));
|
|
382
216
|
let _rot = Quat.getRotationBetweenVectors(p0.getNormal(), cartesian.getNormal());
|
|
383
217
|
if (_rot.isZero()) {
|
|
384
218
|
let newPos = cartesian.add(this.getBackward().scaleTo(distance));
|
|
385
219
|
this.set(newPos, cartesian);
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
this.flyCartesian(
|
|
390
|
-
newPos,
|
|
391
|
-
cartesian,
|
|
392
|
-
newUp,
|
|
393
|
-
ampl,
|
|
394
|
-
completeCallback,
|
|
395
|
-
startCallback,
|
|
396
|
-
frameCallback
|
|
397
|
-
);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
let newPos = cartesian.add(_rot.mulVec3(this.getBackward()).scale(distance)), newUp = _rot.mulVec3(this.getUp());
|
|
223
|
+
this.flyCartesian(newPos, cartesian, newUp, ampl, completeCallback, startCallback, frameCallback);
|
|
398
224
|
}
|
|
399
225
|
}
|
|
400
|
-
|
|
401
226
|
/**
|
|
402
227
|
* Flies to the cartesian coordinates.
|
|
403
228
|
* @public
|
|
@@ -409,58 +234,35 @@ class PlanetCamera extends Camera {
|
|
|
409
234
|
* @param {Function} [startCallback] - Callback that calls before the flying begins.
|
|
410
235
|
* @param {Function} [frameCallback] - Each frame callback
|
|
411
236
|
*/
|
|
412
|
-
flyCartesian(
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
ampl: number = 1.0,
|
|
417
|
-
completeCallback: Function | null = () => {
|
|
418
|
-
},
|
|
419
|
-
startCallback: Function | null = () => {
|
|
420
|
-
},
|
|
421
|
-
frameCallback: Function | null = () => {
|
|
422
|
-
}) {
|
|
423
|
-
|
|
237
|
+
flyCartesian(cartesian, look = Vec3.ZERO, up = Vec3.NORTH, ampl = 1.0, completeCallback = () => {
|
|
238
|
+
}, startCallback = () => {
|
|
239
|
+
}, frameCallback = () => {
|
|
240
|
+
}) {
|
|
424
241
|
this.stopFlying();
|
|
425
|
-
|
|
426
242
|
look = look || Vec3.ZERO;
|
|
427
243
|
up = up || Vec3.NORTH;
|
|
428
|
-
|
|
429
244
|
this._completeCallback = completeCallback;
|
|
430
|
-
|
|
431
245
|
this._frameCallback = frameCallback;
|
|
432
|
-
|
|
433
246
|
if (startCallback) {
|
|
434
247
|
startCallback.call(this);
|
|
435
248
|
}
|
|
436
|
-
|
|
437
249
|
if (look instanceof LonLat) {
|
|
438
250
|
look = this.planet.ellipsoid.lonLatToCartesian(look);
|
|
439
251
|
}
|
|
440
|
-
|
|
441
|
-
let
|
|
442
|
-
new LonLat(this._lonLat.lon, this._lonLat.lat)
|
|
443
|
-
);
|
|
444
|
-
|
|
445
|
-
let v_a = this._u,
|
|
446
|
-
n_a = this._b;
|
|
447
|
-
|
|
252
|
+
let ground_a = this.planet.ellipsoid.lonLatToCartesian(new LonLat(this._lonLat.lon, this._lonLat.lat));
|
|
253
|
+
let v_a = this._u, n_a = this._b;
|
|
448
254
|
let lonlat_b = this.planet.ellipsoid.cartesianToLonLat(cartesian);
|
|
449
255
|
let up_b = up;
|
|
450
|
-
let ground_b = this.planet.ellipsoid.lonLatToCartesian(
|
|
451
|
-
|
|
452
|
-
);
|
|
453
|
-
let n_b = Vec3.sub(cartesian, look as Vec3);
|
|
256
|
+
let ground_b = this.planet.ellipsoid.lonLatToCartesian(new LonLat(lonlat_b.lon, lonlat_b.lat, 0));
|
|
257
|
+
let n_b = Vec3.sub(cartesian, look);
|
|
454
258
|
let u_b = up_b.cross(n_b);
|
|
455
259
|
n_b.normalize();
|
|
456
260
|
u_b.normalize();
|
|
457
261
|
let v_b = n_b.cross(u_b);
|
|
458
|
-
|
|
459
262
|
let an = ground_a.getNormal();
|
|
460
263
|
let bn = ground_b.getNormal();
|
|
461
264
|
let anbn = 1.0 - an.dot(bn);
|
|
462
265
|
let hM_a = ampl * math.SQRT_HALF * Math.sqrt(anbn > 0.0 ? anbn : 0.0);
|
|
463
|
-
|
|
464
266
|
let maxHeight = 6639613;
|
|
465
267
|
let currMaxHeight = Math.max(this._lonLat.height, lonlat_b.height);
|
|
466
268
|
if (currMaxHeight > maxHeight) {
|
|
@@ -468,31 +270,25 @@ class PlanetCamera extends Camera {
|
|
|
468
270
|
}
|
|
469
271
|
let max_h = currMaxHeight + 2.5 * hM_a * (maxHeight - currMaxHeight);
|
|
470
272
|
let zero = Vec3.ZERO;
|
|
471
|
-
|
|
472
273
|
// camera path and orientations calculation
|
|
473
274
|
for (let i = 0; i <= this._numFrames; i++) {
|
|
474
275
|
let d = 1 - i / this._numFrames;
|
|
475
276
|
d = d * d * (3 - 2 * d);
|
|
476
277
|
d *= d;
|
|
477
|
-
|
|
478
278
|
let g_i = ground_a.smerp(ground_b, d).normalize();
|
|
479
279
|
let ground_i = this.planet.getRayIntersectionEllipsoid(new Ray(zero, g_i));
|
|
480
280
|
let t = 1 - d;
|
|
481
|
-
let height_i =
|
|
482
|
-
this._lonLat.height * d * d * d +
|
|
281
|
+
let height_i = this._lonLat.height * d * d * d +
|
|
483
282
|
max_h * 3 * d * d * t +
|
|
484
283
|
max_h * 3 * d * t * t +
|
|
485
284
|
lonlat_b.height * t * t * t;
|
|
486
|
-
|
|
487
|
-
let eye_i = ground_i!.addA(g_i.scale(height_i));
|
|
285
|
+
let eye_i = ground_i.addA(g_i.scale(height_i));
|
|
488
286
|
let up_i = v_a.smerp(v_b, d);
|
|
489
287
|
let look_i = Vec3.add(eye_i, n_a.smerp(n_b, d).negateTo());
|
|
490
|
-
|
|
491
288
|
let n = new Vec3(eye_i.x - look_i.x, eye_i.y - look_i.y, eye_i.z - look_i.z);
|
|
492
289
|
let u = up_i.cross(n);
|
|
493
290
|
n.normalize();
|
|
494
291
|
u.normalize();
|
|
495
|
-
|
|
496
292
|
let v = n.cross(u);
|
|
497
293
|
this._framesArr[i] = {
|
|
498
294
|
eye: eye_i,
|
|
@@ -501,11 +297,9 @@ class PlanetCamera extends Camera {
|
|
|
501
297
|
v: v
|
|
502
298
|
};
|
|
503
299
|
}
|
|
504
|
-
|
|
505
300
|
this._framesCounter = this._numFrames;
|
|
506
301
|
this._flying = true;
|
|
507
302
|
}
|
|
508
|
-
|
|
509
303
|
/**
|
|
510
304
|
* Flies to the geo coordinates.
|
|
511
305
|
* @public
|
|
@@ -517,27 +311,10 @@ class PlanetCamera extends Camera {
|
|
|
517
311
|
* @param {Function} [startCallback] - Callback that calls befor the flying begins.
|
|
518
312
|
* @param {Function} [frameCallback] - each frame callback
|
|
519
313
|
*/
|
|
520
|
-
flyLonLat(
|
|
521
|
-
lonlat: LonLat,
|
|
522
|
-
look?: Vec3 | LonLat,
|
|
523
|
-
up?: Vec3,
|
|
524
|
-
ampl?: number,
|
|
525
|
-
completeCallback?: Function,
|
|
526
|
-
startCallback?: Function,
|
|
527
|
-
frameCallbak?: Function
|
|
528
|
-
) {
|
|
314
|
+
flyLonLat(lonlat, look, up, ampl, completeCallback, startCallback, frameCallbak) {
|
|
529
315
|
let _lonLat = new LonLat(lonlat.lon, lonlat.lat, lonlat.height || this._lonLat.height);
|
|
530
|
-
this.flyCartesian(
|
|
531
|
-
this.planet.ellipsoid.lonLatToCartesian(_lonLat),
|
|
532
|
-
look,
|
|
533
|
-
up,
|
|
534
|
-
ampl,
|
|
535
|
-
completeCallback,
|
|
536
|
-
startCallback,
|
|
537
|
-
frameCallbak
|
|
538
|
-
);
|
|
316
|
+
this.flyCartesian(this.planet.ellipsoid.lonLatToCartesian(_lonLat), look, up, ampl, completeCallback, startCallback, frameCallbak);
|
|
539
317
|
}
|
|
540
|
-
|
|
541
318
|
/**
|
|
542
319
|
* Breaks the flight.
|
|
543
320
|
* @public
|
|
@@ -546,14 +323,12 @@ class PlanetCamera extends Camera {
|
|
|
546
323
|
this.planet.layerLock.free(this._keyLock);
|
|
547
324
|
this.planet.terrainLock.free(this._keyLock);
|
|
548
325
|
this.planet.normalMapCreator.free(this._keyLock);
|
|
549
|
-
|
|
550
326
|
this._flying = false;
|
|
551
327
|
this._framesArr.length = 0;
|
|
552
328
|
this._framesArr = [];
|
|
553
329
|
this._framesCounter = -1;
|
|
554
330
|
this._frameCallback = null;
|
|
555
331
|
}
|
|
556
|
-
|
|
557
332
|
/**
|
|
558
333
|
* Returns camera is flying.
|
|
559
334
|
* @public
|
|
@@ -562,111 +337,94 @@ class PlanetCamera extends Camera {
|
|
|
562
337
|
isFlying() {
|
|
563
338
|
return this._flying;
|
|
564
339
|
}
|
|
565
|
-
|
|
566
340
|
/**
|
|
567
341
|
* Rotates around planet to the left.
|
|
568
342
|
* @public
|
|
569
343
|
* @param {number} angle - Rotation angle.
|
|
570
344
|
* @param {boolean} [spin] - If its true rotates around globe spin.
|
|
571
345
|
*/
|
|
572
|
-
|
|
346
|
+
rotateLeft(angle, spin) {
|
|
573
347
|
this.rotateHorizontal(angle * math.RADIANS, spin !== true, Vec3.ZERO);
|
|
574
348
|
this.update();
|
|
575
349
|
}
|
|
576
|
-
|
|
577
350
|
/**
|
|
578
351
|
* Rotates around planet to the right.
|
|
579
352
|
* @public
|
|
580
353
|
* @param {number} angle - Rotation angle.
|
|
581
354
|
* @param {boolean} [spin] - If its true rotates around globe spin.
|
|
582
355
|
*/
|
|
583
|
-
|
|
356
|
+
rotateRight(angle, spin) {
|
|
584
357
|
this.rotateHorizontal(-angle * math.RADIANS, spin !== true, Vec3.ZERO);
|
|
585
358
|
this.update();
|
|
586
359
|
}
|
|
587
|
-
|
|
588
360
|
/**
|
|
589
361
|
* Rotates around planet to the North Pole.
|
|
590
362
|
* @public
|
|
591
363
|
* @param {number} angle - Rotation angle.
|
|
592
364
|
*/
|
|
593
|
-
|
|
365
|
+
rotateUp(angle) {
|
|
594
366
|
this.rotateVertical(angle * math.RADIANS, Vec3.ZERO);
|
|
595
367
|
this.update();
|
|
596
368
|
}
|
|
597
|
-
|
|
598
369
|
/**
|
|
599
370
|
* Rotates around planet to the South Pole.
|
|
600
371
|
* @public
|
|
601
372
|
* @param {number} angle - Rotation angle.
|
|
602
373
|
*/
|
|
603
|
-
|
|
374
|
+
rotateDown(angle) {
|
|
604
375
|
this.rotateVertical(-angle * math.RADIANS, Vec3.ZERO);
|
|
605
376
|
this.update();
|
|
606
377
|
}
|
|
607
|
-
|
|
608
|
-
public override rotateVertical(angle: number, center: Vec3, minSlope: number = 0) {
|
|
378
|
+
rotateVertical(angle, center, minSlope = 0) {
|
|
609
379
|
let rot = new Mat4().setRotation(this._r, angle);
|
|
610
380
|
let tr = new Mat4().setIdentity().translate(center);
|
|
611
381
|
let ntr = new Mat4().setIdentity().translate(center.negateTo());
|
|
612
382
|
let trm = tr.mul(rot).mul(ntr);
|
|
613
|
-
|
|
614
383
|
let eye = trm.mulVec3(this.eye);
|
|
615
384
|
let u = rot.mulVec3(this._u).normalize();
|
|
616
385
|
let r = rot.mulVec3(this._r).normalize();
|
|
617
386
|
let b = rot.mulVec3(this._b).normalize();
|
|
618
|
-
|
|
619
387
|
let eyeNorm = eye.getNormal();
|
|
620
388
|
let slope = b.dot(eyeNorm);
|
|
621
|
-
|
|
622
389
|
if (minSlope) {
|
|
623
390
|
let dSlope = slope - this.slope;
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
if (
|
|
628
|
-
(slope > 0.1 && u.dot(eyeNorm) > 0) ||
|
|
391
|
+
if (slope < minSlope && dSlope < 0)
|
|
392
|
+
return;
|
|
393
|
+
if ((slope > 0.1 && u.dot(eyeNorm) > 0) ||
|
|
629
394
|
this.slope <= 0.1 ||
|
|
630
|
-
this._u.dot(this.eye.getNormal()) <= 0.0
|
|
631
|
-
) {
|
|
395
|
+
this._u.dot(this.eye.getNormal()) <= 0.0) {
|
|
632
396
|
this.eye = eye;
|
|
633
397
|
this._u = u;
|
|
634
398
|
this._r = r;
|
|
635
399
|
this._b = b;
|
|
636
400
|
}
|
|
637
|
-
}
|
|
401
|
+
}
|
|
402
|
+
else {
|
|
638
403
|
this.eye = eye;
|
|
639
404
|
this._u = u;
|
|
640
405
|
this._r = r;
|
|
641
406
|
this._b = b;
|
|
642
407
|
}
|
|
643
408
|
}
|
|
644
|
-
|
|
645
409
|
/**
|
|
646
410
|
* Prepare camera to the frame. Used in render node frame function.
|
|
647
411
|
* @public
|
|
648
412
|
*/
|
|
649
|
-
|
|
413
|
+
checkFly() {
|
|
650
414
|
if (this._flying) {
|
|
651
415
|
let c = this._numFrames - this._framesCounter;
|
|
652
|
-
|
|
653
416
|
this.planet.layerLock.lock(this._keyLock);
|
|
654
417
|
this.planet.terrainLock.lock(this._keyLock);
|
|
655
418
|
this.planet.normalMapCreator.lock(this._keyLock);
|
|
656
|
-
|
|
657
419
|
this.eye = this._framesArr[c].eye;
|
|
658
420
|
this._r = this._framesArr[c].u;
|
|
659
421
|
this._u = this._framesArr[c].v;
|
|
660
422
|
this._b = this._framesArr[c].n;
|
|
661
|
-
|
|
662
423
|
if (this._frameCallback) {
|
|
663
424
|
this._frameCallback();
|
|
664
425
|
}
|
|
665
|
-
|
|
666
426
|
this.update();
|
|
667
|
-
|
|
668
427
|
this._framesCounter--;
|
|
669
|
-
|
|
670
428
|
if (this._framesCounter < 0) {
|
|
671
429
|
this.stopFlying();
|
|
672
430
|
if (this._completeCallback) {
|
|
@@ -676,63 +434,32 @@ class PlanetCamera extends Camera {
|
|
|
676
434
|
}
|
|
677
435
|
}
|
|
678
436
|
}
|
|
679
|
-
|
|
680
|
-
public checkTerrainCollision() {
|
|
437
|
+
checkTerrainCollision() {
|
|
681
438
|
this._terrainAltitude = this._lonLat.height;
|
|
682
439
|
if (this._insideSegment && this._insideSegment.planet) {
|
|
683
|
-
this._terrainAltitude = this._insideSegment.getTerrainPoint(
|
|
684
|
-
this.eye,
|
|
685
|
-
this._insideSegment.getInsideLonLat(this),
|
|
686
|
-
this._terrainPoint
|
|
687
|
-
);
|
|
440
|
+
this._terrainAltitude = this._insideSegment.getTerrainPoint(this.eye, this._insideSegment.getInsideLonLat(this), this._terrainPoint);
|
|
688
441
|
if (this._terrainAltitude < this.minAltitude && this._checkTerrainCollision) {
|
|
689
442
|
this.setAltitude(this.minAltitude);
|
|
690
443
|
}
|
|
691
444
|
return this._terrainPoint;
|
|
692
445
|
}
|
|
693
446
|
}
|
|
694
|
-
|
|
695
|
-
public getSurfaceVisibleDistance(d: number): number {
|
|
447
|
+
getSurfaceVisibleDistance(d) {
|
|
696
448
|
let R = this.planet.ellipsoid.equatorialSize;
|
|
697
449
|
return R * Math.acos(R / (R + this._lonLat.height + d));
|
|
698
450
|
}
|
|
699
|
-
|
|
700
|
-
public getHeading(): number {
|
|
451
|
+
getHeading() {
|
|
701
452
|
let u = this.eye.getNormal();
|
|
702
|
-
let f = Vec3.proj_b_to_plane(
|
|
703
|
-
this.slope >= 0.97 ? this.getUp() : this.getForward(),
|
|
704
|
-
u
|
|
705
|
-
).normalize(),
|
|
706
|
-
n = Vec3.proj_b_to_plane(Vec3.NORTH, u).normalize();
|
|
453
|
+
let f = Vec3.proj_b_to_plane(this.slope >= 0.97 ? this.getUp() : this.getForward(), u).normalize(), n = Vec3.proj_b_to_plane(Vec3.NORTH, u).normalize();
|
|
707
454
|
let res = Math.sign(u.dot(f.cross(n))) * Math.acos(f.dot(n)) * math.DEGREES;
|
|
708
455
|
if (res < 0.0) {
|
|
709
456
|
return 360.0 + res;
|
|
710
457
|
}
|
|
711
458
|
return res;
|
|
712
459
|
}
|
|
713
|
-
|
|
714
|
-
public isVisible(poi: Vec3): boolean {
|
|
460
|
+
isVisible(poi) {
|
|
715
461
|
let e = this.eye.length();
|
|
716
462
|
return this.eye.distance(poi) < Math.sqrt(e * e - this.planet.ellipsoid.equatorialSizeSqr);
|
|
717
463
|
}
|
|
718
|
-
|
|
719
|
-
// _calcOrientation() {
|
|
720
|
-
// let qq = Quat.yRotation(this.yaw * RADIANS).mul(this._qNorthFrame).conjugate();
|
|
721
|
-
// this.orientation = qq.mulVec3(MODEL_FORWARD).normalize();
|
|
722
|
-
// this._uOrientation[0] = this.orientation.x;
|
|
723
|
-
// this._uOrientation[1] = this.orientation.y;
|
|
724
|
-
// this._uOrientation[2] = this.orientation.z;
|
|
725
|
-
// }
|
|
726
|
-
//
|
|
727
|
-
// _updatePrediction(now) {
|
|
728
|
-
//
|
|
729
|
-
// this._qNorthFrame = Planet.getBearingNorthRotationQuat(this.eye);
|
|
730
|
-
//
|
|
731
|
-
// let dt = (now - this._positionTime) * 0.001;
|
|
732
|
-
// this._positionTime = now;
|
|
733
|
-
//
|
|
734
|
-
// this._predMapPosCart = this.eye.add(this._velCartesian.scaleTo(dt));
|
|
735
|
-
// }
|
|
736
464
|
}
|
|
737
|
-
|
|
738
|
-
export {PlanetCamera};
|
|
465
|
+
export { PlanetCamera };
|