@openglobus/og 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -46
- package/dist/@openglobus/og.esm.js +1 -20
- package/dist/@openglobus/og.esm.js.map +1 -1
- package/dist/@openglobus/og.umd.js +1 -20
- package/dist/@openglobus/og.umd.js.map +1 -1
- package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
- package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
- package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
- package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
- package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
- package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
- package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
- package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
- package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
- package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
- package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
- package/dist/@openglobus/res/fonts/arial.json +4321 -0
- package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
- package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
- package/dist/@openglobus/res/night-4326.png +0 -0
- package/dist/@openglobus/res/night.png +0 -0
- package/dist/@openglobus/res/spec.png +0 -0
- package/package.json +25 -23
- package/src/{og/Clock.js → Clock.ts} +100 -78
- package/src/Deferred.ts +17 -0
- package/src/Events.ts +200 -0
- package/src/{og/Extent.js → Extent.ts} +324 -352
- package/src/Globe.ts +363 -0
- package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
- package/src/Lock.ts +41 -0
- package/src/{og/LonLat.js → LonLat.ts} +50 -47
- package/src/{og/Object3d.js → Object3d.ts} +89 -55
- package/src/Popup.ts +228 -0
- package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
- package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
- package/src/Stack.ts +58 -0
- package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
- package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
- package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
- package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
- package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
- package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
- package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
- package/src/bv/index.ts +4 -0
- package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
- package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
- package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +248 -185
- package/src/camera/index.ts +4 -0
- package/src/{og/cons.js → cons.ts} +14 -18
- package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
- package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
- package/src/{og/control/Control.js → control/Control.ts} +76 -70
- package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
- package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
- package/src/control/EarthCoordinates.ts +222 -0
- package/src/control/EarthNavigation.ts +293 -0
- package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
- package/src/control/KeyboardNavigation.ts +168 -0
- package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
- package/src/control/LayerSwitcher.ts +76 -0
- package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
- package/src/control/MouseNavigation.ts +468 -0
- package/src/control/MouseWheelZoomControl.ts +269 -0
- package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
- package/src/control/ScaleControl.ts +131 -0
- package/src/control/SegmentBoundVisualization.ts +50 -0
- package/src/control/ShowFps.ts +28 -0
- package/src/control/SimpleNavigation.ts +118 -0
- package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
- package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
- package/src/control/ToggleWireframe.ts +35 -0
- package/src/control/TouchNavigation.ts +368 -0
- package/src/control/ZoomControl.ts +111 -0
- package/src/control/drawing/DrawingControl.ts +45 -0
- package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
- package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
- package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
- package/src/control/heightRuler/HeightRuler.ts +16 -0
- package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
- package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
- package/src/control/index.ts +45 -0
- package/src/control/ruler/Ruler.ts +35 -0
- package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
- package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
- package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
- package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
- package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
- package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
- package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
- package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
- package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
- package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
- package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
- package/src/ellipsoid/index.ts +4 -0
- package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
- package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
- package/src/entity/BaseBillboardHandler.ts +772 -0
- package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
- package/src/entity/BillboardHandler.ts +135 -0
- package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
- package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
- package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
- package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
- package/src/entity/Geometry.ts +486 -0
- package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
- package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
- package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
- package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
- package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
- package/src/entity/PointCloudHandler.ts +125 -0
- package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
- package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
- package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
- package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
- package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
- package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
- package/src/entity/index.ts +12 -0
- package/src/index.ts +173 -0
- package/src/input/KeyboardHandler.ts +196 -0
- package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
- package/src/input/TouchHandler.ts +54 -0
- package/src/{og/input/input.js → input/input.ts} +1 -3
- package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
- package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
- package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
- package/src/layer/GeoTexture2d.ts +56 -0
- package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
- package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
- package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
- package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
- package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
- package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
- package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
- package/src/layer/index.ts +12 -0
- package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
- package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
- package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
- package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
- package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
- package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
- package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
- package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
- package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
- package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
- package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
- package/src/{og/math/coder.js → math/coder.ts} +30 -27
- package/src/math/index.ts +26 -0
- package/src/{og/math.js → math.ts} +46 -49
- package/src/{og/mercator.js → mercator.ts} +143 -149
- package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
- package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
- package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
- package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
- package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
- package/src/quadTree/EntityCollectionNode.ts +395 -0
- package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
- package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
- package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
- package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
- package/src/quadTree/index.ts +14 -0
- package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
- package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
- package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -270
- package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
- package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
- package/src/{og/scene/Planet.js → scene/Planet.ts} +777 -595
- package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
- package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
- package/src/scene/index.ts +6 -0
- package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
- package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
- package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
- package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
- package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
- package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
- package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
- package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
- package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
- package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
- package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
- package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
- package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
- package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
- package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
- package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
- package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
- package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
- package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
- package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
- package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
- package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
- package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
- package/src/terrain/EmptyTerrain.ts +230 -0
- package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
- package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
- package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
- package/src/terrain/index.ts +6 -0
- package/src/ui/Button.ts +121 -0
- package/src/ui/ButtonGroup.ts +63 -0
- package/src/ui/Dialog.ts +244 -0
- package/src/ui/Slider.ts +188 -0
- package/src/ui/ToggleButton.ts +68 -0
- package/src/{og/ui/View.js → ui/View.ts} +66 -59
- package/src/utils/BaseWorker.ts +60 -0
- package/src/utils/FontAtlas.ts +356 -0
- package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
- package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
- package/src/utils/Loader.ts +247 -0
- package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
- package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
- package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
- package/src/utils/TextureAtlas.ts +322 -0
- package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
- package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
- package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
- package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
- package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
- package/src/utils/units.ts +78 -0
- package/src/webgl/BaseFramebuffer.ts +125 -0
- package/src/webgl/Framebuffer.ts +206 -0
- package/src/webgl/Handler.ts +1414 -0
- package/src/webgl/Multisample.ts +153 -0
- package/src/webgl/Program.ts +451 -0
- package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
- package/src/webgl/index.ts +13 -0
- package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
- package/src/webgl/variableHandlers.ts +114 -0
- package/src/og/Deferred.js +0 -11
- package/src/og/Events.js +0 -185
- package/src/og/Globe.js +0 -342
- package/src/og/Lock.js +0 -44
- package/src/og/Popup.js +0 -187
- package/src/og/Stack.js +0 -49
- package/src/og/bv/index.js +0 -4
- package/src/og/camera/index.js +0 -4
- package/src/og/control/EarthCoordinates.js +0 -214
- package/src/og/control/EarthNavigation.js +0 -258
- package/src/og/control/KeyboardNavigation.js +0 -149
- package/src/og/control/LayerSwitcher.js +0 -424
- package/src/og/control/MouseNavigation.js +0 -436
- package/src/og/control/MouseWheelZoomControl.js +0 -253
- package/src/og/control/ScaleControl.js +0 -119
- package/src/og/control/SegmentBoundVisualization.js +0 -54
- package/src/og/control/ShowFps.js +0 -40
- package/src/og/control/SimpleNavigation.js +0 -123
- package/src/og/control/ToggleWireframe.js +0 -35
- package/src/og/control/TouchNavigation.js +0 -350
- package/src/og/control/ZoomControl.js +0 -115
- package/src/og/control/drawing/DrawingControl.js +0 -51
- package/src/og/control/heightRuler/HeightRuler.js +0 -12
- package/src/og/control/index.js +0 -56
- package/src/og/control/ruler/Ruler.js +0 -39
- package/src/og/ellipsoid/index.js +0 -4
- package/src/og/entity/BillboardHandler.js +0 -883
- package/src/og/entity/Geometry.js +0 -320
- package/src/og/entity/PointCloudHandler.js +0 -122
- package/src/og/entity/index.js +0 -9
- package/src/og/index.js +0 -112
- package/src/og/input/KeyboardHandler.js +0 -128
- package/src/og/input/TouchHandler.js +0 -59
- package/src/og/layer/GeoTexture2d.js +0 -50
- package/src/og/layer/index.js +0 -11
- package/src/og/math/index.js +0 -23
- package/src/og/quadTree/EntityCollectionNode.js +0 -391
- package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
- package/src/og/quadTree/index.js +0 -14
- package/src/og/res/images.js +0 -8
- package/src/og/scene/index.js +0 -5
- package/src/og/terrain/EmptyTerrain.js +0 -174
- package/src/og/terrain/index.js +0 -6
- package/src/og/ui/Button.js +0 -107
- package/src/og/ui/ButtonGroup.js +0 -57
- package/src/og/ui/Dialog.js +0 -239
- package/src/og/ui/Slider.js +0 -170
- package/src/og/ui/ToggleButton.js +0 -51
- package/src/og/ui/UIhelpers.js +0 -155
- package/src/og/utils/BaseWorker.js +0 -46
- package/src/og/utils/FontAtlas.js +0 -218
- package/src/og/utils/Loader.js +0 -188
- package/src/og/utils/TextureAtlas.js +0 -291
- package/src/og/utils/functionComposition.js +0 -13
- package/src/og/utils/units.js +0 -78
- package/src/og/webgl/Framebuffer.js +0 -311
- package/src/og/webgl/Handler.js +0 -1168
- package/src/og/webgl/Multisample.js +0 -275
- package/src/og/webgl/Program.js +0 -407
- package/src/og/webgl/callbacks.js +0 -98
- package/src/og/webgl/index.js +0 -13
- package/src/og.jsdoc +0 -3
- package/types/Clock.d.ts +0 -99
- package/types/Deferred.d.ts +0 -6
- package/types/Events.d.ts +0 -78
- package/types/Extent.d.ts +0 -166
- package/types/Globe.d.ts +0 -108
- package/types/ImageCanvas.d.ts +0 -128
- package/types/Lock.d.ts +0 -12
- package/types/LonLat.d.ts +0 -127
- package/types/Object3d.d.ts +0 -35
- package/types/Popup.d.ts +0 -29
- package/types/QueueArray.d.ts +0 -19
- package/types/Rectangle.d.ts +0 -80
- package/types/Stack.d.ts +0 -19
- package/types/arial.d.ts +0 -49
- package/types/astro/astro.d.ts +0 -38
- package/types/astro/earth.d.ts +0 -7
- package/types/astro/jd.d.ts +0 -254
- package/types/bv/Box.d.ts +0 -30
- package/types/bv/Sphere.d.ts +0 -38
- package/types/bv/index.d.ts +0 -3
- package/types/camera/Camera.d.ts +0 -314
- package/types/camera/Frustum.d.ts +0 -133
- package/types/camera/PlanetCamera.d.ts +0 -219
- package/types/camera/index.d.ts +0 -3
- package/types/cons.d.ts +0 -40
- package/types/control/Atmosphere.d.ts +0 -15
- package/types/control/CompassButton.d.ts +0 -16
- package/types/control/Control.d.ts +0 -104
- package/types/control/DebugInfo.d.ts +0 -19
- package/types/control/DrawingSwitcher.d.ts +0 -13
- package/types/control/EarthCoordinates.d.ts +0 -44
- package/types/control/EarthNavigation.d.ts +0 -43
- package/types/control/GeoImageDragControl.d.ts +0 -14
- package/types/control/KeyboardNavigation.d.ts +0 -24
- package/types/control/LayerAnimation.d.ts +0 -73
- package/types/control/LayerSwitcher.d.ts +0 -64
- package/types/control/Lighting.d.ts +0 -41
- package/types/control/MouseNavigation.d.ts +0 -49
- package/types/control/MouseWheelZoomControl.d.ts +0 -46
- package/types/control/ScaleControl.d.ts +0 -23
- package/types/control/ShowFps.d.ts +0 -11
- package/types/control/SimpleNavigation.d.ts +0 -26
- package/types/control/SimpleSkyBackground.d.ts +0 -15
- package/types/control/Sun.d.ts +0 -53
- package/types/control/ToggleWireframe.d.ts +0 -12
- package/types/control/TouchNavigation.d.ts +0 -54
- package/types/control/ZoomControl.d.ts +0 -26
- package/types/control/drawing/DrawingControl.d.ts +0 -14
- package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
- package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
- package/types/control/heightRuler/HeightRuler.d.ts +0 -6
- package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
- package/types/control/index.d.ts +0 -27
- package/types/control/ruler/Ruler.d.ts +0 -13
- package/types/control/ruler/RulerScene.d.ts +0 -51
- package/types/control/selection/Selection.d.ts +0 -49
- package/types/control/selection/SelectionScene.d.ts +0 -32
- package/types/control/timeline/TimelineControl.d.ts +0 -10
- package/types/control/timeline/TimelineModel.d.ts +0 -33
- package/types/control/timeline/TimelineView.d.ts +0 -57
- package/types/control/timeline/timelineUtils.d.ts +0 -9
- package/types/ellipsoid/Ellipsoid.d.ts +0 -170
- package/types/ellipsoid/index.d.ts +0 -3
- package/types/ellipsoid/wgs84.d.ts +0 -6
- package/types/entity/BaseBillboard.d.ts +0 -215
- package/types/entity/Billboard.d.ts +0 -94
- package/types/entity/BillboardHandler.d.ts +0 -75
- package/types/entity/Entity.d.ts +0 -340
- package/types/entity/EntityCollection.d.ts +0 -303
- package/types/entity/GeoObject.d.ts +0 -117
- package/types/entity/GeoObjectHandler.d.ts +0 -41
- package/types/entity/Geometry.d.ts +0 -79
- package/types/entity/GeometryHandler.d.ts +0 -76
- package/types/entity/Label.d.ts +0 -190
- package/types/entity/LabelHandler.d.ts +0 -31
- package/types/entity/LabelWorker.d.ts +0 -9
- package/types/entity/PointCloud.d.ts +0 -174
- package/types/entity/PointCloudHandler.d.ts +0 -38
- package/types/entity/Polyline.d.ts +0 -307
- package/types/entity/PolylineHandler.d.ts +0 -18
- package/types/entity/Ray.d.ts +0 -122
- package/types/entity/RayHandler.d.ts +0 -63
- package/types/entity/Strip.d.ts +0 -119
- package/types/entity/StripHandler.d.ts +0 -38
- package/types/entity/index.d.ts +0 -8
- package/types/index.d.ts +0 -53
- package/types/input/KeyboardHandler.d.ts +0 -10
- package/types/input/MouseHandler.d.ts +0 -5
- package/types/input/TouchHandler.d.ts +0 -5
- package/types/input/input.d.ts +0 -42
- package/types/layer/BaseGeoImage.d.ts +0 -116
- package/types/layer/CanvasTiles.d.ts +0 -73
- package/types/layer/GeoImage.d.ts +0 -51
- package/types/layer/GeoTexture2d.d.ts +0 -7
- package/types/layer/GeoVideo.d.ts +0 -47
- package/types/layer/KML.d.ts +0 -93
- package/types/layer/Layer.d.ts +0 -320
- package/types/layer/Material.d.ts +0 -45
- package/types/layer/Vector.d.ts +0 -211
- package/types/layer/WMS.d.ts +0 -66
- package/types/layer/XYZ.d.ts +0 -122
- package/types/layer/index.d.ts +0 -10
- package/types/light/LightSource.d.ts +0 -178
- package/types/math/Line2.d.ts +0 -11
- package/types/math/Line3.d.ts +0 -10
- package/types/math/Mat3.d.ts +0 -65
- package/types/math/Mat4.d.ts +0 -176
- package/types/math/Plane.d.ts +0 -18
- package/types/math/Quat.d.ts +0 -379
- package/types/math/Ray.d.ts +0 -82
- package/types/math/Vec2.d.ts +0 -309
- package/types/math/Vec3.d.ts +0 -472
- package/types/math/Vec4.d.ts +0 -161
- package/types/math/coder.d.ts +0 -43
- package/types/math/index.d.ts +0 -11
- package/types/math.d.ts +0 -268
- package/types/mercator.d.ts +0 -92
- package/types/proj/EPSG3857.d.ts +0 -6
- package/types/proj/EPSG4326.d.ts +0 -6
- package/types/proj/Proj.d.ts +0 -42
- package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/EntityCollectionNode.d.ts +0 -41
- package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/Node.d.ts +0 -58
- package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
- package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
- package/types/quadTree/index.d.ts +0 -12
- package/types/quadTree/quadTree.d.ts +0 -40
- package/types/renderer/Renderer.d.ts +0 -291
- package/types/renderer/RendererEvents.d.ts +0 -255
- package/types/res/images.d.ts +0 -2
- package/types/scene/Axes.d.ts +0 -10
- package/types/scene/BaseNode.d.ts +0 -60
- package/types/scene/Planet.d.ts +0 -595
- package/types/scene/RenderNode.d.ts +0 -152
- package/types/scene/SkyBox.d.ts +0 -9
- package/types/scene/index.d.ts +0 -4
- package/types/segment/Segment.d.ts +0 -273
- package/types/segment/SegmentLonLat.d.ts +0 -22
- package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
- package/types/segment/Slice.d.ts +0 -10
- package/types/segment/segmentHelper.d.ts +0 -13
- package/types/shaders/atmos.d.ts +0 -4
- package/types/shaders/billboard.d.ts +0 -3
- package/types/shaders/depth.d.ts +0 -2
- package/types/shaders/drawnode.d.ts +0 -8
- package/types/shaders/geoObject.d.ts +0 -3
- package/types/shaders/label.d.ts +0 -4
- package/types/shaders/pickingMask.d.ts +0 -2
- package/types/shaders/pointCloud.d.ts +0 -2
- package/types/shaders/polyline.d.ts +0 -3
- package/types/shaders/ray.d.ts +0 -2
- package/types/shaders/screenFrame.d.ts +0 -2
- package/types/shaders/skybox.d.ts +0 -2
- package/types/shaders/toneMapping.d.ts +0 -2
- package/types/shaders/utils.d.ts +0 -1
- package/types/terrain/BilTerrain.d.ts +0 -14
- package/types/terrain/EmptyTerrain.d.ts +0 -87
- package/types/terrain/Geoid.d.ts +0 -17
- package/types/terrain/GlobusTerrain.d.ts +0 -122
- package/types/terrain/MapboxTerrain.d.ts +0 -14
- package/types/terrain/index.d.ts +0 -5
- package/types/ui/Button.d.ts +0 -21
- package/types/ui/ButtonGroup.d.ts +0 -12
- package/types/ui/Dialog.d.ts +0 -41
- package/types/ui/Slider.d.ts +0 -33
- package/types/ui/ToggleButton.d.ts +0 -10
- package/types/ui/UIhelpers.d.ts +0 -13
- package/types/ui/View.d.ts +0 -33
- package/types/ui/icons.d.ts +0 -1
- package/types/utils/BaseWorker.d.ts +0 -14
- package/types/utils/FontAtlas.d.ts +0 -16
- package/types/utils/GeoImageCreator.d.ts +0 -30
- package/types/utils/ImagesCacheManager.d.ts +0 -10
- package/types/utils/Loader.d.ts +0 -31
- package/types/utils/NormalMapCreator.d.ts +0 -39
- package/types/utils/PlainSegmentWorker.d.ts +0 -8
- package/types/utils/TerrainWorker.d.ts +0 -7
- package/types/utils/TextureAtlas.d.ts +0 -113
- package/types/utils/VectorTileCreator.d.ts +0 -14
- package/types/utils/colorTable.d.ts +0 -143
- package/types/utils/earcut.d.ts +0 -6
- package/types/utils/functionComposition.d.ts +0 -5
- package/types/utils/objParser.d.ts +0 -8
- package/types/utils/shared.d.ts +0 -241
- package/types/utils/units.d.ts +0 -20
- package/types/webgl/Framebuffer.d.ts +0 -134
- package/types/webgl/Handler.d.ts +0 -403
- package/types/webgl/Multisample.d.ts +0 -91
- package/types/webgl/Program.d.ts +0 -163
- package/types/webgl/ProgramController.d.ts +0 -89
- package/types/webgl/callbacks.d.ts +0 -1
- package/types/webgl/index.d.ts +0 -6
- package/types/webgl/types.d.ts +0 -2
- /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
- /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import * as shaders from "../shaders/geoObject";
|
|
2
|
+
import {concatArrays, loadImage, makeArrayTyped, spliceArray, TypedArray} from "../utils/shared";
|
|
3
|
+
import {EntityCollection} from "./EntityCollection";
|
|
4
|
+
import {GeoObject} from "./GeoObject";
|
|
5
|
+
import {Planet} from "../scene/Planet";
|
|
6
|
+
import {Vec3} from "../math/Vec3";
|
|
7
|
+
import {Vec4} from "../math/Vec4";
|
|
8
|
+
import {WebGLBufferExt, WebGLTextureExt} from "../webgl/Handler";
|
|
5
9
|
|
|
6
10
|
const VERTEX_BUFFER = 0;
|
|
7
11
|
const POSITION_BUFFER = 1;
|
|
@@ -15,24 +19,66 @@ const PICKINGCOLOR_BUFFER = 8;
|
|
|
15
19
|
const VISIBLE_BUFFER = 9;
|
|
16
20
|
const TEXCOORD_BUFFER = 10;
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
function setParametersToArray(arr: number[] | TypedArray, index: number = 0, length: number = 0, itemSize: number = 1, ...params: number[]): number[] | TypedArray {
|
|
19
23
|
const currIndex = index * length;
|
|
20
24
|
for (let i = currIndex, len = currIndex + length; i < len; i++) {
|
|
21
25
|
arr[i] = params[i % itemSize];
|
|
22
26
|
}
|
|
23
27
|
return arr;
|
|
24
|
-
}
|
|
28
|
+
}
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
30
|
+
// function setParametersToArrayArr(arr: number[] | TypedArray, index: number = 0, length: number = 0, itemSize: number = 1, paramsArr: number[]): number[] | TypedArray {
|
|
31
|
+
// const currIndex = index * length;
|
|
32
|
+
// for (let i = currIndex, len = currIndex + length; i < len; i++) {
|
|
33
|
+
// arr[i] = paramsArr[i % itemSize];
|
|
34
|
+
// }
|
|
35
|
+
// return arr;
|
|
36
|
+
// }
|
|
33
37
|
|
|
34
38
|
class InstanceData {
|
|
35
|
-
|
|
39
|
+
|
|
40
|
+
public isFree: boolean;
|
|
41
|
+
|
|
42
|
+
public _geoObjectHandler: GeoObjectHandler;
|
|
43
|
+
|
|
44
|
+
public geoObjects: GeoObject[];
|
|
45
|
+
|
|
46
|
+
public numInstances: number;
|
|
47
|
+
|
|
48
|
+
public _texture: WebGLTextureExt | null;
|
|
49
|
+
public _textureSrc: string | null;
|
|
50
|
+
|
|
51
|
+
public _pitchRollArr: number[] | TypedArray;
|
|
52
|
+
public _sizeArr: number[] | TypedArray;
|
|
53
|
+
public _vertexArr: number[] | TypedArray;
|
|
54
|
+
public _positionHighArr: number[] | TypedArray;
|
|
55
|
+
public _positionLowArr: number[] | TypedArray;
|
|
56
|
+
public _directionArr: number[] | TypedArray;
|
|
57
|
+
public _rgbaArr: number[] | TypedArray;
|
|
58
|
+
public _normalsArr: number[] | TypedArray;
|
|
59
|
+
public _indicesArr: number[] | TypedArray;
|
|
60
|
+
public _pickingColorArr: number[] | TypedArray;
|
|
61
|
+
public _visibleArr: number[] | TypedArray;
|
|
62
|
+
public _texCoordArr: number[] | TypedArray;
|
|
63
|
+
|
|
64
|
+
public _pitchRollBuffer: WebGLBufferExt | null;
|
|
65
|
+
public _sizeBuffer: WebGLBufferExt | null;
|
|
66
|
+
public _vertexBuffer: WebGLBufferExt | null;
|
|
67
|
+
public _positionHighBuffer: WebGLBufferExt | null;
|
|
68
|
+
public _positionLowBuffer: WebGLBufferExt | null;
|
|
69
|
+
public _directionBuffer: WebGLBufferExt | null;
|
|
70
|
+
public _rgbaBuffer: WebGLBufferExt | null;
|
|
71
|
+
public _normalsBuffer: WebGLBufferExt | null;
|
|
72
|
+
public _indicesBuffer: WebGLBufferExt | null;
|
|
73
|
+
public _pickingColorBuffer: WebGLBufferExt | null;
|
|
74
|
+
public _visibleBuffer: WebGLBufferExt | null;
|
|
75
|
+
public _texCoordBuffer: WebGLBufferExt | null;
|
|
76
|
+
|
|
77
|
+
public _buffersUpdateCallbacks: Function[];
|
|
78
|
+
|
|
79
|
+
public _changedBuffers: boolean[];
|
|
80
|
+
|
|
81
|
+
constructor(geoObjectHandler: GeoObjectHandler) {
|
|
36
82
|
|
|
37
83
|
this.isFree = true;
|
|
38
84
|
|
|
@@ -87,13 +133,13 @@ class InstanceData {
|
|
|
87
133
|
this._changedBuffers = new Array(this._buffersUpdateCallbacks.length);
|
|
88
134
|
}
|
|
89
135
|
|
|
90
|
-
createTexture(image) {
|
|
136
|
+
public createTexture(image: HTMLCanvasElement | ImageBitmap | ImageData | HTMLImageElement) {
|
|
91
137
|
if (this._geoObjectHandler && this._geoObjectHandler._planet) {
|
|
92
|
-
this._texture = this._geoObjectHandler._planet.renderer
|
|
138
|
+
this._texture = this._geoObjectHandler._planet.renderer!.handler.createTextureDefault(image);
|
|
93
139
|
}
|
|
94
140
|
}
|
|
95
141
|
|
|
96
|
-
clear() {
|
|
142
|
+
public clear() {
|
|
97
143
|
|
|
98
144
|
this.numInstances = 0;
|
|
99
145
|
|
|
@@ -115,29 +161,32 @@ class InstanceData {
|
|
|
115
161
|
this._deleteBuffers();
|
|
116
162
|
|
|
117
163
|
this.isFree = false;
|
|
118
|
-
|
|
164
|
+
|
|
165
|
+
//this._geoObjectHandler = null;
|
|
119
166
|
}
|
|
120
167
|
|
|
121
|
-
_deleteBuffers() {
|
|
168
|
+
public _deleteBuffers() {
|
|
169
|
+
|
|
122
170
|
if (this._geoObjectHandler && this._geoObjectHandler._planet && this._geoObjectHandler._planet.renderer) {
|
|
171
|
+
|
|
123
172
|
let h = this._geoObjectHandler._planet.renderer.handler,
|
|
124
|
-
gl = h.gl
|
|
173
|
+
gl = h.gl!;
|
|
125
174
|
|
|
126
175
|
h.deleteTexture(this._texture);
|
|
127
176
|
this._texture = null;
|
|
128
177
|
|
|
129
|
-
gl.deleteBuffer(this._pitchRollBuffer);
|
|
130
|
-
gl.deleteBuffer(this._sizeBuffer);
|
|
131
|
-
gl.deleteBuffer(this._vertexBuffer);
|
|
132
|
-
gl.deleteBuffer(this._positionHighBuffer);
|
|
133
|
-
gl.deleteBuffer(this._positionLowBuffer);
|
|
134
|
-
gl.deleteBuffer(this._directionBuffer);
|
|
135
|
-
gl.deleteBuffer(this._rgbaBuffer);
|
|
136
|
-
gl.deleteBuffer(this._normalsBuffer);
|
|
137
|
-
gl.deleteBuffer(this._indicesBuffer);
|
|
138
|
-
gl.deleteBuffer(this._pickingColorBuffer);
|
|
139
|
-
gl.deleteBuffer(this._visibleBuffer);
|
|
140
|
-
gl.deleteBuffer(this._texCoordBuffer);
|
|
178
|
+
gl.deleteBuffer(this._pitchRollBuffer as WebGLBuffer);
|
|
179
|
+
gl.deleteBuffer(this._sizeBuffer as WebGLBuffer);
|
|
180
|
+
gl.deleteBuffer(this._vertexBuffer as WebGLBuffer);
|
|
181
|
+
gl.deleteBuffer(this._positionHighBuffer as WebGLBuffer);
|
|
182
|
+
gl.deleteBuffer(this._positionLowBuffer as WebGLBuffer);
|
|
183
|
+
gl.deleteBuffer(this._directionBuffer as WebGLBuffer);
|
|
184
|
+
gl.deleteBuffer(this._rgbaBuffer as WebGLBuffer);
|
|
185
|
+
gl.deleteBuffer(this._normalsBuffer as WebGLBuffer);
|
|
186
|
+
gl.deleteBuffer(this._indicesBuffer as WebGLBuffer);
|
|
187
|
+
gl.deleteBuffer(this._pickingColorBuffer as WebGLBuffer);
|
|
188
|
+
gl.deleteBuffer(this._visibleBuffer as WebGLBuffer);
|
|
189
|
+
gl.deleteBuffer(this._texCoordBuffer as WebGLBuffer);
|
|
141
190
|
}
|
|
142
191
|
|
|
143
192
|
this._pitchRollBuffer = null;
|
|
@@ -154,65 +203,71 @@ class InstanceData {
|
|
|
154
203
|
this._texCoordBuffer = null;
|
|
155
204
|
}
|
|
156
205
|
|
|
157
|
-
createVertexBuffer() {
|
|
158
|
-
const h = this._geoObjectHandler._planet
|
|
159
|
-
h.gl
|
|
206
|
+
public createVertexBuffer() {
|
|
207
|
+
const h = this._geoObjectHandler._planet!.renderer!.handler;
|
|
208
|
+
h.gl!.deleteBuffer(this._vertexBuffer!);
|
|
160
209
|
this._vertexArr = makeArrayTyped(this._vertexArr);
|
|
161
|
-
this._vertexBuffer = h.createArrayBuffer(this._vertexArr, 3, this._vertexArr.length / 3);
|
|
210
|
+
this._vertexBuffer = h.createArrayBuffer(this._vertexArr as Float32Array, 3, this._vertexArr.length / 3);
|
|
162
211
|
}
|
|
163
212
|
|
|
164
|
-
createPitchRollBuffer() {
|
|
165
|
-
|
|
213
|
+
public createPitchRollBuffer() {
|
|
214
|
+
|
|
215
|
+
let h = this._geoObjectHandler._planet!.renderer!.handler,
|
|
216
|
+
numItems = this._pitchRollArr.length / 2;
|
|
166
217
|
|
|
167
218
|
if (!this._pitchRollBuffer || this._pitchRollBuffer.numItems !== numItems) {
|
|
168
|
-
h.gl
|
|
219
|
+
h.gl!.deleteBuffer(this._pitchRollBuffer!);
|
|
169
220
|
this._pitchRollBuffer = h.createStreamArrayBuffer(2, numItems);
|
|
170
221
|
}
|
|
171
222
|
|
|
172
223
|
this._pitchRollArr = makeArrayTyped(this._pitchRollArr);
|
|
173
224
|
|
|
174
|
-
h.setStreamArrayBuffer(this._pitchRollBuffer, this._pitchRollArr);
|
|
225
|
+
h.setStreamArrayBuffer(this._pitchRollBuffer, this._pitchRollArr as Float32Array);
|
|
175
226
|
}
|
|
176
227
|
|
|
177
|
-
createVisibleBuffer() {
|
|
178
|
-
|
|
228
|
+
public createVisibleBuffer() {
|
|
229
|
+
|
|
230
|
+
const h = this._geoObjectHandler._planet!.renderer!.handler,
|
|
231
|
+
numItems = this._visibleArr.length;
|
|
179
232
|
|
|
180
233
|
if (!this._visibleBuffer || this._visibleBuffer.numItems !== numItems) {
|
|
181
|
-
h.gl
|
|
234
|
+
h.gl!.deleteBuffer(this._visibleBuffer!);
|
|
182
235
|
this._visibleBuffer = h.createStreamArrayBuffer(1, numItems);
|
|
183
236
|
}
|
|
184
237
|
|
|
185
238
|
this._visibleArr = makeArrayTyped(this._visibleArr);
|
|
186
239
|
|
|
187
|
-
h.setStreamArrayBuffer(this._visibleBuffer, this._visibleArr);
|
|
240
|
+
h.setStreamArrayBuffer(this._visibleBuffer, this._visibleArr as Uint8Array);
|
|
188
241
|
}
|
|
189
242
|
|
|
190
|
-
createSizeBuffer() {
|
|
191
|
-
let h = this._geoObjectHandler._planet
|
|
243
|
+
public createSizeBuffer() {
|
|
244
|
+
let h = this._geoObjectHandler._planet!.renderer!.handler,
|
|
245
|
+
numItems = this._sizeArr.length;
|
|
192
246
|
|
|
193
247
|
if (!this._sizeBuffer || this._sizeBuffer.numItems !== numItems) {
|
|
194
|
-
h.gl
|
|
248
|
+
h.gl!.deleteBuffer(this._sizeBuffer as WebGLBuffer);
|
|
195
249
|
this._sizeBuffer = h.createStreamArrayBuffer(1, numItems);
|
|
196
250
|
}
|
|
197
251
|
|
|
198
252
|
this._sizeArr = makeArrayTyped(this._sizeArr);
|
|
199
253
|
|
|
200
|
-
h.setStreamArrayBuffer(this._sizeBuffer, this._sizeArr);
|
|
254
|
+
h.setStreamArrayBuffer(this._sizeBuffer, this._sizeArr as Float32Array);
|
|
201
255
|
}
|
|
202
256
|
|
|
203
|
-
createTexCoordBuffer() {
|
|
204
|
-
const h = this._geoObjectHandler._planet
|
|
205
|
-
h.gl
|
|
257
|
+
public createTexCoordBuffer() {
|
|
258
|
+
const h = this._geoObjectHandler._planet!.renderer!.handler;
|
|
259
|
+
h.gl!.deleteBuffer(this._texCoordBuffer as WebGLBuffer);
|
|
206
260
|
this._texCoordArr = makeArrayTyped(this._texCoordArr);
|
|
207
|
-
this._texCoordBuffer = h.createArrayBuffer(this._texCoordArr, 2, this._texCoordArr.length / 2);
|
|
261
|
+
this._texCoordBuffer = h.createArrayBuffer(this._texCoordArr as Uint8Array, 2, this._texCoordArr.length / 2);
|
|
208
262
|
}
|
|
209
263
|
|
|
210
|
-
createPositionBuffer() {
|
|
211
|
-
let h = this._geoObjectHandler._planet
|
|
264
|
+
public createPositionBuffer() {
|
|
265
|
+
let h = this._geoObjectHandler._planet!.renderer!.handler,
|
|
266
|
+
numItems = this._positionHighArr.length / 3;
|
|
212
267
|
|
|
213
268
|
if (!this._positionHighBuffer || this._positionHighBuffer.numItems !== numItems) {
|
|
214
|
-
h.gl
|
|
215
|
-
h.gl
|
|
269
|
+
h.gl!.deleteBuffer(this._positionHighBuffer as WebGLBuffer);
|
|
270
|
+
h.gl!.deleteBuffer(this._positionLowBuffer as WebGLBuffer);
|
|
216
271
|
this._positionHighBuffer = h.createStreamArrayBuffer(3, numItems);
|
|
217
272
|
this._positionLowBuffer = h.createStreamArrayBuffer(3, numItems);
|
|
218
273
|
}
|
|
@@ -220,65 +275,67 @@ class InstanceData {
|
|
|
220
275
|
this._positionHighArr = makeArrayTyped(this._positionHighArr);
|
|
221
276
|
this._positionLowArr = makeArrayTyped(this._positionLowArr);
|
|
222
277
|
|
|
223
|
-
h.setStreamArrayBuffer(this._positionHighBuffer
|
|
224
|
-
h.setStreamArrayBuffer(this._positionLowBuffer
|
|
278
|
+
h.setStreamArrayBuffer(this._positionHighBuffer!, this._positionHighArr as Float32Array);
|
|
279
|
+
h.setStreamArrayBuffer(this._positionLowBuffer!, this._positionLowArr as Float32Array);
|
|
225
280
|
}
|
|
226
281
|
|
|
227
|
-
createRgbaBuffer() {
|
|
228
|
-
let h = this._geoObjectHandler._planet
|
|
282
|
+
public createRgbaBuffer() {
|
|
283
|
+
let h = this._geoObjectHandler._planet!.renderer!.handler,
|
|
284
|
+
numItems = this._rgbaArr.length / 4;
|
|
229
285
|
|
|
230
286
|
if (!this._rgbaBuffer || this._rgbaBuffer.numItems !== numItems) {
|
|
231
|
-
h.gl
|
|
287
|
+
h.gl!.deleteBuffer(this._rgbaBuffer as WebGLBuffer);
|
|
232
288
|
this._rgbaBuffer = h.createStreamArrayBuffer(4, numItems);
|
|
233
289
|
}
|
|
234
290
|
|
|
235
291
|
this._rgbaArr = makeArrayTyped(this._rgbaArr);
|
|
236
292
|
|
|
237
|
-
h.setStreamArrayBuffer(this._rgbaBuffer, this._rgbaArr);
|
|
293
|
+
h.setStreamArrayBuffer(this._rgbaBuffer, this._rgbaArr as Uint8Array);
|
|
238
294
|
}
|
|
239
295
|
|
|
240
|
-
createDirectionBuffer() {
|
|
241
|
-
let h = this._geoObjectHandler._planet
|
|
296
|
+
public createDirectionBuffer() {
|
|
297
|
+
let h = this._geoObjectHandler._planet!.renderer!.handler,
|
|
298
|
+
numItems = this._directionArr.length / 3;
|
|
242
299
|
|
|
243
300
|
if (!this._directionBuffer || this._directionBuffer.numItems !== numItems) {
|
|
244
|
-
h.gl
|
|
301
|
+
h.gl!.deleteBuffer(this._directionBuffer as WebGLBuffer);
|
|
245
302
|
this._directionBuffer = h.createStreamArrayBuffer(3, numItems);
|
|
246
303
|
}
|
|
247
304
|
|
|
248
305
|
this._directionArr = makeArrayTyped(this._directionArr);
|
|
249
306
|
|
|
250
|
-
h.setStreamArrayBuffer(this._directionBuffer, this._directionArr);
|
|
307
|
+
h.setStreamArrayBuffer(this._directionBuffer, this._directionArr as Float32Array);
|
|
251
308
|
}
|
|
252
309
|
|
|
253
|
-
createNormalsBuffer() {
|
|
254
|
-
const h = this._geoObjectHandler._planet
|
|
255
|
-
h.gl
|
|
310
|
+
public createNormalsBuffer() {
|
|
311
|
+
const h = this._geoObjectHandler._planet!.renderer!.handler;
|
|
312
|
+
h.gl!.deleteBuffer(this._normalsBuffer as WebGLBuffer);
|
|
256
313
|
this._normalsArr = makeArrayTyped(this._normalsArr);
|
|
257
|
-
this._normalsBuffer = h.createArrayBuffer(this._normalsArr, 3, this._normalsArr.length / 3);
|
|
314
|
+
this._normalsBuffer = h.createArrayBuffer(this._normalsArr as Uint8Array, 3, this._normalsArr.length / 3);
|
|
258
315
|
}
|
|
259
316
|
|
|
260
|
-
createIndicesBuffer() {
|
|
261
|
-
const h = this._geoObjectHandler._planet
|
|
262
|
-
h.gl
|
|
317
|
+
public createIndicesBuffer() {
|
|
318
|
+
const h = this._geoObjectHandler._planet!.renderer!.handler;
|
|
319
|
+
h.gl!.deleteBuffer(this._indicesBuffer as WebGLBuffer);
|
|
263
320
|
this._indicesArr = makeArrayTyped(this._indicesArr, Uint32Array);
|
|
264
|
-
this._indicesBuffer = h.createElementArrayBuffer(this._indicesArr, 1, this._indicesArr.length);
|
|
321
|
+
this._indicesBuffer = h.createElementArrayBuffer(this._indicesArr as Uint32Array, 1, this._indicesArr.length);
|
|
265
322
|
}
|
|
266
323
|
|
|
267
|
-
createPickingColorBuffer() {
|
|
268
|
-
const h = this._geoObjectHandler._planet
|
|
269
|
-
h.gl
|
|
324
|
+
public createPickingColorBuffer() {
|
|
325
|
+
const h = this._geoObjectHandler._planet!.renderer!.handler;
|
|
326
|
+
h.gl!.deleteBuffer(this._pickingColorBuffer as WebGLBuffer);
|
|
270
327
|
this._pickingColorArr = makeArrayTyped(this._pickingColorArr);
|
|
271
|
-
this._pickingColorBuffer = h.createArrayBuffer(this._pickingColorArr, 3, this._pickingColorArr.length / 3);
|
|
328
|
+
this._pickingColorBuffer = h.createArrayBuffer(this._pickingColorArr as Uint8Array, 3, this._pickingColorArr.length / 3);
|
|
272
329
|
}
|
|
273
330
|
|
|
274
|
-
refresh() {
|
|
331
|
+
public refresh() {
|
|
275
332
|
let i = this._changedBuffers.length;
|
|
276
333
|
while (i--) {
|
|
277
334
|
this._changedBuffers[i] = true;
|
|
278
335
|
}
|
|
279
336
|
}
|
|
280
337
|
|
|
281
|
-
update() {
|
|
338
|
+
public update() {
|
|
282
339
|
if (this._geoObjectHandler._planet) {
|
|
283
340
|
let i = this._changedBuffers.length;
|
|
284
341
|
while (i--) {
|
|
@@ -293,15 +350,31 @@ class InstanceData {
|
|
|
293
350
|
}
|
|
294
351
|
|
|
295
352
|
class GeoObjectHandler {
|
|
296
|
-
|
|
353
|
+
static __counter__ = 0;
|
|
354
|
+
|
|
355
|
+
protected __id: number;
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Picking rendering option.
|
|
359
|
+
* @public
|
|
360
|
+
* @type {boolean}
|
|
361
|
+
*/
|
|
362
|
+
public pickingEnabled: boolean;
|
|
297
363
|
|
|
298
|
-
|
|
364
|
+
protected _entityCollection: EntityCollection;
|
|
365
|
+
|
|
366
|
+
public _planet: Planet | null;
|
|
367
|
+
|
|
368
|
+
protected _geoObjects: GeoObject[];
|
|
369
|
+
|
|
370
|
+
protected _instanceDataMap: Map<string, InstanceData>;
|
|
371
|
+
protected _instanceDataMapValues: InstanceData[];
|
|
372
|
+
protected _dataTagUpdateQueue: InstanceData[];
|
|
373
|
+
|
|
374
|
+
constructor(entityCollection: EntityCollection) {
|
|
375
|
+
|
|
376
|
+
this.__id = GeoObjectHandler.__counter__++;
|
|
299
377
|
|
|
300
|
-
/**
|
|
301
|
-
* Picking rendering option.
|
|
302
|
-
* @public
|
|
303
|
-
* @type {boolean}
|
|
304
|
-
*/
|
|
305
378
|
this.pickingEnabled = true;
|
|
306
379
|
|
|
307
380
|
this._entityCollection = entityCollection;
|
|
@@ -310,27 +383,13 @@ class GeoObjectHandler {
|
|
|
310
383
|
|
|
311
384
|
this._geoObjects = [];
|
|
312
385
|
|
|
313
|
-
this._instanceDataMap = new Map();
|
|
386
|
+
this._instanceDataMap = new Map<string, InstanceData>();
|
|
314
387
|
this._instanceDataMapValues = [];
|
|
315
388
|
|
|
316
|
-
|
|
317
389
|
this._dataTagUpdateQueue = [];
|
|
318
390
|
}
|
|
319
391
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
static get _staticCounter() {
|
|
323
|
-
if (!this._counter && this._counter !== 0) {
|
|
324
|
-
this._counter = 0;
|
|
325
|
-
}
|
|
326
|
-
return this._counter;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
static set _staticCounter(n) {
|
|
330
|
-
this._counter = n;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
initProgram() {
|
|
392
|
+
public initProgram() {
|
|
334
393
|
if (this._planet && this._planet.renderer) {
|
|
335
394
|
if (!this._planet.renderer.handler.programs.geo_object) {
|
|
336
395
|
this._planet.renderer.handler.addProgram(shaders.geo_object());
|
|
@@ -341,8 +400,10 @@ class GeoObjectHandler {
|
|
|
341
400
|
}
|
|
342
401
|
}
|
|
343
402
|
|
|
344
|
-
setRenderNode(renderNode) {
|
|
403
|
+
public setRenderNode(renderNode: Planet) {
|
|
404
|
+
|
|
345
405
|
this._planet = renderNode;
|
|
406
|
+
|
|
346
407
|
this.initProgram();
|
|
347
408
|
|
|
348
409
|
//
|
|
@@ -358,7 +419,7 @@ class GeoObjectHandler {
|
|
|
358
419
|
this.update();
|
|
359
420
|
}
|
|
360
421
|
|
|
361
|
-
_addGeoObjectToArray(geoObject) {
|
|
422
|
+
protected _addGeoObjectToArray(geoObject: GeoObject) {
|
|
362
423
|
const tag = geoObject.tag;
|
|
363
424
|
|
|
364
425
|
let tagData = this._instanceDataMap.get(tag);
|
|
@@ -385,9 +446,13 @@ class GeoObjectHandler {
|
|
|
385
446
|
|
|
386
447
|
let itemSize = 3;
|
|
387
448
|
|
|
388
|
-
tagData._visibleArr = concatArrays(tagData._visibleArr, setParametersToArray([], 0, 1, 1, geoObject.
|
|
449
|
+
tagData._visibleArr = concatArrays(tagData._visibleArr, setParametersToArray([], 0, 1, 1, geoObject.getVisibility() ? 1 : 0));
|
|
450
|
+
|
|
451
|
+
let x = geoObject._positionHigh.x,
|
|
452
|
+
y = geoObject._positionHigh.y,
|
|
453
|
+
z = geoObject._positionHigh.z,
|
|
454
|
+
w;
|
|
389
455
|
|
|
390
|
-
let x = geoObject._positionHigh.x, y = geoObject._positionHigh.y, z = geoObject._positionHigh.z, w;
|
|
391
456
|
tagData._positionHighArr = concatArrays(tagData._positionHighArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z));
|
|
392
457
|
|
|
393
458
|
x = geoObject._positionLow.x;
|
|
@@ -395,9 +460,9 @@ class GeoObjectHandler {
|
|
|
395
460
|
z = geoObject._positionLow.z;
|
|
396
461
|
tagData._positionLowArr = concatArrays(tagData._positionLowArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z));
|
|
397
462
|
|
|
398
|
-
x = geoObject._entity
|
|
399
|
-
y = geoObject._entity
|
|
400
|
-
z = geoObject._entity
|
|
463
|
+
x = geoObject._entity!._pickingColor.x / 255;
|
|
464
|
+
y = geoObject._entity!._pickingColor.y / 255;
|
|
465
|
+
z = geoObject._entity!._pickingColor.z / 255;
|
|
401
466
|
tagData._pickingColorArr = concatArrays(tagData._pickingColorArr, setParametersToArray([], 0, itemSize, itemSize, x, y, z));
|
|
402
467
|
|
|
403
468
|
x = geoObject._direction.x;
|
|
@@ -415,18 +480,23 @@ class GeoObjectHandler {
|
|
|
415
480
|
|
|
416
481
|
itemSize = 2;
|
|
417
482
|
|
|
418
|
-
x = geoObject.
|
|
419
|
-
y = geoObject.
|
|
483
|
+
x = geoObject.getPitch();
|
|
484
|
+
y = geoObject.getRoll();
|
|
420
485
|
tagData._pitchRollArr = concatArrays(tagData._pitchRollArr, setParametersToArray([], 0, itemSize, itemSize, x, y));
|
|
421
486
|
|
|
422
487
|
itemSize = 1;
|
|
423
488
|
|
|
424
|
-
tagData._sizeArr = concatArrays(tagData._sizeArr, setParametersToArray([], 0, itemSize, itemSize, geoObject.
|
|
489
|
+
tagData._sizeArr = concatArrays(tagData._sizeArr, setParametersToArray([], 0, itemSize, itemSize, geoObject.getScale()));
|
|
425
490
|
}
|
|
426
491
|
|
|
427
|
-
_displayPASS() {
|
|
428
|
-
let r = this._planet
|
|
429
|
-
|
|
492
|
+
public _displayPASS() {
|
|
493
|
+
let r = this._planet!.renderer!,
|
|
494
|
+
sh = r.handler.programs.geo_object,
|
|
495
|
+
p = sh._program,
|
|
496
|
+
u = p.uniforms,
|
|
497
|
+
a = p.attributes,
|
|
498
|
+
gl = r.handler.gl!,
|
|
499
|
+
ec = this._entityCollection;
|
|
430
500
|
|
|
431
501
|
sh.activate();
|
|
432
502
|
|
|
@@ -435,15 +505,15 @@ class GeoObjectHandler {
|
|
|
435
505
|
//
|
|
436
506
|
gl.uniform3fv(u.uScaleByDistance, ec.scaleByDistance);
|
|
437
507
|
|
|
438
|
-
gl.uniform3fv(u.eyePositionHigh, r.activeCamera
|
|
439
|
-
gl.uniform3fv(u.eyePositionLow, r.activeCamera
|
|
508
|
+
gl.uniform3fv(u.eyePositionHigh, r.activeCamera!.eyeHigh);
|
|
509
|
+
gl.uniform3fv(u.eyePositionLow, r.activeCamera!.eyeLow);
|
|
440
510
|
|
|
441
|
-
gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera
|
|
442
|
-
gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera
|
|
511
|
+
gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera!.getProjectionMatrix());
|
|
512
|
+
gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera!.getViewMatrix());
|
|
443
513
|
|
|
444
|
-
gl.uniform3fv(u.lightsPositions, this._planet
|
|
445
|
-
gl.uniform3fv(u.lightsParamsv, this._planet
|
|
446
|
-
gl.uniform1fv(u.lightsParamsf, this._planet
|
|
514
|
+
gl.uniform3fv(u.lightsPositions, this._planet!._lightsPositions);
|
|
515
|
+
gl.uniform3fv(u.lightsParamsv, this._planet!._lightsParamsv);
|
|
516
|
+
gl.uniform1fv(u.lightsParamsf, this._planet!._lightsParamsf);
|
|
447
517
|
|
|
448
518
|
for (let i = 0; i < this._instanceDataMapValues.length; i++) {
|
|
449
519
|
let tagData = this._instanceDataMapValues[i];
|
|
@@ -451,64 +521,64 @@ class GeoObjectHandler {
|
|
|
451
521
|
//
|
|
452
522
|
// Instance individual data
|
|
453
523
|
//
|
|
454
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer);
|
|
455
|
-
gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer
|
|
524
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer!);
|
|
525
|
+
gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
456
526
|
|
|
457
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer);
|
|
458
|
-
gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer
|
|
527
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer!);
|
|
528
|
+
gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
459
529
|
|
|
460
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer);
|
|
461
|
-
gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer
|
|
530
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer!);
|
|
531
|
+
gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
462
532
|
|
|
463
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._rgbaBuffer);
|
|
464
|
-
gl.vertexAttribPointer(a.aColor, tagData._rgbaBuffer
|
|
533
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._rgbaBuffer!);
|
|
534
|
+
gl.vertexAttribPointer(a.aColor, tagData._rgbaBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
465
535
|
|
|
466
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer);
|
|
467
|
-
gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer
|
|
536
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer!);
|
|
537
|
+
gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
468
538
|
|
|
469
539
|
gl.uniform1f(u.uUseTexture, tagData._texture ? 1 : 0);
|
|
470
540
|
|
|
471
541
|
//
|
|
472
542
|
// Instance common data(could be in VAO)
|
|
473
543
|
//
|
|
474
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer);
|
|
475
|
-
gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer
|
|
544
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer!);
|
|
545
|
+
gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
476
546
|
|
|
477
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer);
|
|
478
|
-
gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer
|
|
547
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer!);
|
|
548
|
+
gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
479
549
|
|
|
480
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._normalsBuffer);
|
|
481
|
-
gl.vertexAttribPointer(a.aVertexNormal, tagData._normalsBuffer
|
|
550
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._normalsBuffer!);
|
|
551
|
+
gl.vertexAttribPointer(a.aVertexNormal, tagData._normalsBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
482
552
|
|
|
483
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer);
|
|
484
|
-
gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer
|
|
553
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer!);
|
|
554
|
+
gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
485
555
|
|
|
486
556
|
gl.activeTexture(gl.TEXTURE0);
|
|
487
|
-
gl.bindTexture(gl.TEXTURE_2D, tagData._texture || r.handler.defaultTexture);
|
|
557
|
+
gl.bindTexture(gl.TEXTURE_2D, (tagData._texture || r.handler.defaultTexture)!);
|
|
488
558
|
gl.uniform1i(u.uTexture, 0);
|
|
489
559
|
|
|
490
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._texCoordBuffer);
|
|
491
|
-
gl.vertexAttribPointer(a.aTexCoord, tagData._texCoordBuffer
|
|
560
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._texCoordBuffer!);
|
|
561
|
+
gl.vertexAttribPointer(a.aTexCoord, tagData._texCoordBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
492
562
|
|
|
493
|
-
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer);
|
|
494
|
-
p.drawElementsInstanced(gl.TRIANGLES, tagData._indicesBuffer
|
|
563
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer!);
|
|
564
|
+
p.drawElementsInstanced!(gl.TRIANGLES, tagData._indicesBuffer!.numItems, gl.UNSIGNED_INT, 0, tagData.numInstances);
|
|
495
565
|
}
|
|
496
566
|
}
|
|
497
567
|
|
|
498
|
-
drawPicking() {
|
|
568
|
+
public drawPicking() {
|
|
499
569
|
if (this._geoObjects.length && this.pickingEnabled) {
|
|
500
570
|
this.update();
|
|
501
571
|
this._pickingPASS();
|
|
502
572
|
}
|
|
503
573
|
}
|
|
504
574
|
|
|
505
|
-
_pickingPASS() {
|
|
506
|
-
let r = this._planet
|
|
575
|
+
protected _pickingPASS() {
|
|
576
|
+
let r = this._planet!.renderer!,
|
|
507
577
|
sh = r.handler.programs.geo_object_picking,
|
|
508
578
|
p = sh._program,
|
|
509
579
|
u = p.uniforms,
|
|
510
580
|
a = p.attributes,
|
|
511
|
-
gl = r.handler.gl
|
|
581
|
+
gl = r.handler.gl!,
|
|
512
582
|
ec = this._entityCollection;
|
|
513
583
|
|
|
514
584
|
sh.activate();
|
|
@@ -517,11 +587,11 @@ class GeoObjectHandler {
|
|
|
517
587
|
|
|
518
588
|
gl.uniform1f(u.pickingScale, ec.pickingScale);
|
|
519
589
|
|
|
520
|
-
gl.uniform3fv(u.eyePositionHigh, r.activeCamera
|
|
521
|
-
gl.uniform3fv(u.eyePositionLow, r.activeCamera
|
|
590
|
+
gl.uniform3fv(u.eyePositionHigh, r.activeCamera!.eyeHigh);
|
|
591
|
+
gl.uniform3fv(u.eyePositionLow, r.activeCamera!.eyeLow);
|
|
522
592
|
|
|
523
|
-
gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera
|
|
524
|
-
gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera
|
|
593
|
+
gl.uniformMatrix4fv(u.projectionMatrix, false, r.activeCamera!.getProjectionMatrix());
|
|
594
|
+
gl.uniformMatrix4fv(u.viewMatrix, false, r.activeCamera!.getViewMatrix());
|
|
525
595
|
|
|
526
596
|
for (let i = 0; i < this._instanceDataMapValues.length; i++) {
|
|
527
597
|
let tagData = this._instanceDataMapValues[i];
|
|
@@ -529,71 +599,71 @@ class GeoObjectHandler {
|
|
|
529
599
|
//
|
|
530
600
|
// Instance individual data
|
|
531
601
|
//
|
|
532
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer);
|
|
533
|
-
gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer
|
|
602
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._directionBuffer!);
|
|
603
|
+
gl.vertexAttribPointer(a.aDirection, tagData._directionBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
534
604
|
|
|
535
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer);
|
|
536
|
-
gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer
|
|
605
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._sizeBuffer!);
|
|
606
|
+
gl.vertexAttribPointer(a.aScale, tagData._sizeBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
537
607
|
|
|
538
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer);
|
|
539
|
-
gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer
|
|
608
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pitchRollBuffer!);
|
|
609
|
+
gl.vertexAttribPointer(a.aPitchRoll, tagData._pitchRollBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
540
610
|
|
|
541
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pickingColorBuffer);
|
|
542
|
-
gl.vertexAttribPointer(a.aPickingColor, tagData._pickingColorBuffer
|
|
611
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._pickingColorBuffer!);
|
|
612
|
+
gl.vertexAttribPointer(a.aPickingColor, tagData._pickingColorBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
543
613
|
|
|
544
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer);
|
|
545
|
-
gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer
|
|
614
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionHighBuffer!);
|
|
615
|
+
gl.vertexAttribPointer(a.aPositionHigh, tagData._positionHighBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
546
616
|
|
|
547
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer);
|
|
548
|
-
gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer
|
|
617
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._positionLowBuffer!);
|
|
618
|
+
gl.vertexAttribPointer(a.aPositionLow, tagData._positionLowBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
549
619
|
|
|
550
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer);
|
|
551
|
-
gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer
|
|
620
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._visibleBuffer!);
|
|
621
|
+
gl.vertexAttribPointer(a.aDispose, tagData._visibleBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
552
622
|
|
|
553
623
|
//
|
|
554
624
|
// Instance common data(could be in VAO)
|
|
555
625
|
//
|
|
556
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer);
|
|
557
|
-
gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer
|
|
626
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, tagData._vertexBuffer!);
|
|
627
|
+
gl.vertexAttribPointer(a.aVertexPosition, tagData._vertexBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
558
628
|
|
|
559
|
-
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer);
|
|
560
|
-
p.drawElementsInstanced(gl.TRIANGLES, tagData._indicesBuffer
|
|
629
|
+
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tagData._indicesBuffer!);
|
|
630
|
+
p.drawElementsInstanced!(gl.TRIANGLES, tagData._indicesBuffer!.numItems, gl.UNSIGNED_INT, 0, tagData.numInstances);
|
|
561
631
|
}
|
|
562
632
|
}
|
|
563
633
|
|
|
564
|
-
async _loadDataTagTexture(tagData) {
|
|
634
|
+
async _loadDataTagTexture(tagData: InstanceData) {
|
|
565
635
|
if (this._planet && tagData._textureSrc) {
|
|
566
636
|
const image = await loadImage(tagData._textureSrc);
|
|
567
637
|
tagData.createTexture(image);
|
|
568
638
|
}
|
|
569
639
|
}
|
|
570
640
|
|
|
571
|
-
setDirectionArr(tagData, tagDataIndex, direction) {
|
|
641
|
+
public setDirectionArr(tagData: InstanceData, tagDataIndex: number, direction: Vec3) {
|
|
572
642
|
setParametersToArray(tagData._directionArr, tagDataIndex, 3, 3, direction.x, direction.y, direction.z);
|
|
573
643
|
tagData._changedBuffers[DIRECTION_BUFFER] = true;
|
|
574
644
|
this._updateTag(tagData);
|
|
575
645
|
}
|
|
576
646
|
|
|
577
|
-
setVisibility(tagData, tagDataIndex, visibility) {
|
|
647
|
+
public setVisibility(tagData: InstanceData, tagDataIndex: number, visibility: boolean) {
|
|
578
648
|
setParametersToArray(tagData._visibleArr, tagDataIndex, 1, 1, visibility ? 1 : 0);
|
|
579
649
|
tagData._changedBuffers[VISIBLE_BUFFER] = true;
|
|
580
650
|
this._updateTag(tagData);
|
|
581
651
|
}
|
|
582
652
|
|
|
583
|
-
setPositionArr(tagData, tagDataIndex, positionHigh, positionLow) {
|
|
653
|
+
public setPositionArr(tagData: InstanceData, tagDataIndex: number, positionHigh: Vec3, positionLow: Vec3) {
|
|
584
654
|
setParametersToArray(tagData._positionHighArr, tagDataIndex, 3, 3, positionHigh.x, positionHigh.y, positionHigh.z);
|
|
585
655
|
setParametersToArray(tagData._positionLowArr, tagDataIndex, 3, 3, positionLow.x, positionLow.y, positionLow.z);
|
|
586
656
|
tagData._changedBuffers[POSITION_BUFFER] = true;
|
|
587
657
|
this._updateTag(tagData);
|
|
588
658
|
}
|
|
589
659
|
|
|
590
|
-
setRgbaArr(tagData, tagDataIndex, rgba) {
|
|
660
|
+
public setRgbaArr(tagData: InstanceData, tagDataIndex: number, rgba: Vec4) {
|
|
591
661
|
setParametersToArray(tagData._rgbaArr, tagDataIndex, 4, 4, rgba.x, rgba.y, rgba.z, rgba.w);
|
|
592
662
|
tagData._changedBuffers[RGBA_BUFFER] = true;
|
|
593
663
|
this._updateTag(tagData);
|
|
594
664
|
}
|
|
595
665
|
|
|
596
|
-
setPickingColorArr(tagData, tagDataIndex, color) {
|
|
666
|
+
public setPickingColorArr(tagData: InstanceData, tagDataIndex: number, color: Vec3) {
|
|
597
667
|
setParametersToArray(tagData._pickingColorArr, tagDataIndex, 3, 3, color.x / 255, color.y / 255, color.z / 255);
|
|
598
668
|
tagData._changedBuffers[PICKINGCOLOR_BUFFER] = true;
|
|
599
669
|
this._updateTag(tagData);
|
|
@@ -605,42 +675,42 @@ class GeoObjectHandler {
|
|
|
605
675
|
// this._updateTag(tagData);
|
|
606
676
|
// }
|
|
607
677
|
|
|
608
|
-
setPitchRollArr(tagData, tagDataIndex, pitch, roll) {
|
|
678
|
+
public setPitchRollArr(tagData: InstanceData, tagDataIndex: number, pitch: number, roll: number) {
|
|
609
679
|
setParametersToArray(tagData._pitchRollArr, tagDataIndex, 2, 2, pitch, roll);
|
|
610
680
|
tagData._changedBuffers[PITCH_ROLL_BUFFER] = true;
|
|
611
681
|
this._updateTag(tagData);
|
|
612
682
|
}
|
|
613
683
|
|
|
614
|
-
setScaleArr(tagData, tagDataIndex, scale) {
|
|
684
|
+
public setScaleArr(tagData: InstanceData, tagDataIndex: number, scale: number) {
|
|
615
685
|
setParametersToArray(tagData._sizeArr, tagDataIndex, 1, 1, scale);
|
|
616
686
|
tagData._changedBuffers[SIZE_BUFFER] = true;
|
|
617
687
|
this._updateTag(tagData);
|
|
618
688
|
}
|
|
619
689
|
|
|
620
|
-
_updateTag(dataTag) {
|
|
690
|
+
protected _updateTag(dataTag: InstanceData) {
|
|
621
691
|
if (dataTag.isFree) {
|
|
622
692
|
dataTag.isFree = false;
|
|
623
693
|
this._dataTagUpdateQueue.push(dataTag);
|
|
624
694
|
}
|
|
625
695
|
}
|
|
626
696
|
|
|
627
|
-
update() {
|
|
697
|
+
public update() {
|
|
628
698
|
for (let i = 0, len = this._dataTagUpdateQueue.length; i < len; i++) {
|
|
629
699
|
this._dataTagUpdateQueue[i].update();
|
|
630
700
|
}
|
|
631
701
|
this._dataTagUpdateQueue = [];
|
|
632
702
|
}
|
|
633
703
|
|
|
634
|
-
_removeAll() {
|
|
704
|
+
public _removeAll() {
|
|
635
705
|
let i = this._geoObjects.length;
|
|
636
706
|
while (i--) {
|
|
637
707
|
const gi = this._geoObjects[i];
|
|
638
708
|
|
|
639
709
|
gi._tagDataIndex = -1;
|
|
640
|
-
gi._tagData =
|
|
710
|
+
gi._tagData = null;
|
|
641
711
|
|
|
642
712
|
gi._handlerIndex = -1;
|
|
643
|
-
gi._handler =
|
|
713
|
+
gi._handler = null;
|
|
644
714
|
}
|
|
645
715
|
this._geoObjects.length = 0;
|
|
646
716
|
this._geoObjects = [];
|
|
@@ -653,18 +723,19 @@ class GeoObjectHandler {
|
|
|
653
723
|
this._instanceDataMapValues = [];
|
|
654
724
|
}
|
|
655
725
|
|
|
656
|
-
clear() {
|
|
726
|
+
public clear() {
|
|
657
727
|
this._removeAll();
|
|
658
728
|
}
|
|
659
729
|
|
|
660
|
-
draw() {
|
|
730
|
+
public draw() {
|
|
661
731
|
if (this._geoObjects.length) {
|
|
662
732
|
this.update();
|
|
663
733
|
this._displayPASS();
|
|
664
734
|
}
|
|
665
735
|
}
|
|
666
736
|
|
|
667
|
-
add(geoObject) {
|
|
737
|
+
public add(geoObject: GeoObject) {
|
|
738
|
+
|
|
668
739
|
if (geoObject._handlerIndex === -1) {
|
|
669
740
|
|
|
670
741
|
geoObject._handler = this;
|
|
@@ -673,25 +744,28 @@ class GeoObjectHandler {
|
|
|
673
744
|
this._geoObjects.push(geoObject);
|
|
674
745
|
this._addGeoObjectToArray(geoObject);
|
|
675
746
|
|
|
676
|
-
geoObject.
|
|
677
|
-
|
|
747
|
+
geoObject.updateDirection();
|
|
748
|
+
|
|
749
|
+
geoObject._tagData!.refresh();
|
|
750
|
+
|
|
751
|
+
this._updateTag(geoObject._tagData!);
|
|
678
752
|
}
|
|
679
753
|
}
|
|
680
754
|
|
|
681
|
-
remove(geoObject) {
|
|
682
|
-
if (geoObject._handler && this.
|
|
755
|
+
public remove(geoObject: GeoObject) {
|
|
756
|
+
if (geoObject._handler && this.__id == geoObject._handler.__id) {
|
|
683
757
|
this._removeGeoObject(geoObject);
|
|
684
758
|
}
|
|
685
759
|
}
|
|
686
760
|
|
|
687
|
-
_clearDataTagQueue() {
|
|
761
|
+
public _clearDataTagQueue() {
|
|
688
762
|
this._dataTagUpdateQueue = [];
|
|
689
763
|
}
|
|
690
764
|
|
|
691
765
|
|
|
692
|
-
_removeGeoObject(geoObject) {
|
|
766
|
+
public _removeGeoObject(geoObject: GeoObject) {
|
|
693
767
|
|
|
694
|
-
let tagData = geoObject._tagData
|
|
768
|
+
let tagData = geoObject._tagData!;
|
|
695
769
|
let tag = geoObject.tag;
|
|
696
770
|
|
|
697
771
|
tagData.numInstances--;
|
|
@@ -714,6 +788,7 @@ class GeoObjectHandler {
|
|
|
714
788
|
|
|
715
789
|
let tdi = geoObject._tagDataIndex;
|
|
716
790
|
tagData.geoObjects.splice(tdi, 1);
|
|
791
|
+
|
|
717
792
|
for (let i = geoObject._tagDataIndex, len = tagData.geoObjects.length; i < len; i++) {
|
|
718
793
|
let gi = tagData.geoObjects[i];
|
|
719
794
|
gi._tagDataIndex = gi._tagDataIndex - 1;
|
|
@@ -729,10 +804,10 @@ class GeoObjectHandler {
|
|
|
729
804
|
tagData._visibleArr = spliceArray(tagData._visibleArr, tdi, 1);
|
|
730
805
|
|
|
731
806
|
geoObject._handlerIndex = -1;
|
|
732
|
-
geoObject._handler =
|
|
807
|
+
geoObject._handler = null;
|
|
733
808
|
|
|
734
809
|
geoObject._tagDataIndex = -1;
|
|
735
|
-
geoObject._tagData =
|
|
810
|
+
geoObject._tagData = null;
|
|
736
811
|
|
|
737
812
|
if (!isEmpty) {
|
|
738
813
|
tagData.refresh();
|
|
@@ -741,4 +816,4 @@ class GeoObjectHandler {
|
|
|
741
816
|
}
|
|
742
817
|
}
|
|
743
818
|
|
|
744
|
-
export {
|
|
819
|
+
export {GeoObjectHandler, InstanceData};
|