@openglobus/og 0.19.3 → 0.20.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 +3 -3
- package/css/og.css +18 -4
- package/lib/@openglobus/js/Clock.d.ts +106 -0
- package/lib/@openglobus/js/Deferred.d.ts +6 -0
- package/lib/@openglobus/js/Events.d.ts +90 -0
- package/lib/@openglobus/js/Extent.d.ts +145 -0
- package/lib/@openglobus/js/Globe.d.ts +134 -0
- package/lib/@openglobus/js/ImageCanvas.d.ts +128 -0
- package/lib/@openglobus/js/Lock.d.ts +15 -0
- package/lib/@openglobus/js/LonLat.d.ts +128 -0
- package/lib/@openglobus/js/Object3d.d.ts +64 -0
- package/lib/@openglobus/js/Popup.d.ts +46 -0
- package/lib/@openglobus/js/QueueArray.d.ts +16 -0
- package/lib/@openglobus/js/Rectangle.d.ts +76 -0
- package/lib/@openglobus/js/Stack.d.ts +20 -0
- package/lib/@openglobus/js/astro/astro.d.ts +39 -0
- package/lib/@openglobus/js/astro/earth.d.ts +8 -0
- package/lib/@openglobus/js/astro/jd.d.ts +234 -0
- package/lib/@openglobus/js/astro/orbit.d.ts +5 -0
- package/lib/@openglobus/js/astro/rotation.d.ts +2 -0
- package/lib/@openglobus/js/bv/Box.d.ts +32 -0
- package/lib/@openglobus/js/bv/Sphere.d.ts +37 -0
- package/lib/@openglobus/js/bv/index.d.ts +3 -0
- package/lib/@openglobus/js/camera/Camera.d.ts +314 -0
- package/lib/@openglobus/js/camera/Frustum.d.ts +139 -0
- package/lib/@openglobus/js/camera/PlanetCamera.d.ts +234 -0
- package/lib/@openglobus/js/camera/index.d.ts +3 -0
- package/lib/@openglobus/js/cons.d.ts +40 -0
- package/lib/@openglobus/js/control/Atmosphere.d.ts +16 -0
- package/lib/@openglobus/js/control/CompassButton.d.ts +16 -0
- package/lib/@openglobus/js/control/Control.d.ts +100 -0
- package/lib/@openglobus/js/control/DebugInfo.d.ts +25 -0
- package/lib/@openglobus/js/control/DrawingSwitcher.d.ts +13 -0
- package/lib/@openglobus/js/control/EarthCoordinates.d.ts +41 -0
- package/lib/@openglobus/js/control/EarthNavigation.d.ts +50 -0
- package/lib/@openglobus/js/control/GeoImageDragControl.d.ts +22 -0
- package/lib/@openglobus/js/control/KeyboardNavigation.d.ts +28 -0
- package/lib/@openglobus/js/control/LayerAnimation.d.ts +71 -0
- package/lib/@openglobus/js/control/LayerSwitcher.d.ts +36 -0
- package/lib/@openglobus/js/control/Lighting.d.ts +53 -0
- package/lib/@openglobus/js/control/MouseNavigation.d.ts +64 -0
- package/lib/@openglobus/js/control/MouseWheelZoomControl.d.ts +44 -0
- package/lib/@openglobus/js/control/RulerSwitcher.d.ts +17 -0
- package/lib/@openglobus/js/control/ScaleControl.d.ts +24 -0
- package/lib/@openglobus/js/control/SegmentBoundVisualization.d.ts +12 -0
- package/lib/@openglobus/js/control/ShowFps.d.ts +9 -0
- package/lib/@openglobus/js/control/SimpleNavigation.d.ts +25 -0
- package/lib/@openglobus/js/control/SimpleSkyBackground.d.ts +17 -0
- package/lib/@openglobus/js/control/Sun.d.ts +33 -0
- package/lib/@openglobus/js/control/ToggleWireframe.d.ts +14 -0
- package/lib/@openglobus/js/control/TouchNavigation.d.ts +52 -0
- package/lib/@openglobus/js/control/ZoomControl.d.ts +27 -0
- package/lib/@openglobus/js/control/drawing/DrawingControl.d.ts +12 -0
- package/lib/@openglobus/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
- package/lib/@openglobus/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
- package/lib/@openglobus/js/control/elevationProfile/ElevationProfile.d.ts +77 -0
- package/lib/@openglobus/js/control/elevationProfile/ElevationProfileButtonsView.d.ts +14 -0
- package/lib/@openglobus/js/control/elevationProfile/ElevationProfileControl.d.ts +33 -0
- package/lib/@openglobus/js/control/elevationProfile/ElevationProfileLegend.d.ts +20 -0
- package/lib/@openglobus/js/control/elevationProfile/ElevationProfileScene.d.ts +80 -0
- package/lib/@openglobus/js/control/elevationProfile/ElevationProfileView.d.ts +63 -0
- package/lib/@openglobus/js/control/elevationProfile/PointListDialog.d.ts +12 -0
- package/lib/@openglobus/js/control/heightRuler/HeightRuler.d.ts +7 -0
- package/lib/@openglobus/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
- package/lib/@openglobus/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
- package/lib/@openglobus/js/control/index.d.ts +29 -0
- package/lib/@openglobus/js/control/ruler/Ruler.d.ts +13 -0
- package/lib/@openglobus/js/control/ruler/RulerScene.d.ts +88 -0
- package/lib/@openglobus/js/control/selection/Selection.d.ts +55 -0
- package/lib/@openglobus/js/control/selection/SelectionScene.d.ts +44 -0
- package/lib/@openglobus/js/control/timeline/TimelineControl.d.ts +18 -0
- package/lib/@openglobus/js/control/timeline/TimelineModel.d.ts +41 -0
- package/lib/@openglobus/js/control/timeline/TimelineView.d.ts +85 -0
- package/lib/@openglobus/js/control/timeline/timelineUtils.d.ts +12 -0
- package/lib/@openglobus/js/control/visibleExtent/drawnode.d.ts +7 -0
- package/lib/@openglobus/js/ellipsoid/Ellipsoid.d.ts +193 -0
- package/lib/@openglobus/js/ellipsoid/index.d.ts +3 -0
- package/lib/@openglobus/js/ellipsoid/wgs84.d.ts +6 -0
- package/lib/@openglobus/js/entity/BaseBillboard.d.ts +222 -0
- package/lib/@openglobus/js/entity/BaseBillboardHandler.d.ts +81 -0
- package/lib/@openglobus/js/entity/Billboard.d.ts +113 -0
- package/lib/@openglobus/js/entity/BillboardHandler.d.ts +15 -0
- package/lib/@openglobus/js/entity/Entity.d.ts +354 -0
- package/lib/@openglobus/js/entity/EntityCollection.d.ts +363 -0
- package/lib/@openglobus/js/entity/GeoObject.d.ts +152 -0
- package/lib/@openglobus/js/entity/GeoObjectHandler.d.ts +104 -0
- package/lib/@openglobus/js/entity/Geometry.d.ts +124 -0
- package/lib/@openglobus/js/entity/GeometryHandler.d.ts +84 -0
- package/lib/@openglobus/js/entity/Label.d.ts +214 -0
- package/lib/@openglobus/js/entity/LabelHandler.d.ts +65 -0
- package/lib/@openglobus/js/entity/LabelWorker.d.ts +15 -0
- package/lib/@openglobus/js/entity/PointCloud.d.ts +179 -0
- package/lib/@openglobus/js/entity/PointCloudHandler.d.ts +42 -0
- package/lib/@openglobus/js/entity/Polyline.d.ts +345 -0
- package/lib/@openglobus/js/entity/PolylineHandler.d.ts +22 -0
- package/lib/@openglobus/js/entity/Ray.d.ts +133 -0
- package/lib/@openglobus/js/entity/RayHandler.d.ts +70 -0
- package/lib/@openglobus/js/entity/Strip.d.ts +139 -0
- package/lib/@openglobus/js/entity/StripHandler.d.ts +42 -0
- package/lib/@openglobus/js/entity/index.d.ts +10 -0
- package/lib/@openglobus/js/index.d.ts +33 -0
- package/lib/@openglobus/js/input/KeyboardHandler.d.ts +33 -0
- package/lib/@openglobus/js/input/MouseHandler.d.ts +16 -0
- package/lib/@openglobus/js/input/TouchHandler.d.ts +11 -0
- package/lib/@openglobus/js/input/input.d.ts +3 -0
- package/lib/@openglobus/js/layer/BaseGeoImage.d.ts +145 -0
- package/lib/@openglobus/js/layer/Bing.d.ts +4 -0
- package/lib/@openglobus/js/layer/CanvasTiles.d.ts +103 -0
- package/lib/@openglobus/js/layer/GeoImage.d.ts +61 -0
- package/lib/@openglobus/js/layer/GeoTexture2d.d.ts +17 -0
- package/lib/@openglobus/js/layer/GeoVideo.d.ts +68 -0
- package/lib/@openglobus/js/layer/KML.d.ts +72 -0
- package/lib/@openglobus/js/layer/Layer.d.ts +415 -0
- package/lib/@openglobus/js/layer/Material.d.ts +34 -0
- package/lib/@openglobus/js/layer/OpenStreetMap.d.ts +4 -0
- package/lib/@openglobus/js/layer/Vector.d.ts +246 -0
- package/lib/@openglobus/js/layer/WMS.d.ts +75 -0
- package/lib/@openglobus/js/layer/XYZ.d.ts +148 -0
- package/lib/@openglobus/js/layer/index.d.ts +12 -0
- package/lib/@openglobus/js/light/LightSource.d.ts +174 -0
- package/lib/@openglobus/js/math/Line2.d.ts +11 -0
- package/lib/@openglobus/js/math/Line3.d.ts +28 -0
- package/lib/@openglobus/js/math/Mat3.d.ts +77 -0
- package/lib/@openglobus/js/math/Mat4.d.ts +195 -0
- package/lib/@openglobus/js/math/Plane.d.ts +20 -0
- package/lib/@openglobus/js/math/Quat.d.ts +373 -0
- package/lib/@openglobus/js/math/Ray.d.ts +76 -0
- package/lib/@openglobus/js/math/Vec2.d.ts +310 -0
- package/lib/@openglobus/js/math/Vec3.d.ts +472 -0
- package/lib/@openglobus/js/math/Vec4.d.ts +163 -0
- package/lib/@openglobus/js/math/coder.d.ts +51 -0
- package/lib/@openglobus/js/math/index.d.ts +11 -0
- package/lib/@openglobus/js/math.d.ts +266 -0
- package/lib/@openglobus/js/mercator.d.ts +92 -0
- package/lib/@openglobus/js/proj/EPSG3857.d.ts +9 -0
- package/lib/@openglobus/js/proj/EPSG4326.d.ts +9 -0
- package/lib/@openglobus/js/proj/Proj.d.ts +43 -0
- package/lib/@openglobus/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
- package/lib/@openglobus/js/quadTree/EarthQuadTreeStrategy.d.ts +9 -0
- package/lib/@openglobus/js/quadTree/EntityCollectionNode.d.ts +54 -0
- package/lib/@openglobus/js/quadTree/MarsQuadTreeStrategy.d.ts +11 -0
- package/lib/@openglobus/js/quadTree/Node.d.ts +80 -0
- package/lib/@openglobus/js/quadTree/QuadTreeStrategy.d.ts +28 -0
- package/lib/@openglobus/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
- package/lib/@openglobus/js/quadTree/index.d.ts +12 -0
- package/lib/@openglobus/js/quadTree/quadTree.d.ts +40 -0
- package/lib/@openglobus/js/renderer/Renderer.d.ts +319 -0
- package/lib/@openglobus/js/renderer/RendererEvents.d.ts +240 -0
- package/lib/@openglobus/js/scene/Axes.d.ts +12 -0
- package/lib/@openglobus/js/scene/BaseNode.d.ts +61 -0
- package/lib/@openglobus/js/scene/Planet.d.ts +652 -0
- package/lib/@openglobus/js/scene/RenderNode.d.ts +150 -0
- package/lib/@openglobus/js/scene/SkyBox.d.ts +13 -0
- package/lib/@openglobus/js/scene/index.d.ts +5 -0
- package/lib/@openglobus/js/segment/Segment.d.ts +288 -0
- package/lib/@openglobus/js/segment/SegmentLonLat.d.ts +44 -0
- package/lib/@openglobus/js/segment/SegmentLonLatWgs84.d.ts +10 -0
- package/lib/@openglobus/js/segment/Slice.d.ts +13 -0
- package/lib/@openglobus/js/segment/segmentHelper.d.ts +18 -0
- package/lib/@openglobus/js/shaders/atmos.d.ts +4 -0
- package/lib/@openglobus/js/shaders/billboard.d.ts +3 -0
- package/lib/@openglobus/js/shaders/bloom.d.ts +2 -0
- package/lib/@openglobus/js/shaders/blur.d.ts +3 -0
- package/lib/@openglobus/js/shaders/depth.d.ts +2 -0
- package/lib/@openglobus/js/shaders/drawnode.d.ts +8 -0
- package/lib/@openglobus/js/shaders/geoObject.d.ts +3 -0
- package/lib/@openglobus/js/shaders/label.d.ts +4 -0
- package/lib/@openglobus/js/shaders/lumFilter.d.ts +2 -0
- package/lib/@openglobus/js/shaders/pointCloud.d.ts +2 -0
- package/lib/@openglobus/js/shaders/polyline.d.ts +3 -0
- package/lib/@openglobus/js/shaders/ray.d.ts +2 -0
- package/lib/@openglobus/js/shaders/screenFrame.d.ts +2 -0
- package/lib/@openglobus/js/shaders/skybox.d.ts +2 -0
- package/lib/@openglobus/js/shaders/toneMapping.d.ts +2 -0
- package/lib/@openglobus/js/shaders/utils.d.ts +1 -0
- package/lib/@openglobus/js/terrain/BilTerrain.d.ts +18 -0
- package/lib/@openglobus/js/terrain/EmptyTerrain.d.ts +113 -0
- package/lib/@openglobus/js/terrain/Geoid.d.ts +33 -0
- package/lib/@openglobus/js/terrain/GlobusRgbTerrain.d.ts +6 -0
- package/lib/@openglobus/js/terrain/GlobusTerrain.d.ts +137 -0
- package/lib/{js/terrain/MapboxTerrain.d.ts → @openglobus/js/terrain/RgbTerrain.d.ts} +6 -5
- package/lib/@openglobus/js/terrain/index.d.ts +6 -0
- package/lib/@openglobus/js/ui/Button.d.ts +32 -0
- package/lib/@openglobus/js/ui/ButtonGroup.d.ts +16 -0
- package/lib/@openglobus/js/ui/Color.d.ts +22 -0
- package/lib/@openglobus/js/ui/Dialog.d.ts +55 -0
- package/lib/@openglobus/js/ui/Slider.d.ts +38 -0
- package/lib/@openglobus/js/ui/ToggleButton.d.ts +20 -0
- package/lib/@openglobus/js/ui/View.d.ts +37 -0
- package/lib/@openglobus/js/ui/icons.d.ts +1 -0
- package/lib/@openglobus/js/utils/BaseWorker.d.ts +14 -0
- package/lib/@openglobus/js/utils/FontAtlas.d.ts +82 -0
- package/lib/@openglobus/js/utils/GeoImageCreator.d.ts +34 -0
- package/lib/@openglobus/js/utils/ImagesCacheManager.d.ts +22 -0
- package/lib/@openglobus/js/utils/Loader.d.ts +63 -0
- package/lib/@openglobus/js/utils/NormalMapCreator.d.ts +52 -0
- package/lib/@openglobus/js/utils/PlainSegmentWorker.d.ts +24 -0
- package/lib/@openglobus/js/utils/TerrainWorker.d.ts +28 -0
- package/lib/@openglobus/js/utils/TextureAtlas.d.ts +113 -0
- package/lib/@openglobus/js/utils/VectorTileCreator.d.ts +18 -0
- package/lib/@openglobus/js/utils/colorTable.d.ts +3 -0
- package/lib/@openglobus/js/utils/earcut.d.ts +7 -0
- package/lib/@openglobus/js/utils/objParser.d.ts +24 -0
- package/lib/@openglobus/js/utils/shared.d.ts +263 -0
- package/lib/@openglobus/js/utils/units.d.ts +16 -0
- package/lib/@openglobus/js/webgl/BaseFramebuffer.d.ts +53 -0
- package/lib/@openglobus/js/webgl/Framebuffer.d.ts +69 -0
- package/lib/@openglobus/js/webgl/Handler.d.ts +473 -0
- package/lib/@openglobus/js/webgl/Multisample.d.ts +27 -0
- package/lib/@openglobus/js/webgl/Program.d.ts +159 -0
- package/lib/@openglobus/js/webgl/ProgramController.d.ts +86 -0
- package/lib/@openglobus/js/webgl/index.d.ts +6 -0
- package/lib/@openglobus/js/webgl/types.d.ts +9 -0
- package/lib/@openglobus/js/webgl/variableHandlers.d.ts +22 -0
- package/lib/@openglobus/og.css +1 -1
- package/lib/@openglobus/og.esm.js +1 -1
- package/lib/@openglobus/og.esm.js.map +1 -1
- package/lib/@openglobus/og.umd.js +1 -1
- package/lib/@openglobus/og.umd.js.map +1 -1
- package/lib/js/Extent.js +2 -2
- package/lib/js/Globe.d.ts +1 -1
- package/lib/js/Object3d.d.ts +16 -1
- package/lib/js/Object3d.js +66 -1
- package/lib/js/astro/jd.js +26 -26
- package/lib/js/camera/Frustum.d.ts +1 -1
- package/lib/js/camera/Frustum.js +3 -2
- package/lib/js/control/DebugInfo.js +19 -18
- package/lib/js/control/Lighting.d.ts +4 -0
- package/lib/js/control/Lighting.js +51 -12
- package/lib/js/control/SimpleSkyBackground.d.ts +2 -0
- package/lib/js/control/SimpleSkyBackground.js +13 -3
- package/lib/js/control/drawing/PolygonDrawingScene.js +2 -2
- package/lib/js/control/timeline/timelineUtils.js +32 -32
- package/lib/js/control/visibleExtent/drawnode.js +1 -1
- package/lib/js/entity/GeoObject.d.ts +20 -6
- package/lib/js/entity/GeoObject.js +44 -4
- package/lib/js/entity/GeoObjectHandler.d.ts +6 -1
- package/lib/js/entity/GeoObjectHandler.js +58 -6
- package/lib/js/entity/Geometry.d.ts +24 -11
- package/lib/js/entity/Geometry.js +17 -9
- package/lib/js/entity/GeometryHandler.js +5 -5
- package/lib/js/entity/Label.d.ts +7 -0
- package/lib/js/entity/Label.js +11 -0
- package/lib/js/entity/Polyline.d.ts +15 -7
- package/lib/js/entity/Polyline.js +54 -6
- package/lib/js/entity/Strip.d.ts +12 -0
- package/lib/js/entity/Strip.js +16 -0
- package/lib/js/entity/StripHandler.js +1 -1
- package/lib/js/entity/index.d.ts +10 -11
- package/lib/js/entity/index.js +10 -11
- package/lib/js/index.d.ts +5 -5
- package/lib/js/index.js +5 -5
- package/lib/js/layer/Bing.d.ts +4 -0
- package/lib/js/layer/Bing.js +40 -0
- package/lib/js/layer/GeoImage.d.ts +1 -1
- package/lib/js/layer/GeoVideo.d.ts +1 -1
- package/lib/js/layer/Layer.d.ts +1 -1
- package/lib/js/layer/Layer.js +2 -2
- package/lib/js/layer/OpenStreetMap.d.ts +4 -0
- package/lib/js/layer/OpenStreetMap.js +19 -0
- package/lib/js/layer/Vector.d.ts +3 -0
- package/lib/js/layer/Vector.js +3 -3
- package/lib/js/layer/index.d.ts +12 -11
- package/lib/js/layer/index.js +12 -11
- package/lib/js/math/Mat4.js +18 -17
- package/lib/js/mercator.js +2 -1
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +4 -5
- package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +3 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.js +40 -5
- package/lib/js/quadTree/EntityCollectionNode.d.ts +2 -2
- package/lib/js/quadTree/EntityCollectionNode.js +13 -14
- package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +5 -0
- package/lib/js/quadTree/MarsQuadTreeStrategy.js +31 -5
- package/lib/js/quadTree/Node.d.ts +2 -1
- package/lib/js/quadTree/Node.js +38 -28
- package/lib/js/quadTree/QuadTreeStrategy.d.ts +3 -0
- package/lib/js/quadTree/QuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +3 -3
- package/lib/js/renderer/Renderer.js +1 -0
- package/lib/js/scene/Axes.js +4 -4
- package/lib/js/scene/Planet.js +6 -4
- package/lib/js/segment/Segment.d.ts +12 -9
- package/lib/js/segment/Segment.js +47 -24
- package/lib/js/segment/SegmentLonLat.d.ts +1 -5
- package/lib/js/segment/SegmentLonLat.js +8 -100
- package/lib/js/segment/SegmentLonLatWgs84.js +5 -3
- package/lib/js/shaders/billboard.js +4 -4
- package/lib/js/shaders/drawnode.js +16 -19
- package/lib/js/shaders/geoObject.js +10 -11
- package/lib/js/shaders/ray.js +7 -3
- package/lib/js/terrain/BilTerrain.d.ts +1 -1
- package/lib/js/terrain/BilTerrain.js +7 -6
- package/lib/js/terrain/EmptyTerrain.d.ts +7 -0
- package/lib/js/terrain/EmptyTerrain.js +7 -0
- package/lib/js/terrain/GlobusRgbTerrain.d.ts +6 -0
- package/lib/js/terrain/GlobusRgbTerrain.js +25 -0
- package/lib/js/terrain/GlobusTerrain.d.ts +5 -5
- package/lib/js/terrain/GlobusTerrain.js +35 -30
- package/lib/js/terrain/RgbTerrain.d.ts +22 -0
- package/lib/js/terrain/RgbTerrain.js +415 -0
- package/lib/js/terrain/index.d.ts +3 -2
- package/lib/js/terrain/index.js +3 -2
- package/lib/js/ui/Color.d.ts +22 -0
- package/lib/js/ui/Color.js +58 -0
- package/lib/js/utils/GeoImageCreator.js +1 -1
- package/lib/js/utils/NormalMapCreator.js +1 -1
- package/lib/js/utils/VectorTileCreator.js +3 -3
- package/lib/js/utils/objParser.js +3 -3
- package/lib/js/utils/shared.d.ts +3 -9
- package/lib/js/utils/shared.js +24 -9
- package/package.json +26 -18
- package/lib/js/terrain/MapboxTerrain.js +0 -298
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import * as mercator from "../mercator";
|
|
2
|
-
import * as quadTree from "../quadTree/quadTree";
|
|
3
2
|
import { EPSG4326 } from "../proj/EPSG4326";
|
|
4
3
|
import { Extent } from "../Extent";
|
|
5
4
|
import { Layer } from "../layer/Layer";
|
|
6
|
-
import { Segment, TILEGROUP_NORTH, TILEGROUP_SOUTH } from "./Segment";
|
|
5
|
+
import { getTileCellIndex, Segment, TILEGROUP_NORTH, TILEGROUP_SOUTH } from "./Segment";
|
|
7
6
|
import { LonLat } from "../LonLat";
|
|
8
|
-
import { Vec3 } from "../math/Vec3";
|
|
9
7
|
const MAX_POLE_ZOOM = 7;
|
|
10
8
|
export const POLE_PIECE_SIZE = (90.0 - mercator.MAX_LAT) / Math.pow(2, MAX_POLE_ZOOM);
|
|
11
|
-
let _tempHigh = new Vec3(), _tempLow = new Vec3();
|
|
12
9
|
/**
|
|
13
10
|
* Planet segment Web Mercator tile class that stored and rendered with quad tree.
|
|
14
11
|
* @class
|
|
@@ -52,105 +49,29 @@ class SegmentLonLat extends Segment {
|
|
|
52
49
|
_assignTileIndexes() {
|
|
53
50
|
this._assignTileXIndexes(this._extent);
|
|
54
51
|
this._assignTileYIndexes(this._extent);
|
|
55
|
-
this.tileIndex = Layer.getTileIndex(this.tileX, this.tileY, this.tileZoom);
|
|
52
|
+
this.tileIndex = Layer.getTileIndex(this.tileX, this.tileY, this.tileZoom, this._tileGroup);
|
|
56
53
|
}
|
|
57
54
|
_assignTileXIndexes(extent) {
|
|
58
|
-
this.tileX =
|
|
55
|
+
this.tileX = getTileCellIndex(extent.getCenter().lon, extent.getWidth(), -180);
|
|
59
56
|
let p2 = 1 << this.tileZoom;
|
|
60
57
|
this.tileXE = (this.tileX + 1) % p2;
|
|
61
58
|
this.tileXW = (p2 + this.tileX - 1) % p2;
|
|
62
59
|
}
|
|
63
60
|
_assignTileYIndexes(extent) {
|
|
64
|
-
const lat = extent.northEast.lat;
|
|
61
|
+
const lat = extent.getCenter().lat; //extent.northEast.lat;
|
|
65
62
|
if (lat > 0) {
|
|
66
63
|
this._tileGroup = TILEGROUP_NORTH;
|
|
67
|
-
this.tileY =
|
|
64
|
+
this.tileY = getTileCellIndex(lat, extent.getHeight(), 90.0);
|
|
68
65
|
}
|
|
69
66
|
else {
|
|
70
67
|
this._tileGroup = TILEGROUP_SOUTH;
|
|
71
|
-
this.tileY =
|
|
68
|
+
this.tileY = getTileCellIndex(lat, extent.getHeight(), mercator.MIN_LAT);
|
|
72
69
|
}
|
|
73
70
|
this.tileYN = this.tileY - 1;
|
|
74
71
|
this.tileYS = this.tileY + 1;
|
|
75
72
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const e = this._extent;
|
|
79
|
-
const fgs = this.planet.terrain.plainGridSize;
|
|
80
|
-
const lonSize = e.getWidth();
|
|
81
|
-
const latSize = e.getHeight();
|
|
82
|
-
const llStep = lonSize / Math.max(fgs, gridSize);
|
|
83
|
-
const ltStep = latSize / gridSize;
|
|
84
|
-
const esw_lon = e.southWest.lon;
|
|
85
|
-
const ene_lat = e.northEast.lat;
|
|
86
|
-
const dg = Math.max(fgs / gridSize, 1);
|
|
87
|
-
const gs = Math.max(fgs, gridSize) + 1;
|
|
88
|
-
const r2 = this.planet.ellipsoid._invRadii2;
|
|
89
|
-
let ind = 0, nmInd = 0;
|
|
90
|
-
const gsgs = gs * gs;
|
|
91
|
-
const gridSize3 = (gridSize + 1) * (gridSize + 1) * 3;
|
|
92
|
-
this.plainNormals = new Float32Array(gridSize3);
|
|
93
|
-
this.plainVertices = new Float64Array(gridSize3);
|
|
94
|
-
this.plainVerticesHigh = new Float32Array(gridSize3);
|
|
95
|
-
this.plainVerticesLow = new Float32Array(gridSize3);
|
|
96
|
-
this.normalMapNormals = new Float32Array(gsgs * 3);
|
|
97
|
-
this.normalMapVertices = new Float64Array(gsgs * 3);
|
|
98
|
-
this.normalMapVerticesHigh = new Float32Array(gsgs * 3);
|
|
99
|
-
this.normalMapVerticesLow = new Float32Array(gsgs * 3);
|
|
100
|
-
let xmin = 549755748352.0, xmax = -549755748352.0, ymin = 549755748352.0, ymax = -549755748352.0, zmin = 549755748352.0, zmax = -549755748352.0;
|
|
101
|
-
let verts = this.plainVertices, vertsHigh = this.plainVerticesHigh, vertsLow = this.plainVerticesLow, norms = this.plainNormals, nmVerts = this.normalMapVertices, nmVertsHigh = this.normalMapVerticesHigh, nmVertsLow = this.normalMapVerticesLow, nmNorms = this.normalMapNormals;
|
|
102
|
-
for (let k = 0; k < gsgs; k++) {
|
|
103
|
-
let j = k % gs, i = ~~(k / gs);
|
|
104
|
-
const v = this.planet.ellipsoid.lonLatToCartesian(new LonLat(esw_lon + j * llStep, ene_lat - i * ltStep));
|
|
105
|
-
let nx = v.x * r2.x, ny = v.y * r2.y, nz = v.z * r2.z;
|
|
106
|
-
let l = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz);
|
|
107
|
-
let nxl = nx * l, nyl = ny * l, nzl = nz * l;
|
|
108
|
-
Vec3.doubleToTwoFloats(v, _tempHigh, _tempLow);
|
|
109
|
-
nmVerts[nmInd] = v.x;
|
|
110
|
-
nmVertsHigh[nmInd] = _tempHigh.x;
|
|
111
|
-
nmVertsLow[nmInd] = _tempLow.x;
|
|
112
|
-
nmNorms[nmInd++] = nxl;
|
|
113
|
-
nmVerts[nmInd] = v.y;
|
|
114
|
-
nmVertsHigh[nmInd] = _tempHigh.y;
|
|
115
|
-
nmVertsLow[nmInd] = _tempLow.y;
|
|
116
|
-
nmNorms[nmInd++] = nyl;
|
|
117
|
-
nmVerts[nmInd] = v.z;
|
|
118
|
-
nmVertsHigh[nmInd] = _tempHigh.z;
|
|
119
|
-
nmVertsLow[nmInd] = _tempLow.z;
|
|
120
|
-
nmNorms[nmInd++] = nzl;
|
|
121
|
-
if (i % dg === 0 && j % dg === 0) {
|
|
122
|
-
verts[ind] = v.x;
|
|
123
|
-
vertsHigh[ind] = _tempHigh.x;
|
|
124
|
-
vertsLow[ind] = _tempLow.x;
|
|
125
|
-
norms[ind++] = nxl;
|
|
126
|
-
verts[ind] = v.y;
|
|
127
|
-
vertsHigh[ind] = _tempHigh.y;
|
|
128
|
-
vertsLow[ind] = _tempLow.y;
|
|
129
|
-
norms[ind++] = nyl;
|
|
130
|
-
verts[ind] = v.z;
|
|
131
|
-
vertsHigh[ind] = _tempHigh.z;
|
|
132
|
-
vertsLow[ind] = _tempLow.z;
|
|
133
|
-
norms[ind++] = nzl;
|
|
134
|
-
if (v.x < xmin)
|
|
135
|
-
xmin = v.x;
|
|
136
|
-
if (v.x > xmax)
|
|
137
|
-
xmax = v.x;
|
|
138
|
-
if (v.y < ymin)
|
|
139
|
-
ymin = v.y;
|
|
140
|
-
if (v.y > ymax)
|
|
141
|
-
ymax = v.y;
|
|
142
|
-
if (v.z < zmin)
|
|
143
|
-
zmin = v.z;
|
|
144
|
-
if (v.z > zmax)
|
|
145
|
-
zmax = v.z;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
this.terrainVertices = verts;
|
|
149
|
-
this.terrainVerticesHigh = vertsHigh;
|
|
150
|
-
this.terrainVerticesLow = vertsLow;
|
|
151
|
-
let x = (xmax - xmin) * 0.5, y = (ymax - ymin) * 0.5, z = (zmax - zmin) * 0.5;
|
|
152
|
-
this._plainRadius = Math.sqrt(x * x + y * y + z * z);
|
|
153
|
-
this.plainReady = true;
|
|
73
|
+
_projToDeg(lon, lat) {
|
|
74
|
+
return new LonLat(lon, lat);
|
|
154
75
|
}
|
|
155
76
|
_assignGlobalTextureCoordinates() {
|
|
156
77
|
const e = this._extent;
|
|
@@ -197,18 +118,5 @@ class SegmentLonLat extends Segment {
|
|
|
197
118
|
getExtentLonLat() {
|
|
198
119
|
return this._extent;
|
|
199
120
|
}
|
|
200
|
-
/**
|
|
201
|
-
* @todo: replace to the strategy
|
|
202
|
-
*/
|
|
203
|
-
getNodeState() {
|
|
204
|
-
let vn;
|
|
205
|
-
if (this._isNorth) {
|
|
206
|
-
vn = this.planet._visibleNodesNorth[this.node.nodeId];
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
vn = this.planet._visibleNodesSouth[this.node.nodeId];
|
|
210
|
-
}
|
|
211
|
-
return (vn && vn.state) || quadTree.NOTRENDERING;
|
|
212
|
-
}
|
|
213
121
|
}
|
|
214
122
|
export { SegmentLonLat };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SegmentLonLat } from "./SegmentLonLat";
|
|
2
|
-
import { TILEGROUP_COMMON } from "./Segment";
|
|
2
|
+
import { getTileCellIndex, TILEGROUP_COMMON } from "./Segment";
|
|
3
3
|
export class SegmentLonLatWgs84 extends SegmentLonLat {
|
|
4
4
|
constructor(node, planet, tileZoom, extent) {
|
|
5
5
|
super(node, planet, tileZoom, extent);
|
|
@@ -10,12 +10,14 @@ export class SegmentLonLatWgs84 extends SegmentLonLat {
|
|
|
10
10
|
return 150;
|
|
11
11
|
}
|
|
12
12
|
_assignTileYIndexes(extent) {
|
|
13
|
-
|
|
13
|
+
const lat = extent.getCenter().lat;
|
|
14
|
+
this.tileY = getTileCellIndex(lat, extent.getHeight(), 90.0);
|
|
14
15
|
this.tileYN = this.tileY - 1;
|
|
15
16
|
this.tileYS = this.tileY + 1;
|
|
16
17
|
}
|
|
17
18
|
_assignTileXIndexes(extent) {
|
|
18
|
-
|
|
19
|
+
let lon = extent.getCenter().lon;
|
|
20
|
+
this.tileX = getTileCellIndex(lon, extent.getWidth(), -180);
|
|
19
21
|
let p2 = (1 << this.tileZoom) * 2;
|
|
20
22
|
this.tileXE = (this.tileX + 1) % p2;
|
|
21
23
|
this.tileXW = (p2 + this.tileX - 1) % p2;
|
|
@@ -68,8 +68,8 @@ export function billboardPicking() {
|
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
vec3 up = vec3( viewMatrix[0][1], viewMatrix[1][1], viewMatrix[2][1] );
|
|
72
|
-
vec3 right = vec3( viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0] );
|
|
71
|
+
//vec3 up = vec3( viewMatrix[0][1], viewMatrix[1][1], viewMatrix[2][1] );
|
|
72
|
+
//vec3 right = vec3( viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0] );
|
|
73
73
|
|
|
74
74
|
float scd = (1.0 - smoothstep(uScaleByDistance[0], uScaleByDistance[1], lookDist)) * (1.0 - step(uScaleByDistance[2], lookDist));
|
|
75
75
|
|
|
@@ -171,8 +171,8 @@ export function billboard_screen() {
|
|
|
171
171
|
return;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
vec3 up = vec3( viewMatrix[0][1], viewMatrix[1][1], viewMatrix[2][1] );
|
|
175
|
-
vec3 right = vec3( viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0] );
|
|
174
|
+
//vec3 up = vec3( viewMatrix[0][1], viewMatrix[1][1], viewMatrix[2][1] );
|
|
175
|
+
//vec3 right = vec3( viewMatrix[0][0], viewMatrix[1][0], viewMatrix[2][0] );
|
|
176
176
|
|
|
177
177
|
float scd = (1.0 - smoothstep(uScaleByDistance[0], uScaleByDistance[1], lookDist)) * (1.0 - step(uScaleByDistance[2], lookDist));
|
|
178
178
|
|
|
@@ -64,7 +64,7 @@ export function drawnode_screen_nl() {
|
|
|
64
64
|
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
65
65
|
|
|
66
66
|
// This is works for Mac Chrome, prevent some weird optimization I suppose
|
|
67
|
-
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
67
|
+
gl_Position = m * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
68
68
|
}`,
|
|
69
69
|
fragmentShader: `precision highp float;
|
|
70
70
|
#define SLICE_SIZE ${SLICE_SIZE + 1}
|
|
@@ -149,14 +149,13 @@ export function drawnode_screen_wl_webgl1NoAtmos() {
|
|
|
149
149
|
|
|
150
150
|
void main(void) {
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
153
|
+
vec3 nh = height * normalize(aVertexPosition);
|
|
154
|
+
|
|
154
155
|
vTextureCoord.xy = aTextureCoord;
|
|
155
156
|
vGlobalTextureCoord = uGlobalTextureCoord.xy + (uGlobalTextureCoord.zw - uGlobalTextureCoord.xy) * aTextureCoord;
|
|
156
157
|
vTextureCoord.zw = uNormalMapBias.z * ( aTextureCoord + uNormalMapBias.xy );
|
|
157
158
|
|
|
158
|
-
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
159
|
-
vec3 nh = height * normalize(aVertexPosition);
|
|
160
159
|
cameraPosition = eyePositionHigh + eyePositionLow;
|
|
161
160
|
|
|
162
161
|
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
@@ -168,7 +167,7 @@ export function drawnode_screen_wl_webgl1NoAtmos() {
|
|
|
168
167
|
v_height = height;
|
|
169
168
|
v_vertex = aVertexPosition + nh;
|
|
170
169
|
|
|
171
|
-
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
170
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
172
171
|
}`,
|
|
173
172
|
fragmentShader: `
|
|
174
173
|
precision highp float;
|
|
@@ -330,14 +329,13 @@ export function drawnode_screen_wl_webgl2NoAtmos() {
|
|
|
330
329
|
|
|
331
330
|
void main(void) {
|
|
332
331
|
|
|
333
|
-
|
|
334
|
-
|
|
332
|
+
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
333
|
+
vec3 nh = height * normalize(aVertexPosition);
|
|
334
|
+
|
|
335
335
|
vTextureCoord.xy = aTextureCoord;
|
|
336
336
|
vGlobalTextureCoord = uGlobalTextureCoord.xy + (uGlobalTextureCoord.zw - uGlobalTextureCoord.xy) * aTextureCoord;
|
|
337
337
|
vTextureCoord.zw = uNormalMapBias.z * ( aTextureCoord + uNormalMapBias.xy );
|
|
338
338
|
|
|
339
|
-
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
340
|
-
vec3 nh = height * normalize(aVertexPosition);
|
|
341
339
|
cameraPosition = eyePositionHigh + eyePositionLow;
|
|
342
340
|
|
|
343
341
|
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
@@ -349,7 +347,7 @@ export function drawnode_screen_wl_webgl2NoAtmos() {
|
|
|
349
347
|
v_height = height;
|
|
350
348
|
v_vertex = aVertexPosition + nh;
|
|
351
349
|
|
|
352
|
-
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
350
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
353
351
|
}`,
|
|
354
352
|
fragmentShader: `#version 300 es
|
|
355
353
|
|
|
@@ -527,14 +525,13 @@ export function drawnode_screen_wl_webgl2Atmos() {
|
|
|
527
525
|
|
|
528
526
|
void main(void) {
|
|
529
527
|
|
|
530
|
-
|
|
531
|
-
|
|
528
|
+
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
529
|
+
vec3 nh = height * normalize(aVertexPosition);
|
|
530
|
+
|
|
532
531
|
vTextureCoord.xy = aTextureCoord;
|
|
533
532
|
vGlobalTextureCoord = uGlobalTextureCoord.xy + (uGlobalTextureCoord.zw - uGlobalTextureCoord.xy) * aTextureCoord;
|
|
534
533
|
vTextureCoord.zw = uNormalMapBias.z * ( aTextureCoord + uNormalMapBias.xy );
|
|
535
534
|
|
|
536
|
-
vec3 aVertexPosition = aVertexPositionHigh + aVertexPositionLow;
|
|
537
|
-
vec3 nh = height * normalize(aVertexPosition);
|
|
538
535
|
cameraPosition = eyePositionHigh + eyePositionLow;
|
|
539
536
|
|
|
540
537
|
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
@@ -546,7 +543,7 @@ export function drawnode_screen_wl_webgl2Atmos() {
|
|
|
546
543
|
v_height = height;
|
|
547
544
|
v_vertex = aVertexPosition + nh;
|
|
548
545
|
|
|
549
|
-
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
546
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
550
547
|
}`,
|
|
551
548
|
fragmentShader: `#version 300 es
|
|
552
549
|
|
|
@@ -850,7 +847,7 @@ export function drawnode_colorPicking() {
|
|
|
850
847
|
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
851
848
|
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
852
849
|
|
|
853
|
-
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
850
|
+
gl_Position = m * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
854
851
|
}`,
|
|
855
852
|
fragmentShader: `precision highp float;
|
|
856
853
|
#define SLICE_SIZE ${SLICE_SIZE + 1}
|
|
@@ -930,7 +927,7 @@ export function drawnode_heightPicking() {
|
|
|
930
927
|
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
931
928
|
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
932
929
|
|
|
933
|
-
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
930
|
+
gl_Position = m * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
934
931
|
}`,
|
|
935
932
|
fragmentShader: `precision highp float;
|
|
936
933
|
|
|
@@ -997,7 +994,7 @@ export function drawnode_depth() {
|
|
|
997
994
|
vec3 highDiff = aVertexPositionHigh - eyePositionHigh;
|
|
998
995
|
vec3 lowDiff = aVertexPositionLow - eyePositionLow + nh;
|
|
999
996
|
|
|
1000
|
-
gl_Position = m * vec4(highDiff + lowDiff, 1.0);
|
|
997
|
+
gl_Position = m * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
1001
998
|
}`,
|
|
1002
999
|
fragmentShader: `precision highp float;
|
|
1003
1000
|
uniform vec3 frustumPickingColor;
|
|
@@ -21,7 +21,7 @@ export const geo_object = () => new Program("geo_object", {
|
|
|
21
21
|
aDirection: { type: "vec3", divisor: 1 },
|
|
22
22
|
aPitchRoll: { type: "vec2", divisor: 1 },
|
|
23
23
|
aColor: { type: "vec4", divisor: 1 },
|
|
24
|
-
aScale: { type: "
|
|
24
|
+
aScale: { type: "vec3", divisor: 1 },
|
|
25
25
|
aDispose: { type: "float", divisor: 1 }
|
|
26
26
|
},
|
|
27
27
|
vertexShader: `precision highp float;
|
|
@@ -33,7 +33,7 @@ export const geo_object = () => new Program("geo_object", {
|
|
|
33
33
|
attribute vec3 aDirection;
|
|
34
34
|
attribute vec2 aPitchRoll;
|
|
35
35
|
attribute vec4 aColor;
|
|
36
|
-
attribute
|
|
36
|
+
attribute vec3 aScale;
|
|
37
37
|
attribute float aDispose;
|
|
38
38
|
attribute float aUseTexture;
|
|
39
39
|
attribute vec2 aTexCoord;
|
|
@@ -118,14 +118,13 @@ export const geo_object = () => new Program("geo_object", {
|
|
|
118
118
|
// ... is the same math
|
|
119
119
|
float scd = uScaleByDistance[2] * clamp(lookLength, uScaleByDistance[0], uScaleByDistance[1]) / uScaleByDistance[0];
|
|
120
120
|
|
|
121
|
-
vec3 vert = modelMatrix * aVertexPosition * aScale * scd;
|
|
122
|
-
v_vertex = position + vert;
|
|
121
|
+
vec3 vert = modelMatrix * (aVertexPosition * aScale) * scd;
|
|
123
122
|
|
|
124
|
-
// @hack
|
|
125
|
-
// Mac/Safari affects on lowDiff somehow.
|
|
126
123
|
vert += lowDiff;
|
|
127
124
|
|
|
128
|
-
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + vert, 1.0);
|
|
125
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff * step(1.0, length(highDiff)) + vert, 1.0);
|
|
126
|
+
|
|
127
|
+
v_vertex = position + vert;
|
|
129
128
|
}`,
|
|
130
129
|
fragmentShader: `precision highp float;
|
|
131
130
|
|
|
@@ -183,7 +182,7 @@ export const geo_object_picking = () => new Program("geo_object_picking", {
|
|
|
183
182
|
aDirection: { type: "vec3", divisor: 1 },
|
|
184
183
|
aPitchRoll: { type: "vec2", divisor: 1 },
|
|
185
184
|
aPickingColor: { type: "vec3", divisor: 1 },
|
|
186
|
-
aScale: { type: "
|
|
185
|
+
aScale: { type: "vec3", divisor: 1 },
|
|
187
186
|
aDispose: { type: "float", divisor: 1 }
|
|
188
187
|
},
|
|
189
188
|
vertexShader: `precision highp float;
|
|
@@ -194,7 +193,7 @@ export const geo_object_picking = () => new Program("geo_object_picking", {
|
|
|
194
193
|
attribute vec3 aDirection;
|
|
195
194
|
attribute vec3 aPickingColor;
|
|
196
195
|
attribute vec2 aPitchRoll;
|
|
197
|
-
attribute
|
|
196
|
+
attribute vec3 aScale;
|
|
198
197
|
attribute float aDispose;
|
|
199
198
|
|
|
200
199
|
uniform vec3 eyePositionHigh;
|
|
@@ -262,11 +261,11 @@ export const geo_object_picking = () => new Program("geo_object_picking", {
|
|
|
262
261
|
// tays in the vert above it affects on Mac Safari jitter
|
|
263
262
|
float scd = pickingScale * uScaleByDistance[2] * clamp(lookLength, uScaleByDistance[0], uScaleByDistance[1]) / uScaleByDistance[0];
|
|
264
263
|
|
|
265
|
-
vec3 vert = modelMatrix * aVertexPosition * aScale * scd;
|
|
264
|
+
vec3 vert = modelMatrix * (aVertexPosition * aScale) * scd;
|
|
266
265
|
|
|
267
266
|
vert += lowDiff;
|
|
268
267
|
|
|
269
|
-
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + vert, 1.0);
|
|
268
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff * step(1.0, length(highDiff)) + vert, 1.0);
|
|
270
269
|
}`,
|
|
271
270
|
fragmentShader: `precision highp float;
|
|
272
271
|
varying vec3 vColor;
|
package/lib/js/shaders/ray.js
CHANGED
|
@@ -52,8 +52,6 @@ export function rayScreen() {
|
|
|
52
52
|
vec3 vert = right * a_thickness * focalSize * a_vertices.x;
|
|
53
53
|
|
|
54
54
|
vec3 highDiff;
|
|
55
|
-
vec3 lowDiff;
|
|
56
|
-
|
|
57
55
|
if(a_vertices.y == 0.0){
|
|
58
56
|
highDiff = a_startPosHigh - eyePositionHigh;
|
|
59
57
|
vert += a_startPosLow - eyePositionLow;
|
|
@@ -65,7 +63,13 @@ export function rayScreen() {
|
|
|
65
63
|
mat4 viewMatrixRTE = viewMatrix;
|
|
66
64
|
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
67
65
|
|
|
68
|
-
|
|
66
|
+
// Hack for iMac M1, looks like it doesnt
|
|
67
|
+
// work correctly with zeroes in highDiff
|
|
68
|
+
// if(length(highDiff) < 1.0){
|
|
69
|
+
// highDiff = vec3(0.0);
|
|
70
|
+
// }
|
|
71
|
+
|
|
72
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff * step(1.0, length(highDiff)) + vert, 1.0);
|
|
69
73
|
}`,
|
|
70
74
|
fragmentShader: `precision highp float;
|
|
71
75
|
varying vec4 v_rgba;
|
|
@@ -13,6 +13,6 @@ declare class BilTerrain extends GlobusTerrain {
|
|
|
13
13
|
constructor(options?: IBilTerrainParams);
|
|
14
14
|
isBlur(segment: Segment): boolean;
|
|
15
15
|
protected _createUrl(segment: Segment): string;
|
|
16
|
-
protected _createHeights(data: number[],
|
|
16
|
+
protected _createHeights(data: number[], segment: Segment | null, tileGroup: number, tileX: number, tileY: number, tileZoom: number, extent: Extent, preventChildren: boolean): TypedArray | number[];
|
|
17
17
|
}
|
|
18
18
|
export { BilTerrain };
|
|
@@ -26,7 +26,7 @@ class BilTerrain extends GlobusTerrain {
|
|
|
26
26
|
_createUrl(segment) {
|
|
27
27
|
return WMS.createRequestUrl(this.url, this._layers, this._format, "1.1.1", "GetMap", segment._projection.code, WMS.get_bbox_v1_1_1(segment.getExtent()), this._imageSize, this._imageSize);
|
|
28
28
|
}
|
|
29
|
-
_createHeights(data,
|
|
29
|
+
_createHeights(data, segment, tileGroup, tileX, tileY, tileZoom, extent, preventChildren) {
|
|
30
30
|
let bil16 = new Int16Array(data);
|
|
31
31
|
//
|
|
32
32
|
//Non-power of two images
|
|
@@ -48,19 +48,20 @@ class BilTerrain extends GlobusTerrain {
|
|
|
48
48
|
}
|
|
49
49
|
let outCurrenElevations = new Float32Array(elevationsSize);
|
|
50
50
|
extractElevationTiles(bil16, this.noDataValues, outCurrenElevations, outChildrenElevations);
|
|
51
|
-
|
|
51
|
+
let tileIndex = Layer.getTileIndex(tileX, tileY, tileZoom, tileGroup);
|
|
52
|
+
this.setElevationCache(tileIndex, {
|
|
52
53
|
heights: outCurrenElevations,
|
|
53
54
|
extent: extent
|
|
54
|
-
};
|
|
55
|
+
});
|
|
55
56
|
let dd = this._imageSize / this.plainGridSize;
|
|
56
57
|
for (let i = 0; i < dd; i++) {
|
|
57
58
|
for (let j = 0; j < dd; j++) {
|
|
58
59
|
let x = tileX * 2 + j, y = tileY * 2 + i, z = tileZoom + 1;
|
|
59
|
-
let tileIndex = Layer.getTileIndex(x, y, z);
|
|
60
|
-
this.
|
|
60
|
+
let tileIndex = Layer.getTileIndex(x, y, z, tileGroup);
|
|
61
|
+
this.setElevationCache(tileIndex, {
|
|
61
62
|
heights: outChildrenElevations[i][j],
|
|
62
63
|
extent: getTileExtent(x, y, z)
|
|
63
|
-
};
|
|
64
|
+
});
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
return outCurrenElevations;
|
|
@@ -13,6 +13,7 @@ export interface IEmptyTerrainParams {
|
|
|
13
13
|
geoid?: Geoid;
|
|
14
14
|
gridSizeByZoom?: number[];
|
|
15
15
|
}
|
|
16
|
+
export type UrlRewriteFunc = (tileX: number, tileY: number, tileZoom: number, tileGroup: number) => string | null | undefined;
|
|
16
17
|
/**
|
|
17
18
|
* Class represents terrain provider without elevation data.
|
|
18
19
|
* @param {IEmptyTerrainParams} [options] - Provider options:
|
|
@@ -82,6 +83,12 @@ declare class EmptyTerrain {
|
|
|
82
83
|
_geoid: Geoid;
|
|
83
84
|
_isReady: boolean;
|
|
84
85
|
constructor(options?: IEmptyTerrainParams);
|
|
86
|
+
/**
|
|
87
|
+
* Sets url rewrite callback, used for custom url rewriting for every tile loading.
|
|
88
|
+
* @public
|
|
89
|
+
* @param {UrlRewriteFunc} ur - The callback that returns tile custom created url.
|
|
90
|
+
*/
|
|
91
|
+
setUrlRewriteCallback(ur: UrlRewriteFunc): void;
|
|
85
92
|
get isIdle(): boolean;
|
|
86
93
|
isEqual(obj: this): boolean;
|
|
87
94
|
static checkNoDataValue(noDataValues: number[] | TypedArray, value: number): boolean;
|
|
@@ -48,6 +48,13 @@ class EmptyTerrain {
|
|
|
48
48
|
// },
|
|
49
49
|
// ];
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Sets url rewrite callback, used for custom url rewriting for every tile loading.
|
|
53
|
+
* @public
|
|
54
|
+
* @param {UrlRewriteFunc} ur - The callback that returns tile custom created url.
|
|
55
|
+
*/
|
|
56
|
+
setUrlRewriteCallback(ur) {
|
|
57
|
+
}
|
|
51
58
|
get isIdle() {
|
|
52
59
|
return true;
|
|
53
60
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IRgbTerrainParams, RgbTerrain } from "./RgbTerrain";
|
|
2
|
+
import { Segment } from "../segment/Segment";
|
|
3
|
+
export declare class GlobusRgbTerrain extends RgbTerrain {
|
|
4
|
+
constructor(name?: string | null, options?: IRgbTerrainParams);
|
|
5
|
+
isReadyToLoad(segment: Segment): boolean;
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RgbTerrain } from "./RgbTerrain";
|
|
2
|
+
import { TILEGROUP_NORTH, TILEGROUP_SOUTH } from "../segment/Segment";
|
|
3
|
+
const urlPref = {
|
|
4
|
+
[TILEGROUP_NORTH]: "north",
|
|
5
|
+
[TILEGROUP_SOUTH]: "south"
|
|
6
|
+
};
|
|
7
|
+
const urlRewriteFunc = (tileX, tileY, tileZoom, tileGroup) => {
|
|
8
|
+
let g = urlPref[tileGroup];
|
|
9
|
+
if (g)
|
|
10
|
+
return `https://terrain.openglobus.org/public/poles/${g}/${tileZoom}/${tileX}/${tileY}.png`;
|
|
11
|
+
};
|
|
12
|
+
export class GlobusRgbTerrain extends RgbTerrain {
|
|
13
|
+
constructor(name, options) {
|
|
14
|
+
super(name || "GlobusEarthRgb", {
|
|
15
|
+
maxNativeZoom: 6,
|
|
16
|
+
maxZoom: 17,
|
|
17
|
+
url: "https://{s}.terrain.openglobus.org/public/all/{z}/{x}/{y}.png",
|
|
18
|
+
urlRewrite: urlRewriteFunc,
|
|
19
|
+
...options
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
isReadyToLoad(segment) {
|
|
23
|
+
return this._extent.overlaps(segment.getExtentLonLat());
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventsHandler } from "../Events";
|
|
2
2
|
import { TypedArray } from "../utils/shared";
|
|
3
|
-
import { EmptyTerrain, IEmptyTerrainParams } from "./EmptyTerrain";
|
|
3
|
+
import { EmptyTerrain, IEmptyTerrainParams, UrlRewriteFunc } from "./EmptyTerrain";
|
|
4
4
|
import { Extent } from "../Extent";
|
|
5
5
|
import { Loader } from "../utils/Loader";
|
|
6
6
|
import { LonLat } from "../LonLat";
|
|
@@ -18,7 +18,6 @@ type TileData = {
|
|
|
18
18
|
heights: number[] | TypedArray | null;
|
|
19
19
|
extent: Extent | null;
|
|
20
20
|
};
|
|
21
|
-
type UrlRewriteFunc = (segment: Segment, url: string) => string;
|
|
22
21
|
/**
|
|
23
22
|
* Class that loads segment elevation data, converts it to the array and passes it to the planet segment.
|
|
24
23
|
* @class
|
|
@@ -66,8 +65,9 @@ declare class GlobusTerrain extends EmptyTerrain {
|
|
|
66
65
|
get loader(): Loader<GlobusTerrain>;
|
|
67
66
|
clearCache(): void;
|
|
68
67
|
isBlur(segment: Segment): boolean;
|
|
68
|
+
setElevationCache(tileIndex: string, tileData: TileData): void;
|
|
69
|
+
getElevationCache(tileIndex: string): TileData | undefined;
|
|
69
70
|
getHeightAsync(lonLat: LonLat, callback: (h: number) => void, zoom?: number, firstAttempt?: boolean): boolean;
|
|
70
|
-
getTileCache(lonLat: LonLat, z: number): TileData | undefined;
|
|
71
71
|
protected _getGroundHeightMerc(merc: LonLat, tileData: TileData): number;
|
|
72
72
|
/**
|
|
73
73
|
* Stop loading.
|
|
@@ -97,7 +97,7 @@ declare class GlobusTerrain extends EmptyTerrain {
|
|
|
97
97
|
*/
|
|
98
98
|
loadTerrain(segment: Segment, forceLoading?: boolean): void;
|
|
99
99
|
protected _getSubdomain(): string;
|
|
100
|
-
|
|
100
|
+
buildURL(x: number, y: number, z: number, tileGroup: number): string;
|
|
101
101
|
/**
|
|
102
102
|
* Creates default query url string.
|
|
103
103
|
* @protected
|
|
@@ -123,7 +123,7 @@ declare class GlobusTerrain extends EmptyTerrain {
|
|
|
123
123
|
* @public
|
|
124
124
|
* @returns {Array.<number>} -
|
|
125
125
|
*/
|
|
126
|
-
protected _createHeights(data: any,
|
|
126
|
+
protected _createHeights(data: any, segment?: Segment | null, tileGroup?: number, x?: number, y?: number, z?: number, extent?: Extent, isMaxZoom?: boolean): TypedArray | number[];
|
|
127
127
|
/**
|
|
128
128
|
* @protected
|
|
129
129
|
*/
|