@openglobus/og 0.19.4 → 0.20.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 +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} +5 -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 +8 -1
- package/lib/js/Object3d.js +12 -2
- 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/visibleExtent/drawnode.js +1 -1
- package/lib/js/entity/GeoObject.d.ts +12 -3
- package/lib/js/entity/GeoObject.js +34 -2
- package/lib/js/entity/GeoObjectHandler.d.ts +5 -0
- package/lib/js/entity/GeoObjectHandler.js +47 -0
- 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/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 +4 -5
- 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/shared.d.ts +1 -8
- package/lib/js/utils/shared.js +17 -8
- package/package.json +2 -1
- package/lib/js/terrain/MapboxTerrain.js +0 -305
package/lib/js/Extent.js
CHANGED
|
@@ -74,8 +74,8 @@ export class Extent {
|
|
|
74
74
|
* @returns {Extent} -
|
|
75
75
|
*/
|
|
76
76
|
static fromTile(x, y, z, width = mercator.POLE_DOUBLE, height = mercator.POLE_DOUBLE) {
|
|
77
|
-
const H = Math.pow(2, z);
|
|
78
|
-
const W = Math.pow(2, z);
|
|
77
|
+
const H = 1 << z; //Math.pow(2, z);
|
|
78
|
+
const W = H; //Math.pow(2, z);
|
|
79
79
|
const lnSize = width / W;
|
|
80
80
|
const ltSize = height / H;
|
|
81
81
|
const left = -width * 0.5 + x * lnSize, top = height * 0.5 - y * ltSize, bottom = top - ltSize, right = left + lnSize;
|
package/lib/js/Globe.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { Sun } from "./control/Sun";
|
|
|
9
9
|
import { HTMLDivElementExt, Renderer } from "./renderer/Renderer";
|
|
10
10
|
import { RenderNode } from "./scene/RenderNode";
|
|
11
11
|
import { Extent } from "./Extent";
|
|
12
|
-
interface IGlobeParams {
|
|
12
|
+
export interface IGlobeParams {
|
|
13
13
|
attributionContainer?: HTMLElement;
|
|
14
14
|
target?: string | HTMLElement;
|
|
15
15
|
skybox?: RenderNode;
|
package/lib/js/Object3d.d.ts
CHANGED
|
@@ -47,7 +47,14 @@ declare class Object3d {
|
|
|
47
47
|
* @param horizontalAngle
|
|
48
48
|
* @param verticalAngle
|
|
49
49
|
*/
|
|
50
|
-
static
|
|
50
|
+
static getFrustumScaleByCameraAngles(length: number, horizontalAngle: number, verticalAngle: number): Vec3;
|
|
51
|
+
/**
|
|
52
|
+
* Returns scale parameters for a frustum geoObject created with only Object3d.createFrustum();
|
|
53
|
+
* @param length
|
|
54
|
+
* @param horizontalAngle
|
|
55
|
+
* @param aspectRatio
|
|
56
|
+
*/
|
|
57
|
+
static getFrustumScaleByCameraAspectRatio(length: number, horizontalAngle: number, aspectRatio: number): Vec3;
|
|
51
58
|
static createFrustum(length?: number, width?: number, height?: number, xOffset?: number, yOffset?: number, zOffset?: number): Object3d;
|
|
52
59
|
static createCylinder(radiusTop?: number, radiusBottom?: number, height?: number, radialSegments?: number, heightSegments?: number, isTop?: boolean, isBottom?: boolean, offsetX?: number, offsetY?: number, offsetZ?: number): Object3d;
|
|
53
60
|
static createCube(length?: number, height?: number, depth?: number, xOffset?: number, yOffset?: number, zOffset?: number): Object3d;
|
package/lib/js/Object3d.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { htmlColorToFloat32Array } from './utils/shared';
|
|
2
2
|
import { Vec3 } from './math/Vec3';
|
|
3
|
-
import { MAX, MIN, RADIANS_HALF } from './math';
|
|
3
|
+
import { DEGREES_DOUBLE, MAX, MIN, RADIANS_HALF } from './math';
|
|
4
4
|
import { transformLeftToRightCoordinateSystem, objParser } from "./utils/objParser";
|
|
5
5
|
function getColor(color) {
|
|
6
6
|
if (color instanceof Array) {
|
|
@@ -225,9 +225,19 @@ class Object3d {
|
|
|
225
225
|
* @param horizontalAngle
|
|
226
226
|
* @param verticalAngle
|
|
227
227
|
*/
|
|
228
|
-
static
|
|
228
|
+
static getFrustumScaleByCameraAngles(length, horizontalAngle, verticalAngle) {
|
|
229
229
|
return new Vec3(2.0 * length * Math.tan(RADIANS_HALF * horizontalAngle), 2.0 * length * Math.tan(RADIANS_HALF * verticalAngle), length);
|
|
230
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Returns scale parameters for a frustum geoObject created with only Object3d.createFrustum();
|
|
233
|
+
* @param length
|
|
234
|
+
* @param horizontalAngle
|
|
235
|
+
* @param aspectRatio
|
|
236
|
+
*/
|
|
237
|
+
static getFrustumScaleByCameraAspectRatio(length, horizontalAngle, aspectRatio) {
|
|
238
|
+
let vAngle = DEGREES_DOUBLE * Math.atan(Math.tan(RADIANS_HALF * horizontalAngle) / aspectRatio);
|
|
239
|
+
return Object3d.getFrustumScaleByCameraAngles(length, horizontalAngle, vAngle);
|
|
240
|
+
}
|
|
231
241
|
static createFrustum(length = 1, width = 1, height = 1, xOffset = 0, yOffset = 0, zOffset = 0) {
|
|
232
242
|
width *= 0.5;
|
|
233
243
|
height *= 0.5;
|
|
@@ -87,7 +87,7 @@ declare class Frustum {
|
|
|
87
87
|
* Sets up camera projection matrix.
|
|
88
88
|
* @public
|
|
89
89
|
* @param {number} angle - Camera's view angle.
|
|
90
|
-
* @param {number} aspect - Screen aspect
|
|
90
|
+
* @param {number} aspect - Screen aspect ratio.
|
|
91
91
|
* @param {number} near - Near camera distance.
|
|
92
92
|
* @param {number} far - Far camera distance.
|
|
93
93
|
*/
|
package/lib/js/camera/Frustum.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Mat4 } from "../math/Mat4";
|
|
2
|
+
import { RADIANS_HALF } from "../math";
|
|
2
3
|
function planeNormalize(plane) {
|
|
3
4
|
let t = 1.0 / Math.sqrt(plane[0] * plane[0] + plane[1] * plane[1] + plane[2] * plane[2]);
|
|
4
5
|
plane[0] *= t;
|
|
@@ -59,12 +60,12 @@ class Frustum {
|
|
|
59
60
|
* Sets up camera projection matrix.
|
|
60
61
|
* @public
|
|
61
62
|
* @param {number} angle - Camera's view angle.
|
|
62
|
-
* @param {number} aspect - Screen aspect
|
|
63
|
+
* @param {number} aspect - Screen aspect ratio.
|
|
63
64
|
* @param {number} near - Near camera distance.
|
|
64
65
|
* @param {number} far - Far camera distance.
|
|
65
66
|
*/
|
|
66
67
|
setProjectionMatrix(angle, aspect, near, far) {
|
|
67
|
-
this.top = near * Math.tan(
|
|
68
|
+
this.top = near * Math.tan(angle * RADIANS_HALF);
|
|
68
69
|
this.bottom = -this.top;
|
|
69
70
|
this.right = this.top * aspect;
|
|
70
71
|
this.left = -this.right;
|
|
@@ -96,27 +96,28 @@ export class DebugInfo extends Control {
|
|
|
96
96
|
ctx.strokeStyle = 'black';
|
|
97
97
|
ctx.stroke();
|
|
98
98
|
let size;
|
|
99
|
-
if (material.segment.isPole) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
// if (material.segment.isPole) {
|
|
100
|
+
// let ext = material.segment.getExtentLonLat();
|
|
101
|
+
//
|
|
102
|
+
// ctx.fillStyle = 'black';
|
|
103
|
+
// ctx.font = 'normal ' + 29 + 'px Verdana';
|
|
104
|
+
//
|
|
105
|
+
// ctx.textAlign = 'center';
|
|
106
|
+
// ctx.fillText(`${ext.northEast.lon.toFixed(3)} ${ext.northEast.lat.toFixed(3)}`, cnv.width / 2, cnv.height / 2 + 20);
|
|
107
|
+
// ctx.fillText(`${ext.southWest.lon.toFixed(3)} ${ext.southWest.lat.toFixed(3)}`, cnv.width / 2, cnv.height / 2 - 20);
|
|
108
|
+
// } else {
|
|
109
|
+
//Draw text
|
|
110
|
+
if (material.segment.tileZoom > 14) {
|
|
111
|
+
size = "26";
|
|
106
112
|
}
|
|
107
113
|
else {
|
|
108
|
-
|
|
109
|
-
if (material.segment.tileZoom > 14) {
|
|
110
|
-
size = "26";
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
size = "32";
|
|
114
|
-
}
|
|
115
|
-
ctx.fillStyle = 'black';
|
|
116
|
-
ctx.font = 'normal ' + size + 'px Verdana';
|
|
117
|
-
ctx.textAlign = 'center';
|
|
118
|
-
ctx.fillText(material.segment.tileX + "," + material.segment.tileY + "," + material.segment.tileZoom, cnv.width / 2, cnv.height / 2);
|
|
114
|
+
size = "32";
|
|
119
115
|
}
|
|
116
|
+
ctx.fillStyle = 'black';
|
|
117
|
+
ctx.font = 'normal ' + size + 'px Verdana';
|
|
118
|
+
ctx.textAlign = 'center';
|
|
119
|
+
ctx.fillText(material.segment.tileX + "," + material.segment.tileY + "," + material.segment.tileZoom, cnv.width / 2, cnv.height / 2);
|
|
120
|
+
//}
|
|
120
121
|
//Draw canvas tile
|
|
121
122
|
applyCanvas(cnv);
|
|
122
123
|
}
|
|
@@ -4,6 +4,7 @@ import { Layer } from "../layer/Layer";
|
|
|
4
4
|
import { Slider } from "../ui/Slider";
|
|
5
5
|
import { ToggleButton } from "../ui/ToggleButton";
|
|
6
6
|
import { View } from '../ui/View';
|
|
7
|
+
import { Color } from "../ui/Color";
|
|
7
8
|
interface ILightingParams extends IControlParams {
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
@@ -16,6 +17,8 @@ export declare class Lighting extends Control {
|
|
|
16
17
|
protected _panel: View<null>;
|
|
17
18
|
protected _atmosphereMaxOpacity: Slider;
|
|
18
19
|
protected _atmosphereMinOpacity: Slider;
|
|
20
|
+
protected _simpleSkyBackgroundColorOne: Color;
|
|
21
|
+
protected _simpleSkyBackgroundColorTwo: Color;
|
|
19
22
|
protected _gamma: Slider;
|
|
20
23
|
protected _exposure: Slider;
|
|
21
24
|
protected _night: Slider;
|
|
@@ -38,6 +41,7 @@ export declare class Lighting extends Control {
|
|
|
38
41
|
$ambient: HTMLElement | null;
|
|
39
42
|
$specular: HTMLElement | null;
|
|
40
43
|
$atmosphereOpacity: HTMLElement | null;
|
|
44
|
+
$simpleSkyBackground: HTMLElement | null;
|
|
41
45
|
constructor(options?: ILightingParams);
|
|
42
46
|
bindLayer(layer: Layer): void;
|
|
43
47
|
oninit(): void;
|
|
@@ -3,6 +3,7 @@ import { Dialog } from '../ui/Dialog';
|
|
|
3
3
|
import { Slider } from "../ui/Slider";
|
|
4
4
|
import { ToggleButton } from "../ui/ToggleButton";
|
|
5
5
|
import { View } from '../ui/View';
|
|
6
|
+
import { Color } from "../ui/Color";
|
|
6
7
|
const SUN_STOP_SVG_ICON = `<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 70.41" style="enable-background:new 0 0 122.88 70.41" xml:space="preserve"><g><path d="M60.91,19.12c6.95,0,13.24,2.95,17.8,7.72c4.55,4.77,7.37,11.37,7.37,18.64c0,1.94-0.2,3.83-0.58,5.65h31.61 c2.1,0,2.62,1.16,2.62,2.59c0,1.43-0.52,2.59-2.62,2.59H7.09c-2.1,0-2.62-1.16-2.62-2.59c0-1.43,0.52-2.59,2.62-2.59h29.23 c-0.38-1.82-0.58-3.71-0.58-5.65c0-7.28,2.82-13.87,7.37-18.64C47.67,22.08,53.96,19.12,60.91,19.12L60.91,19.12L60.91,19.12z M63.4,70.41c-2.1,0-2.62-1.16-2.62-2.59s0.52-2.59,2.62-2.59h56.86c2.1,0,2.62,1.16,2.62,2.59s-0.52,2.59-2.62,2.59H63.4 L63.4,70.41z M2.62,70.41c-2.1,0-2.62-1.16-2.62-2.59s0.52-2.59,2.62-2.59h29.51c2.1,0,2.62,1.16,2.62,2.59s-0.52,2.59-2.62,2.59 H2.62L2.62,70.41z M38.39,9.46c-0.78-1.35-0.32-3.07,1.03-3.85c1.35-0.78,3.07-0.32,3.85,1.03l3.62,6.27 c0.78,1.35,0.32,3.07-1.03,3.85c-1.35,0.78-3.07,0.32-3.85-1.03L38.39,9.46L38.39,9.46L38.39,9.46z M58.67,2.83 c0-1.56,1.27-2.83,2.83-2.83c1.56,0,2.83,1.27,2.83,2.83v7.24c0,1.56-1.27,2.83-2.83,2.83c-1.56,0-2.83-1.26-2.83-2.83V2.83 L58.67,2.83L58.67,2.83z M79.56,7.23c0.77-1.35,2.49-1.81,3.84-1.04c1.35,0.77,1.81,2.49,1.04,3.84l-3.62,6.27 c-0.77,1.35-2.49,1.81-3.84,1.04c-1.35-0.77-1.81-2.49-1.04-3.84L79.56,7.23L79.56,7.23L79.56,7.23z M95.45,21.48 c1.35-0.78,3.07-0.32,3.85,1.03c0.78,1.35,0.32,3.07-1.03,3.85L92,29.98c-1.35,0.78-3.07,0.32-3.85-1.03 c-0.78-1.35-0.32-3.07,1.03-3.85L95.45,21.48L95.45,21.48L95.45,21.48z M102.08,41.76c1.56,0,2.83,1.27,2.83,2.83 c0,1.56-1.27,2.83-2.83,2.83h-7.24c-1.56,0-2.83-1.26-2.83-2.83s1.26-2.83,2.83-2.83H102.08L102.08,41.76L102.08,41.76z M19.74,46.25c-1.56,0-2.83-1.27-2.83-2.83c0-1.56,1.27-2.83,2.83-2.83h7.24c1.56,0,2.83,1.26,2.83,2.83s-1.27,2.83-2.83,2.83 H19.74L19.74,46.25L19.74,46.25z M24.14,25.35c-1.35-0.77-1.81-2.49-1.04-3.84c0.77-1.35,2.49-1.81,3.84-1.04l6.27,3.62 c1.35,0.77,1.81,2.49,1.04,3.84c-0.77,1.35-2.49,1.81-3.84,1.04L24.14,25.35L24.14,25.35L24.14,25.35z"/></g></svg>`;
|
|
7
8
|
const SUN_ACTIVE_SVG_ICON = `<?xml version="1.0"?>
|
|
8
9
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
|
|
@@ -36,6 +37,9 @@ const TEMPLATE = `<div class="og-lighing">
|
|
|
36
37
|
<div class="og-option og-atmosphere-opacity">
|
|
37
38
|
</div>
|
|
38
39
|
|
|
40
|
+
<div class="og-option og-simpleskybackground">
|
|
41
|
+
</div>
|
|
42
|
+
|
|
39
43
|
<div class="og-lighting-emptyline"></div>
|
|
40
44
|
|
|
41
45
|
<div class="og-option og-gamma"></div>
|
|
@@ -118,6 +122,7 @@ export class Lighting extends Control {
|
|
|
118
122
|
this.$ambient = null;
|
|
119
123
|
this.$specular = null;
|
|
120
124
|
this.$atmosphereOpacity = null;
|
|
125
|
+
this.$simpleSkyBackground = null;
|
|
121
126
|
this._atmosphereMaxOpacity = new Slider({
|
|
122
127
|
label: "Max.opacity",
|
|
123
128
|
max: 5
|
|
@@ -126,6 +131,12 @@ export class Lighting extends Control {
|
|
|
126
131
|
label: "Min.opacity",
|
|
127
132
|
max: 5
|
|
128
133
|
});
|
|
134
|
+
this._simpleSkyBackgroundColorOne = new Color({
|
|
135
|
+
label: "Color One"
|
|
136
|
+
});
|
|
137
|
+
this._simpleSkyBackgroundColorTwo = new Color({
|
|
138
|
+
label: "Color Two"
|
|
139
|
+
});
|
|
129
140
|
this._gamma = new Slider({
|
|
130
141
|
label: "Gamma",
|
|
131
142
|
max: 5
|
|
@@ -203,6 +214,7 @@ export class Lighting extends Control {
|
|
|
203
214
|
this._panel.appendTo(this._dialog.container);
|
|
204
215
|
if (this._panel.el) {
|
|
205
216
|
this.$atmosphereOpacity = this._panel.el.querySelector(".og-atmosphere-opacity");
|
|
217
|
+
this.$simpleSkyBackground = this._panel.el.querySelector(".og-simpleskybackground");
|
|
206
218
|
this.$gamma = this._panel.el.querySelector(".og-option.og-gamma");
|
|
207
219
|
this.$exposure = this._panel.el.querySelector(".og-option.og-exposure");
|
|
208
220
|
this.$opacity = this._panel.el.querySelector(".og-option.og-opacity");
|
|
@@ -266,21 +278,27 @@ export class Lighting extends Control {
|
|
|
266
278
|
atmosphereEnabledBtn.appendTo($suncontrol);
|
|
267
279
|
if (this.planet.atmosphereEnabled) {
|
|
268
280
|
this.$atmosphereOpacity.style.display = "block";
|
|
281
|
+
this.$simpleSkyBackground.style.display = "none";
|
|
269
282
|
}
|
|
270
283
|
else {
|
|
271
284
|
this.$atmosphereOpacity.style.display = "none";
|
|
285
|
+
this.$simpleSkyBackground.style.display = "flex";
|
|
272
286
|
}
|
|
273
287
|
atmosphereEnabledBtn.events.on("change", (isActive) => {
|
|
274
288
|
this.planet.atmosphereEnabled = isActive;
|
|
275
289
|
if (this.planet.atmosphereEnabled) {
|
|
276
290
|
this.$atmosphereOpacity.style.display = "block";
|
|
291
|
+
this.$simpleSkyBackground.style.display = "none";
|
|
277
292
|
}
|
|
278
293
|
else {
|
|
279
294
|
this.$atmosphereOpacity.style.display = "none";
|
|
295
|
+
this.$simpleSkyBackground.style.display = "flex";
|
|
280
296
|
}
|
|
281
297
|
});
|
|
282
298
|
this._atmosphereMaxOpacity.appendTo(this.$atmosphereOpacity);
|
|
283
299
|
this._atmosphereMinOpacity.appendTo(this.$atmosphereOpacity);
|
|
300
|
+
this._simpleSkyBackgroundColorOne.appendTo(this.$simpleSkyBackground);
|
|
301
|
+
this._simpleSkyBackgroundColorTwo.appendTo(this.$simpleSkyBackground);
|
|
284
302
|
this._gamma.appendTo(this.$gamma);
|
|
285
303
|
this._exposure.appendTo(this.$exposure);
|
|
286
304
|
this._night.appendTo(this.$night);
|
|
@@ -295,19 +313,23 @@ export class Lighting extends Control {
|
|
|
295
313
|
this._specular_g.appendTo(this.$specular);
|
|
296
314
|
this._specular_b.appendTo(this.$specular);
|
|
297
315
|
this._shininess.appendTo(this.$specular);
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
});
|
|
316
|
+
//
|
|
317
|
+
// Screen options
|
|
318
|
+
//
|
|
302
319
|
this._gamma.value = this.planet.renderer.gamma;
|
|
303
320
|
this._gamma.events.on("change", (val) => {
|
|
304
321
|
this.planet.renderer.gamma = val;
|
|
305
322
|
});
|
|
306
|
-
this.
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
323
|
+
this._exposure.value = this.planet.renderer.exposure;
|
|
324
|
+
this._exposure.events.on("change", (val) => {
|
|
325
|
+
this.planet.renderer.exposure = val;
|
|
326
|
+
});
|
|
327
|
+
//
|
|
328
|
+
// Atmosphere parameters
|
|
329
|
+
//
|
|
330
|
+
this._atmosphereMinOpacity.value = this.planet.atmosphereMinOpacity;
|
|
331
|
+
this._atmosphereMinOpacity.events.on("change", (val) => {
|
|
332
|
+
this.planet.atmosphereMinOpacity = val;
|
|
311
333
|
});
|
|
312
334
|
this._atmosphereMaxOpacity.value = this.planet.atmosphereMaxOpacity;
|
|
313
335
|
this._atmosphereMaxOpacity.events.on("change", (val) => {
|
|
@@ -315,9 +337,26 @@ export class Lighting extends Control {
|
|
|
315
337
|
let atmos = this.planet.renderer.controls.Atmosphere;
|
|
316
338
|
atmos.opacity = val;
|
|
317
339
|
});
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
340
|
+
//
|
|
341
|
+
// Simple Sky Background parameters
|
|
342
|
+
//
|
|
343
|
+
let simpleSkyBackgroundControl = this.planet.renderer.controls.SimpleSkyBackground;
|
|
344
|
+
this._simpleSkyBackgroundColorOne.value = simpleSkyBackgroundControl.colorOne;
|
|
345
|
+
this._simpleSkyBackgroundColorOne.events.on("input", (val) => {
|
|
346
|
+
simpleSkyBackgroundControl.colorOne = val;
|
|
347
|
+
});
|
|
348
|
+
this._simpleSkyBackgroundColorTwo.value = simpleSkyBackgroundControl.colorTwo;
|
|
349
|
+
this._simpleSkyBackgroundColorTwo.events.on("input", (val) => {
|
|
350
|
+
simpleSkyBackgroundControl.colorTwo = val;
|
|
351
|
+
});
|
|
352
|
+
//
|
|
353
|
+
// Planet options
|
|
354
|
+
//
|
|
355
|
+
this._panel.el.querySelector("#layers").addEventListener("change", (e) => {
|
|
356
|
+
const l = this.planet.getLayerByName(e.target.value);
|
|
357
|
+
if (l) {
|
|
358
|
+
this.bindLayer(l);
|
|
359
|
+
}
|
|
321
360
|
});
|
|
322
361
|
this._night.events.on("change", (val) => {
|
|
323
362
|
if (this._selectedLayer) {
|
|
@@ -5,6 +5,8 @@ export declare class SimpleSkyBackground extends Control {
|
|
|
5
5
|
protected _colorOne: Float32Array;
|
|
6
6
|
protected _colorTwo: Float32Array;
|
|
7
7
|
constructor(options?: ISimpleSkyBackgroundParams);
|
|
8
|
+
get colorOne(): string;
|
|
9
|
+
get colorTwo(): string;
|
|
8
10
|
set colorOne(htmlColor: string);
|
|
9
11
|
set colorTwo(htmlColor: string);
|
|
10
12
|
oninit(): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Control } from "./Control";
|
|
2
|
-
import { htmlColorToRgb } from "../utils/shared";
|
|
2
|
+
import { htmlColorToRgb, rgbToStringHTML } from "../utils/shared";
|
|
3
3
|
import { Program } from '../webgl/Program';
|
|
4
4
|
export class SimpleSkyBackground extends Control {
|
|
5
5
|
constructor(options = {}) {
|
|
@@ -7,8 +7,18 @@ export class SimpleSkyBackground extends Control {
|
|
|
7
7
|
name: "SimpleSkyBackground",
|
|
8
8
|
...options
|
|
9
9
|
});
|
|
10
|
-
this._colorOne = new Float32Array([
|
|
11
|
-
this._colorTwo = new Float32Array([
|
|
10
|
+
this._colorOne = new Float32Array([128 / 255, 223 / 255, 255 / 255]);
|
|
11
|
+
this._colorTwo = new Float32Array([10 / 255, 15 / 255, 56 / 255]);
|
|
12
|
+
}
|
|
13
|
+
get colorOne() {
|
|
14
|
+
let c = this._colorOne;
|
|
15
|
+
let arr = [Math.round(c[0] * 255), Math.round(c[1] * 255), Math.round(c[2] * 255)];
|
|
16
|
+
return rgbToStringHTML(arr);
|
|
17
|
+
}
|
|
18
|
+
get colorTwo() {
|
|
19
|
+
let c = this._colorTwo;
|
|
20
|
+
let arr = [Math.round(c[0] * 255), Math.round(c[1] * 255), Math.round(c[2] * 255)];
|
|
21
|
+
return rgbToStringHTML(arr);
|
|
12
22
|
}
|
|
13
23
|
set colorOne(htmlColor) {
|
|
14
24
|
let rgb = htmlColorToRgb(htmlColor);
|
|
@@ -39,7 +39,7 @@ class PolygonDrawingScene extends RenderNode {
|
|
|
39
39
|
super(options.name);
|
|
40
40
|
this._cornerDblClick = false;
|
|
41
41
|
this._onChange = (e) => {
|
|
42
|
-
if (e.geometryType === "
|
|
42
|
+
if (e.geometryType === "POLYGON") {
|
|
43
43
|
let coords = this.getCoordinates();
|
|
44
44
|
let entity = new Entity({
|
|
45
45
|
'geometry': {
|
|
@@ -179,7 +179,7 @@ class PolygonDrawingScene extends RenderNode {
|
|
|
179
179
|
this._insertCornerIndex = -1;
|
|
180
180
|
}
|
|
181
181
|
get geometryType() {
|
|
182
|
-
return "
|
|
182
|
+
return "POLYGON";
|
|
183
183
|
}
|
|
184
184
|
getCoordinates() {
|
|
185
185
|
let corners = this._cornerLayer.getEntities();
|
|
@@ -54,7 +54,7 @@ export function drawnode_screen_nl() {
|
|
|
54
54
|
mat4 viewMatrixRTE = viewMatrix;
|
|
55
55
|
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
56
56
|
|
|
57
|
-
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff + lowDiff, 1.0);
|
|
57
|
+
gl_Position = projectionMatrix * viewMatrixRTE * vec4(highDiff * step(1.0, length(highDiff)) + lowDiff, 1.0);
|
|
58
58
|
}`,
|
|
59
59
|
fragmentShader: `precision highp float;
|
|
60
60
|
uniform vec4 tileOffsetArr[5];
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Entity } from "./Entity";
|
|
2
2
|
import { Quat, Vec3, Vec4 } from "../math/index";
|
|
3
|
-
import { InstanceData } from "./GeoObjectHandler";
|
|
3
|
+
import { GeoObjectHandler, InstanceData } from "./GeoObjectHandler";
|
|
4
4
|
import { NumberArray3 } from "../math/Vec3";
|
|
5
5
|
import { NumberArray4 } from "../math/Vec4";
|
|
6
6
|
import { Object3d } from "../Object3d";
|
|
7
|
-
import { GeoObjectHandler } from "./GeoObjectHandler";
|
|
8
7
|
export interface IGeoObjectParams {
|
|
9
|
-
object3d
|
|
8
|
+
object3d?: Object3d;
|
|
9
|
+
objSrc?: string;
|
|
10
|
+
textureSrc?: string;
|
|
10
11
|
tag?: string;
|
|
11
12
|
position?: Vec3 | NumberArray3;
|
|
12
13
|
pitch?: number;
|
|
@@ -14,6 +15,7 @@ export interface IGeoObjectParams {
|
|
|
14
15
|
roll?: number;
|
|
15
16
|
scale?: number | Vec3;
|
|
16
17
|
color?: Vec4 | NumberArray4 | string;
|
|
18
|
+
visibility?: boolean;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* @class
|
|
@@ -58,6 +60,8 @@ declare class GeoObject {
|
|
|
58
60
|
protected _object3d: Object3d;
|
|
59
61
|
protected _visibility: boolean;
|
|
60
62
|
protected _qNorthFrame: Quat;
|
|
63
|
+
private _textureSrc?;
|
|
64
|
+
_objectSrc?: string;
|
|
61
65
|
constructor(options: IGeoObjectParams);
|
|
62
66
|
get tag(): string;
|
|
63
67
|
getPosition(): Vec3;
|
|
@@ -118,12 +122,17 @@ declare class GeoObject {
|
|
|
118
122
|
*/
|
|
119
123
|
setPosition3v(position: Vec3): void;
|
|
120
124
|
setYaw(yaw: number): void;
|
|
125
|
+
setObject(object: Object3d): void;
|
|
126
|
+
setObjectSrc(src: string): void;
|
|
127
|
+
setTextureSrc(src: string): void;
|
|
128
|
+
setColorHTML(color: string): void;
|
|
121
129
|
/**
|
|
122
130
|
*
|
|
123
131
|
* @param {number} pitch - Pitch in radians
|
|
124
132
|
*/
|
|
125
133
|
setPitch(pitch: number): void;
|
|
126
134
|
setRoll(roll: number): void;
|
|
135
|
+
setPitchYawRoll(pitch: number, yaw: number, roll: number): void;
|
|
127
136
|
setScale(scale: number): void;
|
|
128
137
|
setScale3v(scale: Vec3): void;
|
|
129
138
|
getScale(): Vec3;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as utils from "../utils/shared";
|
|
2
2
|
import { Quat, Vec3 } from "../math/index";
|
|
3
|
+
import { Object3d } from "../Object3d";
|
|
3
4
|
/**
|
|
4
5
|
* @class
|
|
5
6
|
* @param {Object} options - Geo object parameters:
|
|
@@ -28,8 +29,19 @@ class GeoObject {
|
|
|
28
29
|
this._handlerIndex = -1;
|
|
29
30
|
this._tagData = null;
|
|
30
31
|
this._tagDataIndex = -1;
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
let object3d = options.object3d;
|
|
33
|
+
if ((!options.object3d || options.object3d?.vertices.length === 0)) {
|
|
34
|
+
object3d = new Object3d();
|
|
35
|
+
}
|
|
36
|
+
if (options.objSrc) {
|
|
37
|
+
this.setObjectSrc(options.objSrc);
|
|
38
|
+
this._objectSrc = options.objSrc;
|
|
39
|
+
}
|
|
40
|
+
this._object3d = object3d;
|
|
41
|
+
if (options.textureSrc) {
|
|
42
|
+
this.setTextureSrc(options.textureSrc);
|
|
43
|
+
}
|
|
44
|
+
this._visibility = (options.visibility != undefined ? options.visibility : true);
|
|
33
45
|
this._qNorthFrame = new Quat();
|
|
34
46
|
}
|
|
35
47
|
get tag() {
|
|
@@ -151,6 +163,21 @@ class GeoObject {
|
|
|
151
163
|
this._yaw = yaw;
|
|
152
164
|
this.updateDirection();
|
|
153
165
|
}
|
|
166
|
+
setObject(object) {
|
|
167
|
+
this._object3d = object;
|
|
168
|
+
}
|
|
169
|
+
setObjectSrc(src) {
|
|
170
|
+
this._objectSrc = src;
|
|
171
|
+
this._handler && this._handler.setObjectSrc(src, this.tag);
|
|
172
|
+
}
|
|
173
|
+
setTextureSrc(src) {
|
|
174
|
+
this._textureSrc = src;
|
|
175
|
+
this._object3d && (this._object3d.src = src);
|
|
176
|
+
this._handler && this._handler.setTextureTag(src, this.tag);
|
|
177
|
+
}
|
|
178
|
+
setColorHTML(color) {
|
|
179
|
+
this.setColor4v(utils.htmlColorToRgba(color));
|
|
180
|
+
}
|
|
154
181
|
/**
|
|
155
182
|
*
|
|
156
183
|
* @param {number} pitch - Pitch in radians
|
|
@@ -163,6 +190,11 @@ class GeoObject {
|
|
|
163
190
|
this._roll = roll;
|
|
164
191
|
this._handler && this._handler.setPitchRollArr(this._tagData, this._tagDataIndex, this._pitch, roll);
|
|
165
192
|
}
|
|
193
|
+
setPitchYawRoll(pitch, yaw, roll) {
|
|
194
|
+
this.setPitch(pitch);
|
|
195
|
+
this.setYaw(yaw);
|
|
196
|
+
this.setRoll(roll);
|
|
197
|
+
}
|
|
166
198
|
setScale(scale) {
|
|
167
199
|
this._scale.x = this._scale.y = this._scale.z = scale;
|
|
168
200
|
this._handler && this._handler.setScaleArr(this._tagData, this._tagDataIndex, this._scale);
|
|
@@ -5,6 +5,7 @@ import { Planet } from "../scene/Planet";
|
|
|
5
5
|
import { Vec3 } from "../math/Vec3";
|
|
6
6
|
import { Vec4 } from "../math/Vec4";
|
|
7
7
|
import { WebGLBufferExt, WebGLTextureExt } from "../webgl/Handler";
|
|
8
|
+
import { Object3d } from "../Object3d";
|
|
8
9
|
declare class InstanceData {
|
|
9
10
|
isFree: boolean;
|
|
10
11
|
_geoObjectHandler: GeoObjectHandler;
|
|
@@ -12,6 +13,7 @@ declare class InstanceData {
|
|
|
12
13
|
numInstances: number;
|
|
13
14
|
_texture: WebGLTextureExt | null;
|
|
14
15
|
_textureSrc: string | null;
|
|
16
|
+
_objectSrc?: string;
|
|
15
17
|
_pitchRollArr: number[] | TypedArray;
|
|
16
18
|
_sizeArr: number[] | TypedArray;
|
|
17
19
|
_vertexArr: number[] | TypedArray;
|
|
@@ -74,6 +76,9 @@ declare class GeoObjectHandler {
|
|
|
74
76
|
constructor(entityCollection: EntityCollection);
|
|
75
77
|
initProgram(): void;
|
|
76
78
|
setRenderNode(renderNode: Planet): void;
|
|
79
|
+
setTextureTag(src: string, tag: string): void;
|
|
80
|
+
setObjectSrc(src: string, tag: string): void;
|
|
81
|
+
_updateInstanceData(object: Object3d, tag: string): void;
|
|
77
82
|
protected _addGeoObjectToArray(geoObject: GeoObject): void;
|
|
78
83
|
_displayPASS(): void;
|
|
79
84
|
drawPicking(): void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as shaders from "../shaders/geoObject";
|
|
2
2
|
import { concatArrays, loadImage, makeArrayTyped, spliceArray } from "../utils/shared";
|
|
3
|
+
import { Object3d } from "../Object3d";
|
|
3
4
|
const VERTEX_BUFFER = 0;
|
|
4
5
|
const POSITION_BUFFER = 1;
|
|
5
6
|
const RGBA_BUFFER = 2;
|
|
@@ -267,6 +268,51 @@ class GeoObjectHandler {
|
|
|
267
268
|
}
|
|
268
269
|
this.update();
|
|
269
270
|
}
|
|
271
|
+
setTextureTag(src, tag) {
|
|
272
|
+
const tagData = this._instanceDataMap.get(tag);
|
|
273
|
+
if (tagData) {
|
|
274
|
+
tagData._textureSrc = src;
|
|
275
|
+
this._instanceDataMap.set(tag, tagData);
|
|
276
|
+
this._loadDataTagTexture(tagData);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
setObjectSrc(src, tag) {
|
|
280
|
+
const tagData = this._instanceDataMap.get(tag);
|
|
281
|
+
if (src) {
|
|
282
|
+
if (tagData && tagData._objectSrc !== src) {
|
|
283
|
+
tagData._objectSrc = src;
|
|
284
|
+
Object3d.loadObj(src).then((object3d) => {
|
|
285
|
+
this._updateInstanceData(object3d[0], tag);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
_updateInstanceData(object, tag) {
|
|
291
|
+
const tagData = this._instanceDataMap.get(tag);
|
|
292
|
+
if (tagData) {
|
|
293
|
+
if (object.vertices.length !== tagData._vertexArr.length) {
|
|
294
|
+
tagData._vertexArr = object.vertices;
|
|
295
|
+
tagData._changedBuffers[VERTEX_BUFFER] = true;
|
|
296
|
+
tagData._changedBuffers[DIRECTION_BUFFER] = true;
|
|
297
|
+
}
|
|
298
|
+
if (object.normals.length !== tagData._normalsArr.length) {
|
|
299
|
+
tagData._normalsArr = object.normals;
|
|
300
|
+
tagData._changedBuffers[NORMALS_BUFFER] = true;
|
|
301
|
+
}
|
|
302
|
+
if (object.indices.length !== tagData._indicesArr.length) {
|
|
303
|
+
tagData._indicesArr = object.indices;
|
|
304
|
+
tagData._changedBuffers[INDEX_BUFFER] = true;
|
|
305
|
+
}
|
|
306
|
+
if (object.texCoords.length !== tagData._texCoordArr.length) {
|
|
307
|
+
tagData._texCoordArr = object.texCoords;
|
|
308
|
+
tagData._changedBuffers[TEXCOORD_BUFFER] = true;
|
|
309
|
+
}
|
|
310
|
+
tagData._textureSrc = object.src;
|
|
311
|
+
this._loadDataTagTexture(tagData);
|
|
312
|
+
this._updateTag(tagData);
|
|
313
|
+
this._instanceDataMapValues = Array.from(this._instanceDataMap.values());
|
|
314
|
+
}
|
|
315
|
+
}
|
|
270
316
|
_addGeoObjectToArray(geoObject) {
|
|
271
317
|
const tag = geoObject.tag;
|
|
272
318
|
let tagData = this._instanceDataMap.get(tag);
|
|
@@ -507,6 +553,7 @@ class GeoObjectHandler {
|
|
|
507
553
|
geoObject.updateDirection();
|
|
508
554
|
geoObject._tagData.refresh();
|
|
509
555
|
this._updateTag(geoObject._tagData);
|
|
556
|
+
geoObject.setObjectSrc(geoObject._objectSrc);
|
|
510
557
|
}
|
|
511
558
|
}
|
|
512
559
|
remove(geoObject) {
|
|
@@ -4,7 +4,13 @@ import { GeometryHandler } from "./GeometryHandler";
|
|
|
4
4
|
import { NumberArray4, Vec4 } from "../math/Vec4";
|
|
5
5
|
import { NumberArray2 } from "../math/Vec2";
|
|
6
6
|
import { NumberArray3 } from "../math/Vec3";
|
|
7
|
-
declare
|
|
7
|
+
export declare enum GeometryTypeEnum {
|
|
8
|
+
POINT = 1,
|
|
9
|
+
LINESTRING = 2,
|
|
10
|
+
POLYGON = 3,
|
|
11
|
+
MULTIPOLYGON = 4,
|
|
12
|
+
MULTILINESTRING = 5
|
|
13
|
+
}
|
|
8
14
|
export type CoordinatesType = NumberArray2 | NumberArray3;
|
|
9
15
|
export type IPointCoordinates = CoordinatesType;
|
|
10
16
|
export type ILineStringCoordinates = CoordinatesType[];
|
|
@@ -12,11 +18,18 @@ export type IPolygonCoordinates = CoordinatesType[][];
|
|
|
12
18
|
export type IMultiLineStringCoordinates = ILineStringCoordinates[];
|
|
13
19
|
export type IMultiPolygonCoordinates = IPolygonCoordinates[];
|
|
14
20
|
export type IGeometryCoordinates = IPointCoordinates | IPolygonCoordinates | IMultiPolygonCoordinates | ILineStringCoordinates | IMultiLineStringCoordinates;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
export type GeometryTypeToCoordinates = {
|
|
22
|
+
POINT: IPointCoordinates;
|
|
23
|
+
LINESTRING: ILineStringCoordinates;
|
|
24
|
+
POLYGON: IPolygonCoordinates;
|
|
25
|
+
MULTIPOLYGON: IMultiPolygonCoordinates;
|
|
26
|
+
MULTILINESTRING: IMultiLineStringCoordinates;
|
|
27
|
+
};
|
|
28
|
+
interface IGeometry<T extends keyof typeof GeometryTypeEnum = keyof typeof GeometryTypeEnum> {
|
|
29
|
+
type: T;
|
|
30
|
+
coordinates: GeometryTypeToCoordinates[T];
|
|
18
31
|
}
|
|
19
|
-
interface IGeometryStyle {
|
|
32
|
+
export interface IGeometryStyle {
|
|
20
33
|
fillColor?: string | NumberArray4 | Vec4;
|
|
21
34
|
lineColor?: string | NumberArray4 | Vec4;
|
|
22
35
|
strokeColor?: string | NumberArray4 | Vec4;
|
|
@@ -30,9 +43,9 @@ interface IGeometryStyleInternal {
|
|
|
30
43
|
lineWidth: number;
|
|
31
44
|
strokeWidth: number;
|
|
32
45
|
}
|
|
33
|
-
export interface IGeometryParams {
|
|
34
|
-
type?:
|
|
35
|
-
coordinates?:
|
|
46
|
+
export interface IGeometryParams<T extends keyof typeof GeometryTypeEnum = keyof typeof GeometryTypeEnum> {
|
|
47
|
+
type?: T;
|
|
48
|
+
coordinates?: GeometryTypeToCoordinates[T];
|
|
36
49
|
style?: IGeometryStyle;
|
|
37
50
|
visibility?: boolean;
|
|
38
51
|
}
|
|
@@ -65,7 +78,7 @@ declare class Geometry {
|
|
|
65
78
|
_lineIndexesHandlerIndex: number;
|
|
66
79
|
_lineThicknessHandlerIndex: number;
|
|
67
80
|
_lineColorsHandlerIndex: number;
|
|
68
|
-
protected _type:
|
|
81
|
+
protected _type: GeometryTypeEnum;
|
|
69
82
|
_coordinates: IGeometryCoordinates;
|
|
70
83
|
protected _extent: Extent;
|
|
71
84
|
_style: IGeometryStyleInternal;
|
|
@@ -74,7 +87,7 @@ declare class Geometry {
|
|
|
74
87
|
constructor(options?: IGeometryParams);
|
|
75
88
|
get id(): number;
|
|
76
89
|
get type(): number;
|
|
77
|
-
static getType(typeStr:
|
|
90
|
+
static getType(typeStr: keyof typeof GeometryTypeEnum): GeometryTypeEnum;
|
|
78
91
|
/**
|
|
79
92
|
* Returns geometry extent.
|
|
80
93
|
@static
|
|
@@ -108,4 +121,4 @@ declare class Geometry {
|
|
|
108
121
|
getExtent(): Extent;
|
|
109
122
|
getType(): number;
|
|
110
123
|
}
|
|
111
|
-
export { Geometry
|
|
124
|
+
export { Geometry };
|