@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,24 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { BaseWorker } from "../utils/BaseWorker.js";
|
|
1
|
+
import {BaseWorker} from "../utils/BaseWorker";
|
|
2
|
+
import {Label} from "../entity/Label";
|
|
3
|
+
import {LabelHandler} from "../entity/LabelHandler";
|
|
6
4
|
|
|
7
5
|
export const LOCK_UPDATE = -2;
|
|
8
6
|
export const LOCK_FREE = -1;
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
interface LabelInfo {
|
|
9
|
+
label: Label;
|
|
10
|
+
handler: LabelHandler;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
class LabelWorker extends BaseWorker<LabelInfo> {
|
|
14
|
+
|
|
15
|
+
constructor(numWorkers: number = 4) {
|
|
16
|
+
super(numWorkers, LABEL_PROGRAM);
|
|
14
17
|
}
|
|
15
18
|
|
|
16
|
-
_onMessage(e) {
|
|
17
|
-
let s = this._source.get(e.data.id)
|
|
19
|
+
protected override _onMessage(e: MessageEvent) {
|
|
20
|
+
let s = this._source.get(e.data.id)!;
|
|
18
21
|
|
|
19
22
|
if (s.label._lockId === LOCK_UPDATE) {
|
|
20
23
|
requestAnimationFrame(() => {
|
|
21
|
-
this.make({
|
|
24
|
+
this.make({handler: s.handler, label: s.label});
|
|
22
25
|
});
|
|
23
26
|
} else {
|
|
24
27
|
s.handler.workerCallback(e.data, s.label);
|
|
@@ -28,35 +31,22 @@ class LabelWorker extends BaseWorker {
|
|
|
28
31
|
}
|
|
29
32
|
|
|
30
33
|
|
|
31
|
-
make(data) {
|
|
34
|
+
public override make(data: LabelInfo) {
|
|
32
35
|
let label = data.label,
|
|
33
36
|
handler = data.handler;
|
|
34
37
|
|
|
35
38
|
if (handler._entityCollection) {
|
|
36
39
|
|
|
37
40
|
if (this._workerQueue.length) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
this._source.set(this.
|
|
41
|
-
|
|
42
|
-
let labelData =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/*2*/label.getVisibility() ? 1 : 0,
|
|
46
|
-
/*3, 4, 5*/label._positionHigh.x, label._positionHigh.y, label._positionHigh.z,
|
|
47
|
-
/*6, 7, 8*/label._positionLow.x, label._positionLow.y, label._positionLow.z,
|
|
48
|
-
/*9*/label._size,
|
|
49
|
-
/*10, 11, 12*/label._offset.x, label._offset.y, label._offset.z,
|
|
50
|
-
/*13, 14, 15, 16*/label._color.x, label._color.y, label._color.z, label._color.w,
|
|
51
|
-
/*17*/label._rotation,
|
|
52
|
-
/*18, 19, 20*/label._alignedAxis.x, label._alignedAxis.y, label._alignedAxis.z,
|
|
53
|
-
/*21*/label._fontIndex,
|
|
54
|
-
/*22*/label._outline,
|
|
55
|
-
/*23, 24, 25, 26*/label._outlineColor.x, label._outlineColor.y, label._outlineColor.z, label._outlineColor.w,
|
|
56
|
-
/*27, 28, 29*/label._entity._pickingColor.x, label._entity._pickingColor.y, label._entity._pickingColor.z
|
|
57
|
-
]);
|
|
41
|
+
let w = this._workerQueue.pop()!;
|
|
42
|
+
|
|
43
|
+
this._source.set(this._sourceId, data);
|
|
44
|
+
|
|
45
|
+
let labelData = label.serializeWorkerData(this._sourceId);
|
|
46
|
+
|
|
47
|
+
label._lockId = this._sourceId;
|
|
58
48
|
|
|
59
|
-
|
|
49
|
+
this._sourceId++;
|
|
60
50
|
|
|
61
51
|
w.postMessage({
|
|
62
52
|
labelData: labelData
|
|
@@ -70,7 +60,7 @@ class LabelWorker extends BaseWorker {
|
|
|
70
60
|
}
|
|
71
61
|
}
|
|
72
62
|
|
|
73
|
-
const
|
|
63
|
+
const LABEL_PROGRAM = `'use strict';
|
|
74
64
|
|
|
75
65
|
function concatTypedArrays(dest, index, source) {
|
|
76
66
|
let len = source.length,
|
|
@@ -191,4 +181,4 @@ const _programm = `'use strict';
|
|
|
191
181
|
]);
|
|
192
182
|
}`;
|
|
193
183
|
|
|
194
|
-
export {
|
|
184
|
+
export {LabelWorker};
|
|
@@ -1,7 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
import {Entity} from "./Entity";
|
|
2
|
+
import {PointCloudHandler} from "./PointCloudHandler";
|
|
3
|
+
import {RenderNode} from "../scene/RenderNode";
|
|
4
|
+
import {Vec3} from "../math/Vec3";
|
|
5
|
+
import {Vec4} from "../math/Vec4";
|
|
6
|
+
import {WebGLBufferExt} from "../webgl/Handler";
|
|
7
|
+
import {EntityCollection} from "./EntityCollection";
|
|
8
|
+
|
|
9
|
+
export interface IPointCloudParams {
|
|
10
|
+
visibility?: boolean;
|
|
11
|
+
pointSize?: number;
|
|
12
|
+
pickingScale?: number;
|
|
13
|
+
points?: Poi[];
|
|
14
|
+
}
|
|
2
15
|
|
|
3
|
-
|
|
4
|
-
|
|
16
|
+
type Poi = [number, number, number, number, number, number, number, any | undefined];
|
|
17
|
+
|
|
18
|
+
interface IPoint {
|
|
19
|
+
_entity: Entity | null;
|
|
20
|
+
_pickingColor: Vec3;
|
|
21
|
+
_entityCollection: EntityCollection | null;
|
|
22
|
+
index: number;
|
|
23
|
+
position: Vec3;
|
|
24
|
+
color: Vec4;
|
|
25
|
+
pointCloud: PointCloud;
|
|
26
|
+
properties: any
|
|
27
|
+
}
|
|
5
28
|
|
|
6
29
|
const COORDINATES_BUFFER = 0;
|
|
7
30
|
const COLOR_BUFFER = 1;
|
|
@@ -12,9 +35,9 @@ const PICKING_COLOR_BUFFER = 2;
|
|
|
12
35
|
* @class
|
|
13
36
|
* @param {*} [options] - Point cloud options:
|
|
14
37
|
* @param {Array.<Array.<number>>} [options.points] - Points cartesian coordinates array,
|
|
15
|
-
* where first three is cartesian coordinates, next fourth is
|
|
38
|
+
* where first three is cartesian coordinates, next fourth is an RGBA color, and last is a point properties.
|
|
16
39
|
* @param {number} [options.pointSize] - Point screen size in pixels.
|
|
17
|
-
* @param {number} [options.
|
|
40
|
+
* @param {number} [options.pickingScale] - Point border picking size in screen pixels.
|
|
18
41
|
* @param {boolean} [options.visibility] - Point cloud visibility.
|
|
19
42
|
* @example <caption>Creates point cloud with two ten pixel size points</caption>
|
|
20
43
|
* new og.Entity({
|
|
@@ -28,16 +51,90 @@ const PICKING_COLOR_BUFFER = 2;
|
|
|
28
51
|
* });
|
|
29
52
|
*/
|
|
30
53
|
class PointCloud {
|
|
31
|
-
|
|
32
|
-
|
|
54
|
+
static __counter__: number = 0;
|
|
55
|
+
protected __id: number;
|
|
33
56
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Cloud visibility.
|
|
59
|
+
* @public
|
|
60
|
+
* @type {boolean}
|
|
61
|
+
*/
|
|
62
|
+
public visibility: boolean;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Point screen size in pixels.
|
|
66
|
+
* @public
|
|
67
|
+
* @type {number}
|
|
68
|
+
*/
|
|
69
|
+
public pointSize: number;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Point picking border size in pixels.
|
|
73
|
+
* @public
|
|
74
|
+
* @type {number}
|
|
75
|
+
*/
|
|
76
|
+
public pickingScale: number;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Parent collection render node.
|
|
80
|
+
* @protected
|
|
81
|
+
* @type {RenderNode | null}
|
|
82
|
+
*/
|
|
83
|
+
protected _renderNode: RenderNode | null;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Entity instance that holds this point cloud.
|
|
87
|
+
* @public
|
|
88
|
+
* @type {Entity | null}
|
|
89
|
+
*/
|
|
90
|
+
public _entity: Entity | null;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Points properties.
|
|
94
|
+
* @protected
|
|
95
|
+
* @type {IPoint[]}
|
|
96
|
+
*/
|
|
97
|
+
protected _points: IPoint[];
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Coordinates array.
|
|
101
|
+
* @protected
|
|
102
|
+
* @type {number[]}
|
|
103
|
+
*/
|
|
104
|
+
protected _coordinatesData: number[];
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Color array.
|
|
108
|
+
* @protected
|
|
109
|
+
* @type {number[]}
|
|
110
|
+
*/
|
|
111
|
+
protected _colorData: number[];
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Picking color array.
|
|
115
|
+
* @protected
|
|
116
|
+
* @type {number[]}
|
|
117
|
+
*/
|
|
118
|
+
protected _pickingColorData: number[];
|
|
119
|
+
|
|
120
|
+
protected _coordinatesBuffer: WebGLBufferExt | null;
|
|
121
|
+
protected _colorBuffer: WebGLBufferExt | null;
|
|
122
|
+
protected _pickingColorBuffer: WebGLBufferExt | null;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Handler that stores and renders this object.
|
|
126
|
+
* @public
|
|
127
|
+
* @type {PointCloudHandler}
|
|
128
|
+
*/
|
|
129
|
+
public _handler: PointCloudHandler | null;
|
|
130
|
+
public _handlerIndex: number;
|
|
131
|
+
|
|
132
|
+
protected _buffersUpdateCallbacks: Function[];
|
|
133
|
+
protected _changedBuffers: boolean[];
|
|
134
|
+
|
|
135
|
+
constructor(options: IPointCloudParams = {}) {
|
|
136
|
+
|
|
137
|
+
this.__id = PointCloud.__counter__++;
|
|
41
138
|
|
|
42
139
|
/**
|
|
43
140
|
* Cloud visibility.
|
|
@@ -58,7 +155,7 @@ class PointCloud {
|
|
|
58
155
|
* @public
|
|
59
156
|
* @type {number}
|
|
60
157
|
*/
|
|
61
|
-
this.
|
|
158
|
+
this.pickingScale = options.pickingScale || 0;
|
|
62
159
|
|
|
63
160
|
/**
|
|
64
161
|
* Parent collection render node.
|
|
@@ -77,7 +174,7 @@ class PointCloud {
|
|
|
77
174
|
/**
|
|
78
175
|
* Points properties.
|
|
79
176
|
* @private
|
|
80
|
-
* @type {
|
|
177
|
+
* @type {IPoint[]}
|
|
81
178
|
*/
|
|
82
179
|
this._points = [];
|
|
83
180
|
|
|
@@ -121,25 +218,16 @@ class PointCloud {
|
|
|
121
218
|
|
|
122
219
|
this._changedBuffers = new Array(this._buffersUpdateCallbacks.length);
|
|
123
220
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
static get _staticCounter() {
|
|
128
|
-
if (!this._counter && this._counter !== 0) {
|
|
129
|
-
this._counter = 0;
|
|
221
|
+
if (options.points) {
|
|
222
|
+
this.setPoints(options.points);
|
|
130
223
|
}
|
|
131
|
-
return this._counter;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
static set _staticCounter(n) {
|
|
135
|
-
this._counter = n;
|
|
136
224
|
}
|
|
137
225
|
|
|
138
226
|
/**
|
|
139
227
|
* Clears point cloud data
|
|
140
228
|
* @public
|
|
141
229
|
*/
|
|
142
|
-
clear() {
|
|
230
|
+
public clear() {
|
|
143
231
|
this._points.length = 0;
|
|
144
232
|
this._points = [];
|
|
145
233
|
|
|
@@ -155,28 +243,19 @@ class PointCloud {
|
|
|
155
243
|
this._deleteBuffers();
|
|
156
244
|
}
|
|
157
245
|
|
|
158
|
-
/**
|
|
159
|
-
* Set point cloud opacity.
|
|
160
|
-
* @public
|
|
161
|
-
* @param {number} opacity - Cloud opacity.
|
|
162
|
-
*/
|
|
163
|
-
setOpacity(opacity) {
|
|
164
|
-
this.opacity = opacity;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
246
|
/**
|
|
168
247
|
* Sets cloud visibility.
|
|
169
248
|
* @public
|
|
170
|
-
* @param {
|
|
249
|
+
* @param {boolean} visibility - Visibility flag.
|
|
171
250
|
*/
|
|
172
|
-
setVisibility(visibility) {
|
|
251
|
+
public setVisibility(visibility: boolean) {
|
|
173
252
|
this.visibility = visibility;
|
|
174
253
|
}
|
|
175
254
|
|
|
176
255
|
/**
|
|
177
|
-
* @return {boolean} Point cloud
|
|
256
|
+
* @return {boolean} Point cloud visibility.
|
|
178
257
|
*/
|
|
179
|
-
getVisibility() {
|
|
258
|
+
public getVisibility(): boolean {
|
|
180
259
|
return this.visibility;
|
|
181
260
|
}
|
|
182
261
|
|
|
@@ -185,7 +264,7 @@ class PointCloud {
|
|
|
185
264
|
* @public
|
|
186
265
|
* @param {RenderNode} renderNode - Assigned render node.
|
|
187
266
|
*/
|
|
188
|
-
setRenderNode(renderNode) {
|
|
267
|
+
public setRenderNode(renderNode: RenderNode) {
|
|
189
268
|
this._renderNode = renderNode;
|
|
190
269
|
this._setPickingColors();
|
|
191
270
|
}
|
|
@@ -194,7 +273,7 @@ class PointCloud {
|
|
|
194
273
|
* Removes from entity.
|
|
195
274
|
* @public
|
|
196
275
|
*/
|
|
197
|
-
remove() {
|
|
276
|
+
public remove() {
|
|
198
277
|
this._entity = null;
|
|
199
278
|
this._handler && this._handler.remove(this);
|
|
200
279
|
}
|
|
@@ -202,31 +281,37 @@ class PointCloud {
|
|
|
202
281
|
/**
|
|
203
282
|
* Adds points to render.
|
|
204
283
|
* @public
|
|
205
|
-
* @param {
|
|
284
|
+
* @param { Poi[]} points - Point cloud array.
|
|
206
285
|
* @example
|
|
207
286
|
* var points = [[0, 0, 0, 255, 255, 255, 255, { 'name': 'White point' }], [100, 100, 0, 255, 0, 0, 255, { 'name': 'Red point' }]];
|
|
208
287
|
*/
|
|
209
|
-
setPoints(points) {
|
|
288
|
+
public setPoints(points: Poi[]) {
|
|
210
289
|
this.clear();
|
|
211
290
|
for (let i = 0; i < points.length; i++) {
|
|
212
|
-
|
|
213
|
-
|
|
291
|
+
let pi = points[i];
|
|
292
|
+
|
|
293
|
+
let pos = new Vec3(pi[0], pi[1], pi[2]),
|
|
214
294
|
col = new Vec4(pi[3], pi[4], pi[5], pi[6] == undefined ? 255.0 : pi[6]);
|
|
295
|
+
|
|
215
296
|
this._coordinatesData.push(pos.x, pos.y, pos.z);
|
|
297
|
+
|
|
216
298
|
this._colorData.push(col.x / 255.0, col.y / 255.0, col.z / 255.0, col.w / 255.0);
|
|
217
|
-
|
|
299
|
+
|
|
300
|
+
let p = {
|
|
301
|
+
_entity: this._entity,
|
|
218
302
|
_pickingColor: new Vec3(),
|
|
219
|
-
_entityCollection: this._entity
|
|
303
|
+
_entityCollection: this._entity ? this._entity._entityCollection : null,
|
|
220
304
|
index: i,
|
|
221
305
|
position: pos,
|
|
222
306
|
color: col,
|
|
223
307
|
pointCloud: this,
|
|
224
308
|
properties: pi[7] || {}
|
|
225
309
|
};
|
|
310
|
+
|
|
226
311
|
this._points.push(p);
|
|
227
312
|
|
|
228
|
-
if (this._renderNode) {
|
|
229
|
-
this._renderNode.renderer.assignPickingColor(p);
|
|
313
|
+
if (this._renderNode && this._renderNode.renderer) {
|
|
314
|
+
this._renderNode.renderer.assignPickingColor<IPoint>(p);
|
|
230
315
|
this._pickingColorData.push(
|
|
231
316
|
p._pickingColor.x / 255.0,
|
|
232
317
|
p._pickingColor.y / 255.0,
|
|
@@ -241,29 +326,25 @@ class PointCloud {
|
|
|
241
326
|
this._changedBuffers[PICKING_COLOR_BUFFER] = true;
|
|
242
327
|
}
|
|
243
328
|
|
|
244
|
-
setPointPosition(index, x, y, z) {
|
|
329
|
+
public setPointPosition(index: number, x: number, y: number, z: number) {
|
|
245
330
|
// TODO: ...
|
|
246
|
-
|
|
247
331
|
this._changedBuffers[COORDINATES_BUFFER] = true;
|
|
248
332
|
}
|
|
249
333
|
|
|
250
|
-
setPointColor(index, r, g, b, a) {
|
|
334
|
+
public setPointColor(index: number, r: number, g: number, b: number, a: number) {
|
|
251
335
|
// TODO: ...
|
|
252
|
-
|
|
253
336
|
this._changedBuffers[COLOR_BUFFER] = true;
|
|
254
337
|
}
|
|
255
338
|
|
|
256
|
-
addPoints(points) {
|
|
339
|
+
public addPoints(points: Poi[]) {
|
|
257
340
|
// TODO: ...
|
|
258
|
-
|
|
259
341
|
this._changedBuffers[COORDINATES_BUFFER] = true;
|
|
260
342
|
this._changedBuffers[COLOR_BUFFER] = true;
|
|
261
343
|
this._changedBuffers[PICKING_COLOR_BUFFER] = true;
|
|
262
344
|
}
|
|
263
345
|
|
|
264
|
-
addPoint(index, point) {
|
|
346
|
+
public addPoint(index: number, point: Poi) {
|
|
265
347
|
// TODO: ...
|
|
266
|
-
|
|
267
348
|
this._changedBuffers[COORDINATES_BUFFER] = true;
|
|
268
349
|
this._changedBuffers[COLOR_BUFFER] = true;
|
|
269
350
|
this._changedBuffers[PICKING_COLOR_BUFFER] = true;
|
|
@@ -273,49 +354,35 @@ class PointCloud {
|
|
|
273
354
|
* Returns specific point by index.
|
|
274
355
|
* @public
|
|
275
356
|
* @param {number} index - Point index.
|
|
276
|
-
* @return {
|
|
357
|
+
* @return {Poi} Specific point
|
|
277
358
|
*/
|
|
278
|
-
getPoint(index) {
|
|
359
|
+
public getPoint(index: number): IPoint {
|
|
279
360
|
return this._points[index];
|
|
280
361
|
}
|
|
281
362
|
|
|
282
|
-
removePoint(index) {
|
|
363
|
+
public removePoint(index: number) {
|
|
283
364
|
// TODO: ...
|
|
284
|
-
|
|
285
365
|
this._changedBuffers[COORDINATES_BUFFER] = true;
|
|
286
366
|
this._changedBuffers[COLOR_BUFFER] = true;
|
|
287
367
|
this._changedBuffers[PICKING_COLOR_BUFFER] = true;
|
|
288
368
|
}
|
|
289
369
|
|
|
290
|
-
insertPoint(index, point) {
|
|
370
|
+
public insertPoint(index: number, point: Poi) {
|
|
291
371
|
// TODO: ...
|
|
292
|
-
|
|
293
372
|
this._changedBuffers[COORDINATES_BUFFER] = true;
|
|
294
373
|
this._changedBuffers[COLOR_BUFFER] = true;
|
|
295
374
|
this._changedBuffers[PICKING_COLOR_BUFFER] = true;
|
|
296
375
|
}
|
|
297
376
|
|
|
298
|
-
|
|
299
|
-
* Each point iterator.
|
|
300
|
-
* @public
|
|
301
|
-
* @param {callback} callback -
|
|
302
|
-
*/
|
|
303
|
-
each(callback) {
|
|
304
|
-
var i = this._points.length;
|
|
305
|
-
while (i--) {
|
|
306
|
-
callback && callback(this._points[i]);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
draw() {
|
|
377
|
+
public draw() {
|
|
311
378
|
if (this.visibility && this._coordinatesData.length) {
|
|
312
379
|
this._update();
|
|
313
380
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
381
|
+
let rn = this._renderNode!;
|
|
382
|
+
let r = rn.renderer!;
|
|
383
|
+
let sh = r.handler.programs.pointCloud;
|
|
384
|
+
let p = sh._program;
|
|
385
|
+
let gl = r.handler.gl!,
|
|
319
386
|
sha = p.attributes,
|
|
320
387
|
shu = p.uniforms;
|
|
321
388
|
|
|
@@ -326,40 +393,28 @@ class PointCloud {
|
|
|
326
393
|
|
|
327
394
|
sh.activate();
|
|
328
395
|
|
|
329
|
-
gl.uniformMatrix4fv(
|
|
330
|
-
shu.projectionViewMatrix,
|
|
331
|
-
false,
|
|
332
|
-
r.activeCamera._projectionViewMatrix._m
|
|
333
|
-
);
|
|
334
|
-
|
|
335
|
-
gl.uniform1f(shu.opacity, this._handler._entityCollection._fadingOpacity);
|
|
396
|
+
gl.uniformMatrix4fv(shu.projectionViewMatrix, false, r.activeCamera!.getProjectionViewMatrix());
|
|
336
397
|
|
|
398
|
+
gl.uniform1f(shu.opacity, this._handler!._entityCollection._fadingOpacity);
|
|
337
399
|
gl.uniform1f(shu.pointSize, this.pointSize);
|
|
338
400
|
|
|
339
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this._coordinatesBuffer);
|
|
340
|
-
gl.vertexAttribPointer(
|
|
341
|
-
sha.coordinates,
|
|
342
|
-
this._coordinatesBuffer.itemSize,
|
|
343
|
-
gl.FLOAT,
|
|
344
|
-
false,
|
|
345
|
-
0,
|
|
346
|
-
0
|
|
347
|
-
);
|
|
401
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._coordinatesBuffer as WebGLBuffer);
|
|
402
|
+
gl.vertexAttribPointer(sha.coordinates, this._coordinatesBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
348
403
|
|
|
349
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer);
|
|
350
|
-
gl.vertexAttribPointer(sha.colors, this._colorBuffer
|
|
404
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer as WebGLBuffer);
|
|
405
|
+
gl.vertexAttribPointer(sha.colors, this._colorBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
351
406
|
|
|
352
|
-
gl.drawArrays(gl.POINTS, 0, this._coordinatesBuffer
|
|
407
|
+
gl.drawArrays(gl.POINTS, 0, this._coordinatesBuffer!.numItems);
|
|
353
408
|
}
|
|
354
409
|
}
|
|
355
410
|
|
|
356
|
-
drawPicking() {
|
|
411
|
+
public drawPicking() {
|
|
357
412
|
if (this.visibility && this._coordinatesData.length) {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
413
|
+
let rn = this._renderNode!;
|
|
414
|
+
let r = rn.renderer!;
|
|
415
|
+
let sh = r.handler.programs.pointCloud;
|
|
416
|
+
let p = sh._program;
|
|
417
|
+
let gl = r.handler.gl!,
|
|
363
418
|
sha = p.attributes,
|
|
364
419
|
shu = p.uniforms;
|
|
365
420
|
|
|
@@ -370,47 +425,28 @@ class PointCloud {
|
|
|
370
425
|
// this._handler._entityCollection.polygonOffsetUnits
|
|
371
426
|
// );
|
|
372
427
|
|
|
373
|
-
gl.uniformMatrix4fv(
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
gl.
|
|
380
|
-
|
|
381
|
-
gl.
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
gl.
|
|
385
|
-
sha.coordinates,
|
|
386
|
-
this._coordinatesBuffer.itemSize,
|
|
387
|
-
gl.FLOAT,
|
|
388
|
-
false,
|
|
389
|
-
0,
|
|
390
|
-
0
|
|
391
|
-
);
|
|
392
|
-
|
|
393
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this._pickingColorBuffer);
|
|
394
|
-
gl.vertexAttribPointer(
|
|
395
|
-
sha.colors,
|
|
396
|
-
this._pickingColorBuffer.itemSize,
|
|
397
|
-
gl.FLOAT,
|
|
398
|
-
false,
|
|
399
|
-
0,
|
|
400
|
-
0
|
|
401
|
-
);
|
|
402
|
-
|
|
403
|
-
gl.drawArrays(gl.POINTS, 0, this._coordinatesBuffer.numItems);
|
|
428
|
+
gl.uniformMatrix4fv(shu.projectionViewMatrix, false, r.activeCamera!.getProjectionViewMatrix());
|
|
429
|
+
|
|
430
|
+
gl.uniform1f(shu.opacity, this._handler!._entityCollection._fadingOpacity);
|
|
431
|
+
gl.uniform1f(shu.pointSize, this.pointSize + this.pickingScale);
|
|
432
|
+
|
|
433
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._coordinatesBuffer as WebGLBuffer);
|
|
434
|
+
gl.vertexAttribPointer(sha.coordinates, this._coordinatesBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
435
|
+
|
|
436
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._pickingColorBuffer as WebGLBuffer);
|
|
437
|
+
gl.vertexAttribPointer(sha.colors, this._pickingColorBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
438
|
+
|
|
439
|
+
gl.drawArrays(gl.POINTS, 0, this._coordinatesBuffer!.numItems);
|
|
404
440
|
}
|
|
405
441
|
}
|
|
406
442
|
|
|
407
443
|
/**
|
|
408
444
|
* Update gl buffers.
|
|
409
|
-
* @
|
|
445
|
+
* @protected
|
|
410
446
|
*/
|
|
411
|
-
_update() {
|
|
447
|
+
protected _update() {
|
|
412
448
|
if (this._renderNode) {
|
|
413
|
-
|
|
449
|
+
let i = this._changedBuffers.length;
|
|
414
450
|
while (i--) {
|
|
415
451
|
if (this._changedBuffers[i]) {
|
|
416
452
|
this._buffersUpdateCallbacks[i].call(this);
|
|
@@ -422,16 +458,16 @@ class PointCloud {
|
|
|
422
458
|
|
|
423
459
|
/**
|
|
424
460
|
* Delete buffers
|
|
425
|
-
* @
|
|
461
|
+
* @public
|
|
426
462
|
*/
|
|
427
|
-
_deleteBuffers() {
|
|
463
|
+
public _deleteBuffers() {
|
|
428
464
|
if (this._renderNode) {
|
|
429
|
-
|
|
430
|
-
gl = r.handler.gl
|
|
465
|
+
let r = this._renderNode.renderer!,
|
|
466
|
+
gl = r.handler.gl!;
|
|
431
467
|
|
|
432
|
-
gl.deleteBuffer(this._coordinatesBuffer);
|
|
433
|
-
gl.deleteBuffer(this._colorBuffer);
|
|
434
|
-
gl.deleteBuffer(this._pickingColorBuffer);
|
|
468
|
+
gl.deleteBuffer(this._coordinatesBuffer as WebGLBuffer);
|
|
469
|
+
gl.deleteBuffer(this._colorBuffer as WebGLBuffer);
|
|
470
|
+
gl.deleteBuffer(this._pickingColorBuffer as WebGLBuffer);
|
|
435
471
|
}
|
|
436
472
|
|
|
437
473
|
this._coordinatesBuffer = null;
|
|
@@ -439,9 +475,9 @@ class PointCloud {
|
|
|
439
475
|
this._pickingColorBuffer = null;
|
|
440
476
|
}
|
|
441
477
|
|
|
442
|
-
_createCoordinatesBuffer() {
|
|
443
|
-
|
|
444
|
-
h.gl
|
|
478
|
+
protected _createCoordinatesBuffer() {
|
|
479
|
+
let h = this._renderNode!.renderer!.handler;
|
|
480
|
+
h.gl!.deleteBuffer(this._coordinatesBuffer as WebGLBuffer);
|
|
445
481
|
this._coordinatesBuffer = h.createArrayBuffer(
|
|
446
482
|
new Float32Array(this._coordinatesData),
|
|
447
483
|
3,
|
|
@@ -449,9 +485,9 @@ class PointCloud {
|
|
|
449
485
|
);
|
|
450
486
|
}
|
|
451
487
|
|
|
452
|
-
_createColorBuffer() {
|
|
453
|
-
|
|
454
|
-
h.gl
|
|
488
|
+
protected _createColorBuffer() {
|
|
489
|
+
let h = this._renderNode!.renderer!.handler;
|
|
490
|
+
h.gl!.deleteBuffer(this._colorBuffer as WebGLBuffer);
|
|
455
491
|
this._colorBuffer = h.createArrayBuffer(
|
|
456
492
|
new Float32Array(this._colorData),
|
|
457
493
|
4,
|
|
@@ -459,9 +495,9 @@ class PointCloud {
|
|
|
459
495
|
);
|
|
460
496
|
}
|
|
461
497
|
|
|
462
|
-
_createPickingColorBuffer() {
|
|
463
|
-
|
|
464
|
-
h.gl
|
|
498
|
+
protected _createPickingColorBuffer() {
|
|
499
|
+
let h = this._renderNode!.renderer!.handler;
|
|
500
|
+
h.gl!.deleteBuffer(this._pickingColorBuffer as WebGLBuffer);
|
|
465
501
|
this._pickingColorBuffer = h.createArrayBuffer(
|
|
466
502
|
new Float32Array(this._pickingColorData),
|
|
467
503
|
4,
|
|
@@ -469,13 +505,13 @@ class PointCloud {
|
|
|
469
505
|
);
|
|
470
506
|
}
|
|
471
507
|
|
|
472
|
-
_setPickingColors() {
|
|
473
|
-
if (this._renderNode) {
|
|
508
|
+
protected _setPickingColors() {
|
|
509
|
+
if (this._renderNode && this._renderNode.renderer) {
|
|
474
510
|
for (let i = 0; i < this._points.length; i++) {
|
|
475
|
-
|
|
511
|
+
let p = this._points[i];
|
|
476
512
|
p._entity = this._entity;
|
|
477
|
-
p._entityCollection = this._entity
|
|
478
|
-
this._renderNode.renderer.assignPickingColor(p);
|
|
513
|
+
p._entityCollection = this._entity!._entityCollection;
|
|
514
|
+
this._renderNode.renderer.assignPickingColor<IPoint>(p);
|
|
479
515
|
this._pickingColorData.push(
|
|
480
516
|
p._pickingColor.x / 255.0,
|
|
481
517
|
p._pickingColor.y / 255.0,
|
|
@@ -488,4 +524,4 @@ class PointCloud {
|
|
|
488
524
|
}
|
|
489
525
|
}
|
|
490
526
|
|
|
491
|
-
export {
|
|
527
|
+
export {PointCloud};
|