@openglobus/og 0.18.0 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/lib/@openglobus/og.esm.js +2 -0
- package/lib/@openglobus/og.esm.js.map +1 -0
- package/lib/@openglobus/og.umd.js +2 -0
- package/lib/@openglobus/og.umd.js.map +1 -0
- package/lib/js/Clock.d.ts +106 -0
- package/{src/Clock.ts → lib/js/Clock.js} +31 -126
- package/lib/js/Deferred.d.ts +6 -0
- package/lib/js/Deferred.js +13 -0
- package/lib/js/Events.d.ts +90 -0
- package/{src/Events.ts → lib/js/Events.js} +29 -84
- package/lib/js/Extent.d.ts +145 -0
- package/{src/Extent.ts → lib/js/Extent.js} +74 -120
- package/lib/js/Globe.d.ts +132 -0
- package/{src/Globe.ts → lib/js/Globe.js} +61 -159
- package/lib/js/ImageCanvas.d.ts +128 -0
- package/{src/ImageCanvas.ts → lib/js/ImageCanvas.js} +24 -65
- package/lib/js/Lock.d.ts +15 -0
- package/{src/Lock.ts → lib/js/Lock.js} +7 -21
- package/lib/js/LonLat.d.ts +128 -0
- package/{src/LonLat.ts → lib/js/LonLat.js} +44 -75
- package/lib/js/Object3d.d.ts +49 -0
- package/{src/Object3d.ts → lib/js/Object3d.js} +64 -184
- package/lib/js/Popup.d.ts +46 -0
- package/{src/Popup.ts → lib/js/Popup.js} +42 -110
- package/lib/js/QueueArray.d.ts +16 -0
- package/{src/QueueArray.ts → lib/js/QueueArray.js} +12 -25
- package/lib/js/Rectangle.d.ts +76 -0
- package/{src/Rectangle.ts → lib/js/Rectangle.js} +12 -50
- package/lib/js/Stack.d.ts +20 -0
- package/{src/Stack.ts → lib/js/Stack.js} +13 -29
- package/lib/js/astro/astro.d.ts +39 -0
- package/{src/astro/astro.ts → lib/js/astro/astro.js} +2 -8
- package/lib/js/astro/earth.d.ts +8 -0
- package/{src/astro/earth.ts → lib/js/astro/earth.js} +3 -39
- package/lib/js/astro/jd.d.ts +234 -0
- package/{src/astro/jd.ts → lib/js/astro/jd.js} +55 -134
- package/lib/js/astro/orbit.d.ts +5 -0
- package/{src/astro/orbit.ts → lib/js/astro/orbit.js} +26 -39
- package/lib/js/astro/rotation.d.ts +2 -0
- package/{src/astro/rotation.ts → lib/js/astro/rotation.js} +2 -11
- package/lib/js/bv/Box.d.ts +32 -0
- package/{src/bv/Box.ts → lib/js/bv/Box.js} +7 -35
- package/lib/js/bv/Sphere.d.ts +37 -0
- package/{src/bv/Sphere.ts → lib/js/bv/Sphere.js} +6 -34
- package/{src/bv/index.ts → lib/js/bv/index.d.ts} +0 -1
- package/lib/js/bv/index.js +3 -0
- package/lib/js/camera/Camera.d.ts +314 -0
- package/{src/camera/Camera.ts → lib/js/camera/Camera.js} +77 -326
- package/lib/js/camera/Frustum.d.ts +139 -0
- package/{src/camera/Frustum.ts → lib/js/camera/Frustum.js} +66 -185
- package/lib/js/camera/PlanetCamera.d.ts +234 -0
- package/{src/camera/PlanetCamera.ts → lib/js/camera/PlanetCamera.js} +65 -338
- package/{src/camera/index.ts → lib/js/camera/index.d.ts} +0 -1
- package/lib/js/camera/index.js +3 -0
- package/lib/js/cons.d.ts +40 -0
- package/{src/cons.ts → lib/js/cons.js} +10 -22
- package/lib/js/control/Atmosphere.d.ts +16 -0
- package/{src/control/Atmosphere.ts → lib/js/control/Atmosphere.js} +33 -86
- package/lib/js/control/CompassButton.d.ts +16 -0
- package/{src/control/CompassButton.ts → lib/js/control/CompassButton.js} +18 -43
- package/lib/js/control/Control.d.ts +100 -0
- package/{src/control/Control.ts → lib/js/control/Control.js} +22 -89
- package/lib/js/control/DebugInfo.d.ts +25 -0
- package/{src/control/DebugInfo.ts → lib/js/control/DebugInfo.js} +38 -84
- package/lib/js/control/DrawingSwitcher.d.ts +13 -0
- package/{src/control/DrawingSwitcher.ts → lib/js/control/DrawingSwitcher.js} +13 -30
- package/lib/js/control/EarthCoordinates.d.ts +41 -0
- package/{src/control/EarthCoordinates.ts → lib/js/control/EarthCoordinates.js} +58 -119
- package/lib/js/control/EarthNavigation.d.ts +50 -0
- package/{src/control/EarthNavigation.ts → lib/js/control/EarthNavigation.js} +70 -161
- package/lib/js/control/GeoImageDragControl.d.ts +22 -0
- package/{src/control/GeoImageDragControl.ts → lib/js/control/GeoImageDragControl.js} +26 -49
- package/lib/js/control/KeyboardNavigation.d.ts +28 -0
- package/{src/control/KeyboardNavigation.ts → lib/js/control/KeyboardNavigation.js} +67 -92
- package/lib/js/control/LayerAnimation.d.ts +71 -0
- package/{src/control/LayerAnimation.ts → lib/js/control/LayerAnimation.js} +82 -162
- package/lib/js/control/LayerSwitcher.d.ts +21 -0
- package/{src/control/LayerSwitcher.ts → lib/js/control/LayerSwitcher.js} +16 -41
- package/lib/js/control/Lighting.d.ts +49 -0
- package/{src/control/Lighting.ts → lib/js/control/Lighting.js} +106 -219
- package/lib/js/control/MouseNavigation.d.ts +62 -0
- package/{src/control/MouseNavigation.ts → lib/js/control/MouseNavigation.js} +105 -211
- package/lib/js/control/MouseWheelZoomControl.d.ts +44 -0
- package/lib/js/control/MouseWheelZoomControl.js +181 -0
- package/lib/js/control/RulerSwitcher.d.ts +17 -0
- package/{src/control/RulerSwitcher.ts → lib/js/control/RulerSwitcher.js} +13 -28
- package/lib/js/control/ScaleControl.d.ts +24 -0
- package/lib/js/control/ScaleControl.js +91 -0
- package/lib/js/control/SegmentBoundVisualization.d.ts +12 -0
- package/lib/js/control/SegmentBoundVisualization.js +37 -0
- package/lib/js/control/ShowFps.d.ts +9 -0
- package/lib/js/control/ShowFps.js +20 -0
- package/lib/js/control/SimpleNavigation.d.ts +25 -0
- package/{src/control/SimpleNavigation.ts → lib/js/control/SimpleNavigation.js} +29 -51
- package/lib/js/control/SimpleSkyBackground.d.ts +15 -0
- package/{src/control/SimpleSkyBackground.ts → lib/js/control/SimpleSkyBackground.js} +21 -48
- package/lib/js/control/Sun.d.ts +33 -0
- package/{src/control/Sun.ts → lib/js/control/Sun.js} +34 -85
- package/lib/js/control/ToggleWireframe.d.ts +14 -0
- package/lib/js/control/ToggleWireframe.js +28 -0
- package/lib/js/control/TouchNavigation.d.ts +52 -0
- package/{src/control/TouchNavigation.ts → lib/js/control/TouchNavigation.js} +88 -193
- package/lib/js/control/ZoomControl.d.ts +27 -0
- package/{src/control/ZoomControl.ts → lib/js/control/ZoomControl.js} +25 -50
- package/lib/js/control/drawing/DrawingControl.d.ts +12 -0
- package/{src/control/drawing/DrawingControl.ts → lib/js/control/drawing/DrawingControl.js} +10 -20
- package/lib/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
- package/{src/control/drawing/LineStringDrawingScene.ts → lib/js/control/drawing/LineStringDrawingScene.js} +28 -85
- package/lib/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
- package/{src/control/drawing/PolygonDrawingScene.ts → lib/js/control/drawing/PolygonDrawingScene.js} +190 -388
- package/lib/js/control/elevationProfile/ElevationProfile.d.ts +61 -0
- package/{src/control/elevationProfile/ElevationProfile.ts → lib/js/control/elevationProfile/ElevationProfile.js} +56 -148
- package/lib/js/control/heightRuler/HeightRuler.d.ts +7 -0
- package/{src/control/heightRuler/HeightRuler.ts → lib/js/control/heightRuler/HeightRuler.js} +4 -9
- package/lib/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
- package/{src/control/heightRuler/HeightRulerScene.ts → lib/js/control/heightRuler/HeightRulerScene.js} +47 -99
- package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
- package/{src/control/heightRuler/HeightRulerSwitcher.ts → lib/js/control/heightRuler/HeightRulerSwitcher.js} +2 -4
- package/{src/control/index.ts → lib/js/control/index.d.ts} +1 -18
- package/lib/js/control/index.js +28 -0
- package/lib/js/control/ruler/Ruler.d.ts +13 -0
- package/lib/js/control/ruler/Ruler.js +23 -0
- package/lib/js/control/ruler/RulerScene.d.ts +88 -0
- package/lib/js/control/ruler/RulerScene.js +324 -0
- package/lib/js/control/selection/Selection.d.ts +55 -0
- package/{src/control/selection/Selection.ts → lib/js/control/selection/Selection.js} +15 -34
- package/lib/js/control/selection/SelectionScene.d.ts +44 -0
- package/{src/control/selection/SelectionScene.ts → lib/js/control/selection/SelectionScene.js} +26 -113
- package/lib/js/control/timeline/TimelineControl.d.ts +18 -0
- package/{src/control/timeline/TimelineControl.ts → lib/js/control/timeline/TimelineControl.js} +13 -43
- package/lib/js/control/timeline/TimelineModel.d.ts +41 -0
- package/{src/control/timeline/TimelineModel.ts → lib/js/control/timeline/TimelineModel.js} +26 -74
- package/lib/js/control/timeline/TimelineView.d.ts +85 -0
- package/{src/control/timeline/TimelineView.ts → lib/js/control/timeline/TimelineView.js} +133 -281
- package/lib/js/control/timeline/timelineUtils.d.ts +12 -0
- package/lib/js/control/timeline/timelineUtils.js +112 -0
- package/lib/js/control/visibleExtent/Segment.d.ts +277 -0
- package/{src → lib/js}/control/visibleExtent/Segment.js +145 -698
- package/lib/js/control/visibleExtent/VisibleExtent.d.ts +5 -0
- package/{src → lib/js}/control/visibleExtent/VisibleExtent.js +1 -18
- package/lib/js/control/visibleExtent/drawnode.d.ts +7 -0
- package/{src/control/visibleExtent/drawnode.ts → lib/js/control/visibleExtent/drawnode.js} +1 -28
- package/lib/js/ellipsoid/Ellipsoid.d.ts +187 -0
- package/{src/ellipsoid/Ellipsoid.ts → lib/js/ellipsoid/Ellipsoid.js} +85 -267
- package/lib/js/ellipsoid/index.d.ts +3 -0
- package/lib/js/ellipsoid/index.js +3 -0
- package/lib/js/ellipsoid/wgs84.d.ts +6 -0
- package/{src/ellipsoid/wgs84.ts → lib/js/ellipsoid/wgs84.js} +1 -2
- package/lib/js/entity/BaseBillboard.d.ts +222 -0
- package/{src/entity/BaseBillboard.ts → lib/js/entity/BaseBillboard.js} +48 -165
- package/lib/js/entity/BaseBillboardHandler.d.ts +81 -0
- package/{src/entity/BaseBillboardHandler.ts → lib/js/entity/BaseBillboardHandler.js} +139 -365
- package/lib/js/entity/Billboard.d.ts +113 -0
- package/{src/entity/Billboard.ts → lib/js/entity/Billboard.js} +19 -83
- package/lib/js/entity/BillboardHandler.d.ts +15 -0
- package/{src/entity/BillboardHandler.ts → lib/js/entity/BillboardHandler.js} +27 -59
- package/lib/js/entity/Entity.d.ts +354 -0
- package/{src/entity/Entity.ts → lib/js/entity/Entity.js} +102 -374
- package/lib/js/entity/EntityCollection.d.ts +363 -0
- package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +57 -359
- package/lib/js/entity/GeoObject.d.ts +138 -0
- package/{src/entity/GeoObject.ts → lib/js/entity/GeoObject.js} +41 -146
- package/lib/js/entity/GeoObjectHandler.d.ts +99 -0
- package/{src/entity/GeoObjectHandler.ts → lib/js/entity/GeoObjectHandler.js} +162 -423
- package/lib/js/entity/Geometry.d.ts +111 -0
- package/lib/js/entity/Geometry.js +283 -0
- package/lib/js/entity/GeometryHandler.d.ts +84 -0
- package/{src/entity/GeometryHandler.ts → lib/js/entity/GeometryHandler.js} +162 -657
- package/lib/js/entity/Label.d.ts +207 -0
- package/{src/entity/Label.ts → lib/js/entity/Label.js} +63 -165
- package/lib/js/entity/LabelHandler.d.ts +65 -0
- package/{src/entity/LabelHandler.ts → lib/js/entity/LabelHandler.js} +175 -408
- package/lib/js/entity/LabelWorker.d.ts +15 -0
- package/{src/entity/LabelWorker.ts → lib/js/entity/LabelWorker.js} +24 -45
- package/lib/js/entity/PointCloud.d.ts +179 -0
- package/{src/entity/PointCloud.ts → lib/js/entity/PointCloud.js} +65 -265
- package/lib/js/entity/PointCloudHandler.d.ts +42 -0
- package/{src/entity/PointCloudHandler.ts → lib/js/entity/PointCloudHandler.js} +19 -62
- package/lib/js/entity/Polyline.d.ts +337 -0
- package/{src/entity/Polyline.ts → lib/js/entity/Polyline.js} +289 -924
- package/lib/js/entity/PolylineHandler.d.ts +22 -0
- package/{src/entity/PolylineHandler.ts → lib/js/entity/PolylineHandler.js} +12 -37
- package/lib/js/entity/Ray.d.ts +133 -0
- package/{src/entity/Ray.ts → lib/js/entity/Ray.js} +26 -146
- package/lib/js/entity/RayHandler.d.ts +70 -0
- package/{src/entity/RayHandler.ts → lib/js/entity/RayHandler.js} +102 -342
- package/lib/js/entity/Strip.d.ts +127 -0
- package/{src/entity/Strip.ts → lib/js/entity/Strip.js} +102 -372
- package/lib/js/entity/StripHandler.d.ts +42 -0
- package/{src/entity/StripHandler.ts → lib/js/entity/StripHandler.js} +22 -74
- package/{src/entity/index.ts → lib/js/entity/index.d.ts} +1 -2
- package/lib/js/entity/index.js +11 -0
- package/lib/js/index.d.ts +33 -0
- package/lib/js/index.js +33 -0
- package/lib/js/input/KeyboardHandler.d.ts +33 -0
- package/{src/input/KeyboardHandler.ts → lib/js/input/KeyboardHandler.js} +45 -84
- package/lib/js/input/MouseHandler.d.ts +16 -0
- package/{src/input/MouseHandler.ts → lib/js/input/MouseHandler.js} +12 -36
- package/lib/js/input/TouchHandler.d.ts +11 -0
- package/{src/input/TouchHandler.ts → lib/js/input/TouchHandler.js} +11 -23
- package/lib/js/input/input.d.ts +3 -0
- package/{src/input/input.ts → lib/js/input/input.js} +1 -1
- package/lib/js/layer/BaseGeoImage.d.ts +145 -0
- package/{src/layer/BaseGeoImage.ts → lib/js/layer/BaseGeoImage.js} +70 -235
- package/lib/js/layer/CanvasTiles.d.ts +103 -0
- package/{src/layer/CanvasTiles.ts → lib/js/layer/CanvasTiles.js} +54 -146
- package/lib/js/layer/GeoImage.d.ts +61 -0
- package/{src/layer/GeoImage.ts → lib/js/layer/GeoImage.js} +24 -54
- package/lib/js/layer/GeoTexture2d.d.ts +17 -0
- package/lib/js/layer/GeoTexture2d.js +37 -0
- package/lib/js/layer/GeoVideo.d.ts +68 -0
- package/{src/layer/GeoVideo.ts → lib/js/layer/GeoVideo.js} +31 -61
- package/lib/js/layer/KML.d.ts +72 -0
- package/{src/layer/KML.ts → lib/js/layer/KML.js} +94 -138
- package/lib/js/layer/Layer.d.ts +401 -0
- package/{src/layer/Layer.ts → lib/js/layer/Layer.js} +92 -443
- package/lib/js/layer/Material.d.ts +34 -0
- package/{src/layer/Material.ts → lib/js/layer/Material.js} +9 -43
- package/lib/js/layer/Vector.d.ts +243 -0
- package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +155 -426
- package/lib/js/layer/WMS.d.ts +75 -0
- package/{src/layer/WMS.ts → lib/js/layer/WMS.js} +18 -100
- package/lib/js/layer/XYZ.d.ts +149 -0
- package/{src/layer/XYZ.ts → lib/js/layer/XYZ.js} +71 -171
- package/lib/js/layer/index.d.ts +11 -0
- package/lib/js/layer/index.js +11 -0
- package/lib/js/light/LightSource.d.ts +174 -0
- package/{src/light/LightSource.ts → lib/js/light/LightSource.js} +22 -131
- package/lib/js/math/Line2.d.ts +11 -0
- package/{src/math/Line2.ts → lib/js/math/Line2.js} +5 -15
- package/lib/js/math/Line3.d.ts +28 -0
- package/lib/js/math/Line3.js +85 -0
- package/lib/js/math/Mat3.d.ts +77 -0
- package/{src/math/Mat3.ts → lib/js/math/Mat3.js} +22 -51
- package/lib/js/math/Mat4.d.ts +195 -0
- package/{src/math/Mat4.ts → lib/js/math/Mat4.js} +53 -219
- package/lib/js/math/Plane.d.ts +20 -0
- package/{src/math/Plane.ts → lib/js/math/Plane.js} +26 -40
- package/lib/js/math/Quat.d.ts +373 -0
- package/{src/math/Quat.ts → lib/js/math/Quat.js} +106 -319
- package/lib/js/math/Ray.d.ts +76 -0
- package/{src/math/Ray.ts → lib/js/math/Ray.js} +21 -66
- package/lib/js/math/Vec2.d.ts +310 -0
- package/{src/math/Vec2.ts → lib/js/math/Vec2.js} +55 -121
- package/lib/js/math/Vec3.d.ts +472 -0
- package/{src/math/Vec3.ts → lib/js/math/Vec3.js} +103 -236
- package/lib/js/math/Vec4.d.ts +163 -0
- package/{src/math/Vec4.ts → lib/js/math/Vec4.js} +23 -79
- package/lib/js/math/coder.d.ts +51 -0
- package/{src/math/coder.ts → lib/js/math/coder.js} +14 -20
- package/lib/js/math/index.d.ts +11 -0
- package/lib/js/math/index.js +11 -0
- package/lib/js/math.d.ts +266 -0
- package/{src/math.ts → lib/js/math.js} +37 -85
- package/lib/js/mercator.d.ts +92 -0
- package/{src/mercator.ts → lib/js/mercator.js} +13 -37
- package/lib/js/proj/EPSG3857.d.ts +9 -0
- package/{src/proj/EPSG3857.ts → lib/js/proj/EPSG3857.js} +0 -2
- package/lib/js/proj/EPSG4326.d.ts +9 -0
- package/{src/proj/EPSG4326.ts → lib/js/proj/EPSG4326.js} +0 -2
- package/lib/js/proj/Proj.d.ts +43 -0
- package/{src/proj/Proj.ts → lib/js/proj/Proj.js} +4 -29
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.js +19 -0
- package/lib/js/quadTree/EntityCollectionNode.d.ts +54 -0
- package/{src/quadTree/EntityCollectionNode.ts → lib/js/quadTree/EntityCollectionNode.js} +83 -150
- package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/MarsQuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/Node.d.ts +61 -0
- package/{src/quadTree/Node.ts → lib/js/quadTree/Node.js} +140 -357
- package/lib/js/quadTree/QuadTreeStrategy.d.ts +25 -0
- package/{src/quadTree/QuadTreeStrategy.ts → lib/js/quadTree/QuadTreeStrategy.js} +13 -44
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +15 -0
- package/lib/js/quadTree/index.d.ts +12 -0
- package/lib/js/quadTree/index.js +12 -0
- package/lib/js/quadTree/quadTree.d.ts +40 -0
- package/{src/quadTree/quadTree.ts → lib/js/quadTree/quadTree.js} +0 -9
- package/lib/js/renderer/Renderer.d.ts +320 -0
- package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +265 -622
- package/lib/js/renderer/RendererEvents.d.ts +239 -0
- package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +158 -472
- package/lib/js/scene/Axes.d.ts +12 -0
- package/lib/js/scene/Axes.js +59 -0
- package/lib/js/scene/BaseNode.d.ts +61 -0
- package/{src/scene/BaseNode.ts → lib/js/scene/BaseNode.js} +11 -57
- package/lib/js/scene/Planet.d.ts +623 -0
- package/{src/scene/Planet.ts → lib/js/scene/Planet.js} +257 -937
- package/lib/js/scene/RenderNode.d.ts +150 -0
- package/{src/scene/RenderNode.ts → lib/js/scene/RenderNode.js} +33 -138
- package/lib/js/scene/SkyBox.d.ts +13 -0
- package/{src/scene/SkyBox.ts → lib/js/scene/SkyBox.js} +16 -37
- package/{src/scene/index.ts → lib/js/scene/index.d.ts} +0 -1
- package/lib/js/scene/index.js +5 -0
- package/lib/js/segment/Segment.d.ts +278 -0
- package/{src/segment/Segment.ts → lib/js/segment/Segment.js} +242 -913
- package/lib/js/segment/SegmentLonLat.d.ts +48 -0
- package/{src/segment/SegmentLonLat.ts → lib/js/segment/SegmentLonLat.js} +58 -132
- package/lib/js/segment/SegmentLonLatWgs84.d.ts +10 -0
- package/lib/js/segment/SegmentLonLatWgs84.js +23 -0
- package/lib/js/segment/Slice.d.ts +13 -0
- package/{src/segment/Slice.ts → lib/js/segment/Slice.js} +4 -22
- package/lib/js/segment/segmentHelper.d.ts +18 -0
- package/{src/segment/segmentHelper.ts → lib/js/segment/segmentHelper.js} +30 -88
- package/lib/js/shaders/atmos.d.ts +4 -0
- package/{src/shaders/atmos.ts → lib/js/shaders/atmos.js} +8 -26
- package/lib/js/shaders/billboard.d.ts +3 -0
- package/{src/shaders/billboard.ts → lib/js/shaders/billboard.js} +9 -18
- package/lib/js/shaders/bloom.d.ts +2 -0
- package/{src/shaders/bloom.ts → lib/js/shaders/bloom.js} +5 -8
- package/lib/js/shaders/blur.d.ts +3 -0
- package/{src/shaders/blur.ts → lib/js/shaders/blur.js} +11 -19
- package/lib/js/shaders/depth.d.ts +2 -0
- package/{src/shaders/depth.ts → lib/js/shaders/depth.js} +3 -6
- package/lib/js/shaders/drawnode.d.ts +8 -0
- package/{src/shaders/drawnode.ts → lib/js/shaders/drawnode.js} +23 -75
- package/lib/js/shaders/geoObject.d.ts +3 -0
- package/{src/shaders/geoObject.ts → lib/js/shaders/geoObject.js} +51 -63
- package/lib/js/shaders/label.d.ts +4 -0
- package/{src/shaders/label.ts → lib/js/shaders/label.js} +12 -25
- package/lib/js/shaders/lumFilter.d.ts +2 -0
- package/{src/shaders/lumFilter.ts → lib/js/shaders/lumFilter.js} +4 -7
- package/lib/js/shaders/pickingMask.d.ts +2 -0
- package/{src/shaders/pickingMask.ts → lib/js/shaders/pickingMask.js} +5 -8
- package/lib/js/shaders/pointCloud.d.ts +2 -0
- package/{src/shaders/pointCloud.ts → lib/js/shaders/pointCloud.js} +4 -7
- package/lib/js/shaders/polyline.d.ts +3 -0
- package/{src/shaders/polyline.ts → lib/js/shaders/polyline.js} +7 -22
- package/lib/js/shaders/ray.d.ts +2 -0
- package/{src/shaders/ray.ts → lib/js/shaders/ray.js} +4 -7
- package/lib/js/shaders/screenFrame.d.ts +2 -0
- package/{src/shaders/screenFrame.ts → lib/js/shaders/screenFrame.js} +5 -8
- package/lib/js/shaders/skybox.d.ts +2 -0
- package/{src/shaders/skybox.ts → lib/js/shaders/skybox.js} +10 -13
- package/lib/js/shaders/toneMapping.d.ts +2 -0
- package/{src/shaders/toneMapping.ts → lib/js/shaders/toneMapping.js} +5 -8
- package/lib/js/shaders/utils.d.ts +1 -0
- package/{src/shaders/utils.ts → lib/js/shaders/utils.js} +1 -1
- package/lib/js/terrain/BilTerrain.d.ts +18 -0
- package/{src/terrain/BilTerrain.ts → lib/js/terrain/BilTerrain.js} +21 -118
- package/lib/js/terrain/EmptyTerrain.d.ts +106 -0
- package/{src/terrain/EmptyTerrain.ts → lib/js/terrain/EmptyTerrain.js} +20 -144
- package/lib/js/terrain/Geoid.d.ts +33 -0
- package/lib/js/terrain/Geoid.js +191 -0
- package/lib/js/terrain/GlobusTerrain.d.ts +134 -0
- package/{src/terrain/GlobusTerrain.ts → lib/js/terrain/GlobusTerrain.js} +84 -241
- package/lib/js/terrain/MapboxTerrain.d.ts +21 -0
- package/{src/terrain/MapboxTerrain.ts → lib/js/terrain/MapboxTerrain.js} +46 -215
- package/{src/terrain/index.ts → lib/js/terrain/index.d.ts} +0 -1
- package/lib/js/terrain/index.js +5 -0
- package/lib/js/ui/Button.d.ts +32 -0
- package/lib/js/ui/Button.js +78 -0
- package/lib/js/ui/ButtonGroup.d.ts +16 -0
- package/lib/js/ui/ButtonGroup.js +41 -0
- package/lib/js/ui/Dialog.d.ts +55 -0
- package/lib/js/ui/Dialog.js +173 -0
- package/lib/js/ui/Slider.d.ts +38 -0
- package/lib/js/ui/Slider.js +129 -0
- package/lib/js/ui/ToggleButton.d.ts +20 -0
- package/lib/js/ui/ToggleButton.js +42 -0
- package/lib/js/ui/View.d.ts +37 -0
- package/{src/ui/View.ts → lib/js/ui/View.js} +31 -77
- package/lib/js/ui/icons.d.ts +1 -0
- package/{src/ui/icons.ts → lib/js/ui/icons.js} +1 -1
- package/lib/js/utils/BaseWorker.d.ts +14 -0
- package/{src/utils/BaseWorker.ts → lib/js/utils/BaseWorker.js} +15 -28
- package/lib/js/utils/FontAtlas.d.ts +82 -0
- package/{src/utils/FontAtlas.ts → lib/js/utils/FontAtlas.js} +46 -182
- package/lib/js/utils/GeoImageCreator.d.ts +34 -0
- package/{src/utils/GeoImageCreator.ts → lib/js/utils/GeoImageCreator.js} +34 -91
- package/lib/js/utils/ImagesCacheManager.d.ts +22 -0
- package/{src/utils/ImagesCacheManager.ts → lib/js/utils/ImagesCacheManager.js} +16 -38
- package/lib/js/utils/Loader.d.ts +63 -0
- package/lib/js/utils/Loader.js +156 -0
- package/lib/js/utils/NormalMapCreator.d.ts +52 -0
- package/{src/utils/NormalMapCreator.ts → lib/js/utils/NormalMapCreator.js} +64 -195
- package/lib/js/utils/PlainSegmentWorker.d.ts +24 -0
- package/{src/utils/PlainSegmentWorker.ts → lib/js/utils/PlainSegmentWorker.js} +24 -56
- package/lib/js/utils/TerrainWorker.d.ts +28 -0
- package/{src/utils/TerrainWorker.ts → lib/js/utils/TerrainWorker.js} +19 -56
- package/lib/js/utils/TextureAtlas.d.ts +113 -0
- package/{src/utils/TextureAtlas.ts → lib/js/utils/TextureAtlas.js} +40 -131
- package/lib/js/utils/VectorTileCreator.d.ts +18 -0
- package/{src/utils/VectorTileCreator.ts → lib/js/utils/VectorTileCreator.js} +61 -147
- package/lib/js/utils/colorTable.d.ts +3 -0
- package/{src/utils/colorTable.ts → lib/js/utils/colorTable.js} +2 -2
- package/lib/js/utils/earcut.d.ts +7 -0
- package/{src/utils/earcut.ts → lib/js/utils/earcut.js} +95 -223
- package/lib/js/utils/objParser.d.ts +24 -0
- package/{src/utils/objParser.ts → lib/js/utils/objParser.js} +38 -93
- package/lib/js/utils/shared.d.ts +267 -0
- package/{src/utils/shared.ts → lib/js/utils/shared.js} +185 -342
- package/lib/js/utils/units.d.ts +16 -0
- package/lib/js/utils/units.js +61 -0
- package/lib/js/webgl/BaseFramebuffer.d.ts +53 -0
- package/{src/webgl/BaseFramebuffer.ts → lib/js/webgl/BaseFramebuffer.js} +22 -59
- package/lib/js/webgl/Framebuffer.d.ts +69 -0
- package/{src/webgl/Framebuffer.ts → lib/js/webgl/Framebuffer.js} +30 -87
- package/lib/js/webgl/Handler.d.ts +473 -0
- package/{src/webgl/Handler.ts → lib/js/webgl/Handler.js} +175 -586
- package/lib/js/webgl/Multisample.d.ts +27 -0
- package/lib/js/webgl/Multisample.js +77 -0
- package/lib/js/webgl/Program.d.ts +159 -0
- package/{src/webgl/Program.ts → lib/js/webgl/Program.js} +73 -210
- package/lib/js/webgl/ProgramController.d.ts +86 -0
- package/{src/webgl/ProgramController.ts → lib/js/webgl/ProgramController.js} +11 -45
- package/{src/webgl/index.ts → lib/js/webgl/index.d.ts} +1 -8
- package/lib/js/webgl/index.js +6 -0
- package/lib/js/webgl/types.d.ts +9 -0
- package/{src/webgl/types.ts → lib/js/webgl/types.js} +5 -8
- package/lib/js/webgl/variableHandlers.d.ts +22 -0
- package/lib/js/webgl/variableHandlers.js +78 -0
- package/package.json +23 -34
- package/dist/@openglobus/og.esm.js +0 -2
- package/dist/@openglobus/og.esm.js.map +0 -1
- package/dist/@openglobus/og.umd.js +0 -2
- package/dist/@openglobus/og.umd.js.map +0 -1
- package/src/Deferred.ts +0 -17
- package/src/control/MouseWheelZoomControl.ts +0 -269
- package/src/control/ScaleControl.ts +0 -131
- package/src/control/SegmentBoundVisualization.ts +0 -50
- package/src/control/ShowFps.ts +0 -28
- package/src/control/ToggleWireframe.ts +0 -35
- package/src/control/ruler/Ruler.ts +0 -35
- package/src/control/ruler/RulerScene.ts +0 -437
- package/src/control/timeline/timelineUtils.ts +0 -133
- package/src/ellipsoid/index.ts +0 -4
- package/src/entity/Geometry.ts +0 -486
- package/src/index.ts +0 -173
- package/src/layer/GeoTexture2d.ts +0 -56
- package/src/layer/index.ts +0 -12
- package/src/math/Line3.ts +0 -162
- package/src/math/index.ts +0 -26
- package/src/quadTree/EPSG4326QuadTreeStrategy.ts +0 -24
- package/src/quadTree/EarthQuadTreeStrategy.ts +0 -28
- package/src/quadTree/MarsQuadTreeStrategy.ts +0 -25
- package/src/quadTree/Wgs84QuadTreeStrategy.ts +0 -22
- package/src/quadTree/index.ts +0 -14
- package/src/scene/Axes.ts +0 -78
- package/src/segment/SegmentLonLatWgs84.ts +0 -33
- package/src/terrain/Geoid.ts +0 -273
- package/src/ui/Button.ts +0 -121
- package/src/ui/ButtonGroup.ts +0 -63
- package/src/ui/Dialog.ts +0 -244
- package/src/ui/Slider.ts +0 -188
- package/src/ui/ToggleButton.ts +0 -68
- package/src/utils/Loader.ts +0 -247
- package/src/utils/units.ts +0 -78
- package/src/webgl/Multisample.ts +0 -153
- package/src/webgl/variableHandlers.ts +0 -114
- /package/{dist → lib}/@openglobus/og.css +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.js +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/night-4326.png +0 -0
- /package/{dist → lib}/@openglobus/res/night.png +0 -0
- /package/{dist → lib}/@openglobus/res/spec.png +0 -0
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
import {cons} from "../cons";
|
|
2
|
-
import {
|
|
3
|
-
import {types, typeStr} from "./types";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const itemTypes: string[] = ["BYTE", "SHORT", "UNSIGNED_BYTE", "UNSIGNED_SHORT", "FLOAT", "HALF_FLOAT"];
|
|
7
|
-
|
|
8
|
-
type WebGLProgramExt = WebGLProgram & { [id: string]: WebGLUniformLocation };
|
|
9
|
-
|
|
10
|
-
type ProgramMaterial = {
|
|
11
|
-
attributes: Record<string, any>;
|
|
12
|
-
uniforms: Record<string, any>,
|
|
13
|
-
vertexShader: string;
|
|
14
|
-
fragmentShader: string
|
|
15
|
-
};
|
|
16
|
-
|
|
1
|
+
import { cons } from "../cons";
|
|
2
|
+
import { variableHandlers } from "./variableHandlers";
|
|
3
|
+
import { types, typeStr } from "./types";
|
|
4
|
+
const itemTypes = ["BYTE", "SHORT", "UNSIGNED_BYTE", "UNSIGNED_SHORT", "FLOAT", "HALF_FLOAT"];
|
|
17
5
|
/**
|
|
18
6
|
* Represents more comfortable using WebGL shader program.
|
|
19
7
|
* @class
|
|
@@ -25,198 +13,104 @@ type ProgramMaterial = {
|
|
|
25
13
|
* @param {string} material.fragmentShader - Fragment glsl code.
|
|
26
14
|
*/
|
|
27
15
|
class Program {
|
|
28
|
-
|
|
29
|
-
* Shader program name.
|
|
30
|
-
* @public
|
|
31
|
-
* @type {string}
|
|
32
|
-
*/
|
|
33
|
-
public name: string;
|
|
34
|
-
|
|
35
|
-
public attributes: { [id: string]: number };
|
|
36
|
-
|
|
37
|
-
public uniforms: { [id: string]: WebGLUniformLocation };
|
|
38
|
-
|
|
39
|
-
public _attributes: Record<string, ProgramVariable>;
|
|
40
|
-
|
|
41
|
-
public _uniforms: Record<string, ProgramVariable>;
|
|
42
|
-
|
|
43
|
-
public vertexShader: string;
|
|
44
|
-
|
|
45
|
-
public fragmentShader: string;
|
|
46
|
-
|
|
47
|
-
public drawElementsInstanced: Function | null;
|
|
48
|
-
public vertexAttribDivisor: Function | null;
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Webgl context.
|
|
52
|
-
* @public
|
|
53
|
-
* @type {WebGL2RenderingContext | null}
|
|
54
|
-
*/
|
|
55
|
-
public gl: WebGL2RenderingContext | null;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* All program variables.
|
|
59
|
-
* @private
|
|
60
|
-
* @type {Record<string, ProgramVariable>}
|
|
61
|
-
*/
|
|
62
|
-
protected _variables: Record<string, ProgramVariable>;
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Program pointer.
|
|
66
|
-
* @private
|
|
67
|
-
* @type {WebGLProgramExt | null}
|
|
68
|
-
*/
|
|
69
|
-
public _p: WebGLProgramExt | null;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Texture counter.
|
|
73
|
-
* @protected
|
|
74
|
-
* @type {number}
|
|
75
|
-
*/
|
|
76
|
-
public _textureID: number;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Program attributes array.
|
|
80
|
-
* @private
|
|
81
|
-
* @type {number[]}
|
|
82
|
-
*/
|
|
83
|
-
protected _attribArrays: number[];
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Program attributes divisors.
|
|
87
|
-
* @protected
|
|
88
|
-
* @type {number[]}
|
|
89
|
-
*/
|
|
90
|
-
protected _attribDivisor: number[];
|
|
91
|
-
|
|
92
|
-
constructor(name: string, material: ProgramMaterial) {
|
|
93
|
-
|
|
16
|
+
constructor(name, material) {
|
|
94
17
|
this.name = name;
|
|
95
|
-
|
|
96
18
|
this._attributes = {};
|
|
97
19
|
for (let t in material.attributes) {
|
|
98
|
-
if (
|
|
99
|
-
typeof material.attributes[t] === "
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
} else {
|
|
20
|
+
if (typeof material.attributes[t] === "string" ||
|
|
21
|
+
typeof material.attributes[t] === "number") {
|
|
22
|
+
this._attributes[t] = { type: material.attributes[t] };
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
104
25
|
this._attributes[t] = material.attributes[t];
|
|
105
26
|
}
|
|
106
27
|
}
|
|
107
|
-
|
|
108
28
|
this._uniforms = {};
|
|
109
29
|
for (let t in material.uniforms) {
|
|
110
|
-
if (
|
|
111
|
-
typeof material.uniforms[t] === "
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
} else {
|
|
30
|
+
if (typeof material.uniforms[t] === "string" ||
|
|
31
|
+
typeof material.uniforms[t] === "number") {
|
|
32
|
+
this._uniforms[t] = { type: material.uniforms[t] };
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
116
35
|
this._uniforms[t] = material.uniforms[t];
|
|
117
36
|
}
|
|
118
37
|
}
|
|
119
|
-
|
|
120
38
|
this.vertexShader = material.vertexShader;
|
|
121
|
-
|
|
122
39
|
this.fragmentShader = material.fragmentShader;
|
|
123
|
-
|
|
124
40
|
this.gl = null;
|
|
125
|
-
|
|
126
41
|
this._variables = {};
|
|
127
|
-
|
|
128
42
|
this._p = null;
|
|
129
|
-
|
|
130
43
|
this._textureID = 0;
|
|
131
|
-
|
|
132
44
|
this._attribArrays = [];
|
|
133
|
-
|
|
134
45
|
this._attribDivisor = [];
|
|
135
|
-
|
|
136
46
|
this.attributes = {};
|
|
137
|
-
|
|
138
47
|
this.uniforms = {};
|
|
139
|
-
|
|
140
48
|
this.vertexAttribDivisor = null;
|
|
141
49
|
this.drawElementsInstanced = null;
|
|
142
50
|
}
|
|
143
|
-
|
|
144
51
|
/**
|
|
145
52
|
* Bind program buffer.
|
|
146
53
|
* @function
|
|
147
54
|
* @param {Program} program - Used program.
|
|
148
55
|
* @param {Object} variable - Variable represents buffer data.
|
|
149
56
|
*/
|
|
150
|
-
static bindBuffer(program
|
|
57
|
+
static bindBuffer(program, variable) {
|
|
151
58
|
let gl = program.gl;
|
|
152
59
|
if (gl) {
|
|
153
60
|
gl.bindBuffer(gl.ARRAY_BUFFER, variable.value);
|
|
154
|
-
gl.vertexAttribPointer(
|
|
155
|
-
variable._pName as number,
|
|
156
|
-
(variable.value as WebGLBufferExt).itemSize,
|
|
157
|
-
variable.itemType as number,
|
|
158
|
-
variable.normalized,
|
|
159
|
-
0,
|
|
160
|
-
0
|
|
161
|
-
);
|
|
61
|
+
gl.vertexAttribPointer(variable._pName, variable.value.itemSize, variable.itemType, variable.normalized, 0, 0);
|
|
162
62
|
}
|
|
163
63
|
}
|
|
164
|
-
|
|
165
64
|
/**
|
|
166
65
|
* Sets the current program frame.
|
|
167
66
|
* @public
|
|
168
67
|
*/
|
|
169
|
-
|
|
170
|
-
this.gl && this.gl.useProgram(this._p
|
|
68
|
+
use() {
|
|
69
|
+
this.gl && this.gl.useProgram(this._p);
|
|
171
70
|
}
|
|
172
|
-
|
|
173
71
|
/**
|
|
174
72
|
* Sets program variables.
|
|
175
73
|
* @public
|
|
176
74
|
* @param {Object} material - Variables and values object.
|
|
177
75
|
*/
|
|
178
|
-
|
|
76
|
+
set(material) {
|
|
179
77
|
this._textureID = 0;
|
|
180
78
|
for (let i in material) {
|
|
181
79
|
this._variables[i].value = material[i];
|
|
182
80
|
this._variables[i].func(this, this._variables[i]);
|
|
183
81
|
}
|
|
184
82
|
}
|
|
185
|
-
|
|
186
83
|
/**
|
|
187
84
|
* Apply current variables.
|
|
188
85
|
* @public
|
|
189
86
|
*/
|
|
190
|
-
|
|
87
|
+
apply() {
|
|
191
88
|
this._textureID = 0;
|
|
192
89
|
let v = this._variables;
|
|
193
90
|
for (let i in v) {
|
|
194
91
|
v[i].func(this, v[i]);
|
|
195
92
|
}
|
|
196
93
|
}
|
|
197
|
-
|
|
198
94
|
/**
|
|
199
95
|
* Calls drawElements index buffer function.
|
|
200
96
|
* @public
|
|
201
97
|
* @param {number} mode - Draw mode(GL_TRIANGLES, GL_LINESTRING etc.).
|
|
202
98
|
* @param {Object} buffer - Index buffer.
|
|
203
99
|
*/
|
|
204
|
-
|
|
205
|
-
let gl = this.gl
|
|
100
|
+
drawIndexBuffer(mode, buffer) {
|
|
101
|
+
let gl = this.gl;
|
|
206
102
|
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
207
103
|
gl.drawElements(mode, buffer.numItems, gl.UNSIGNED_SHORT, 0);
|
|
208
104
|
}
|
|
209
|
-
|
|
210
105
|
/**
|
|
211
106
|
* Calls drawArrays function.
|
|
212
107
|
* @public
|
|
213
108
|
* @param {number} mode - Draw mode GL_TRIANGLES, GL_LINESTRING, etc.
|
|
214
109
|
* @param {number} numItems - Items to draw
|
|
215
110
|
*/
|
|
216
|
-
|
|
217
|
-
this.gl
|
|
111
|
+
drawArrays(mode, numItems) {
|
|
112
|
+
this.gl.drawArrays(mode, 0, numItems);
|
|
218
113
|
}
|
|
219
|
-
|
|
220
114
|
/**
|
|
221
115
|
* Check and log for a shader compile errors and warnings. Returns True - if no errors otherwise returns False.
|
|
222
116
|
* @private
|
|
@@ -224,118 +118,105 @@ class Program {
|
|
|
224
118
|
* @param {string} src - Shader program source.
|
|
225
119
|
* @returns {boolean} -
|
|
226
120
|
*/
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
121
|
+
_getShaderCompileStatus(shader, src) {
|
|
122
|
+
if (!this.gl)
|
|
123
|
+
return false;
|
|
231
124
|
this.gl.shaderSource(shader, src);
|
|
232
125
|
this.gl.compileShader(shader);
|
|
233
126
|
if (!this.gl.getShaderParameter(shader, this.gl.COMPILE_STATUS)) {
|
|
234
|
-
cons.logErr(
|
|
235
|
-
`Shader program "${this.name}":${this.gl.getShaderInfoLog(shader)}.`
|
|
236
|
-
);
|
|
127
|
+
cons.logErr(`Shader program "${this.name}":${this.gl.getShaderInfoLog(shader)}.`);
|
|
237
128
|
return false;
|
|
238
129
|
}
|
|
239
130
|
return true;
|
|
240
131
|
}
|
|
241
|
-
|
|
242
132
|
/**
|
|
243
133
|
* Returns compiled vertex shader program pointer.
|
|
244
134
|
* @private
|
|
245
135
|
* @param {string} src - Vertex shader source code.
|
|
246
136
|
* @returns {Object} -
|
|
247
137
|
*/
|
|
248
|
-
|
|
249
|
-
if (!this.gl)
|
|
138
|
+
_createVertexShader(src) {
|
|
139
|
+
if (!this.gl)
|
|
140
|
+
return;
|
|
250
141
|
let shader = this.gl.createShader(this.gl.VERTEX_SHADER);
|
|
251
142
|
if (shader && this._getShaderCompileStatus(shader, src)) {
|
|
252
143
|
return shader;
|
|
253
144
|
}
|
|
254
145
|
}
|
|
255
|
-
|
|
256
146
|
/**
|
|
257
147
|
* Returns compiled fragment shader program pointer.
|
|
258
148
|
* @private
|
|
259
149
|
* @param {string} src - Vertex shader source code.
|
|
260
150
|
* @returns {Object} -
|
|
261
151
|
*/
|
|
262
|
-
|
|
263
|
-
if (!this.gl)
|
|
152
|
+
_createFragmentShader(src) {
|
|
153
|
+
if (!this.gl)
|
|
154
|
+
return;
|
|
264
155
|
let shader = this.gl.createShader(this.gl.FRAGMENT_SHADER);
|
|
265
156
|
if (shader && this._getShaderCompileStatus(shader, src)) {
|
|
266
157
|
return shader;
|
|
267
158
|
}
|
|
268
159
|
}
|
|
269
|
-
|
|
270
160
|
/**
|
|
271
161
|
* Disable current program vertexAttribArrays.
|
|
272
162
|
* @public
|
|
273
163
|
*/
|
|
274
|
-
|
|
275
|
-
let gl = this.gl
|
|
164
|
+
disableAttribArrays() {
|
|
165
|
+
let gl = this.gl;
|
|
276
166
|
let a = this._attribArrays;
|
|
277
167
|
for (let i = 0, len = a.length; i < len; i++) {
|
|
278
168
|
gl.disableVertexAttribArray(a[i]);
|
|
279
|
-
this.vertexAttribDivisor
|
|
169
|
+
this.vertexAttribDivisor(a[i], 0);
|
|
280
170
|
}
|
|
281
171
|
}
|
|
282
|
-
|
|
283
172
|
/**
|
|
284
173
|
* Enable current program vertexAttribArrays.
|
|
285
174
|
* @public
|
|
286
175
|
*/
|
|
287
|
-
|
|
288
|
-
let gl = this.gl
|
|
176
|
+
enableAttribArrays() {
|
|
177
|
+
let gl = this.gl;
|
|
289
178
|
let a = this._attribArrays;
|
|
290
179
|
let d = this._attribDivisor;
|
|
291
180
|
for (let i = 0, len = a.length; i < len; i++) {
|
|
292
181
|
gl.enableVertexAttribArray(a[i]);
|
|
293
|
-
this.vertexAttribDivisor
|
|
182
|
+
this.vertexAttribDivisor(a[i], d[i]);
|
|
294
183
|
}
|
|
295
184
|
}
|
|
296
|
-
|
|
297
185
|
// public vertexAttribDivisor(index: number, divisor: number) {
|
|
298
186
|
// const gl = this.gl!;
|
|
299
187
|
// gl.vertexAttribDivisor ?
|
|
300
188
|
// gl.vertexAttribDivisor(index, divisor) :
|
|
301
189
|
// gl.getExtension('ANGLE_instanced_arrays').vertexAttribDivisorANGLE(index, divisor);
|
|
302
190
|
// }
|
|
303
|
-
|
|
304
191
|
/**
|
|
305
192
|
* Delete program.
|
|
306
193
|
* @public
|
|
307
194
|
*/
|
|
308
|
-
|
|
309
|
-
this.gl && this.gl.deleteProgram(this._p
|
|
195
|
+
delete() {
|
|
196
|
+
this.gl && this.gl.deleteProgram(this._p);
|
|
310
197
|
}
|
|
311
|
-
|
|
312
198
|
/**
|
|
313
199
|
* Creates program.
|
|
314
200
|
* @public
|
|
315
201
|
* @param {Object} gl - WebGl context.
|
|
316
202
|
*/
|
|
317
|
-
|
|
203
|
+
createProgram(gl) {
|
|
318
204
|
this.gl = gl;
|
|
319
|
-
|
|
320
|
-
this._p
|
|
321
|
-
|
|
322
|
-
if (!this._p) return;
|
|
323
|
-
|
|
205
|
+
this._p = this.gl.createProgram();
|
|
206
|
+
if (!this._p)
|
|
207
|
+
return;
|
|
324
208
|
let fs = this._createFragmentShader(this.fragmentShader);
|
|
325
209
|
let vs = this._createVertexShader(this.vertexShader);
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
210
|
+
if (!fs || !vs)
|
|
211
|
+
return;
|
|
329
212
|
gl.attachShader(this._p, fs);
|
|
330
213
|
gl.attachShader(this._p, vs);
|
|
331
|
-
|
|
332
214
|
gl.linkProgram(this._p);
|
|
333
|
-
|
|
334
|
-
|
|
335
215
|
if (!this.drawElementsInstanced) {
|
|
336
216
|
if (gl.drawElementsInstanced) {
|
|
337
217
|
this.drawElementsInstanced = gl.drawElementsInstanced.bind(gl);
|
|
338
|
-
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
339
220
|
let ext = gl.getExtension('ANGLE_instanced_arrays');
|
|
340
221
|
if (ext) {
|
|
341
222
|
this.drawElementsInstanced = ext.drawElementsInstancedANGLE.bind(ext);
|
|
@@ -346,11 +227,11 @@ class Program {
|
|
|
346
227
|
// gl.drawElementsInstanced.bind(gl) :
|
|
347
228
|
// gl.getExtension('ANGLE_instanced_arrays').drawElementsInstancedANGLE.bind(gl.getExtension('ANGLE_instanced_arrays'));
|
|
348
229
|
}
|
|
349
|
-
|
|
350
230
|
if (!this.vertexAttribDivisor) {
|
|
351
231
|
if (gl.vertexAttribDivisor) {
|
|
352
232
|
this.vertexAttribDivisor = gl.vertexAttribDivisor.bind(gl);
|
|
353
|
-
}
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
354
235
|
let ext = gl.getExtension('ANGLE_instanced_arrays');
|
|
355
236
|
if (ext) {
|
|
356
237
|
this.vertexAttribDivisor = ext.vertexAttribDivisorANGLE.bind(ext);
|
|
@@ -361,91 +242,73 @@ class Program {
|
|
|
361
242
|
// gl.vertexAttribDivisor.bind(gl) :
|
|
362
243
|
// gl.getExtension('ANGLE_instanced_arrays').vertexAttribDivisorANGLE.bind(gl.getExtension('ANGLE_instanced_arrays'));
|
|
363
244
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
245
|
if (!gl.getProgramParameter(this._p, gl.LINK_STATUS)) {
|
|
367
246
|
cons.logErr(`Shader program "${this.name}": initialization failed. ${gl.getProgramInfoLog(this._p)}.`);
|
|
368
247
|
gl.deleteProgram(this._p);
|
|
369
248
|
return;
|
|
370
249
|
}
|
|
371
|
-
|
|
372
250
|
this.use();
|
|
373
|
-
|
|
374
251
|
for (let a in this._attributes) {
|
|
375
252
|
//this.attributes[a]._name = a;
|
|
376
253
|
this._variables[a] = this._attributes[a];
|
|
377
254
|
this._attributes[a].func = Program.bindBuffer;
|
|
378
|
-
|
|
379
|
-
let
|
|
380
|
-
let itemTypeStr: string = t ? t.trim().toUpperCase() : "FLOAT";
|
|
381
|
-
|
|
255
|
+
let t = this._attributes[a].itemType;
|
|
256
|
+
let itemTypeStr = t ? t.trim().toUpperCase() : "FLOAT";
|
|
382
257
|
if (itemTypes.indexOf(itemTypeStr) == -1) {
|
|
383
258
|
cons.logErr(`Shader program "${this.name}": attribute '${a}', item type '${this._attributes[a].itemType}' not exists.`);
|
|
384
259
|
this._attributes[a].itemType = gl.FLOAT;
|
|
385
|
-
} else {
|
|
386
|
-
this._attributes[a].itemType = (gl as any)[itemTypeStr];
|
|
387
260
|
}
|
|
388
|
-
|
|
261
|
+
else {
|
|
262
|
+
this._attributes[a].itemType = gl[itemTypeStr];
|
|
263
|
+
}
|
|
389
264
|
this._attributes[a].normalized = this._attributes[a].normalized || false;
|
|
390
265
|
this._attributes[a].divisor = this._attributes[a].divisor || 0;
|
|
391
|
-
|
|
392
266
|
this._p[a] = gl.getAttribLocation(this._p, a);
|
|
393
|
-
|
|
394
267
|
if (this._p[a] == undefined) {
|
|
395
268
|
cons.logErr(`Shader program "${this.name}": attribute '${a}' not exists.`);
|
|
396
269
|
gl.deleteProgram(this._p);
|
|
397
270
|
return;
|
|
398
271
|
}
|
|
399
|
-
|
|
400
|
-
let type: string | number = this._attributes[a].type;
|
|
272
|
+
let type = this._attributes[a].type;
|
|
401
273
|
if (typeof type === "string") {
|
|
402
274
|
type = typeStr[type.trim().toLowerCase()];
|
|
403
275
|
}
|
|
404
|
-
|
|
405
276
|
let d = this._attributes[a].divisor;
|
|
406
277
|
if (type === types.MAT4) {
|
|
407
|
-
let loc = this._p[a]
|
|
278
|
+
let loc = this._p[a];
|
|
408
279
|
this._attribArrays.push(loc, loc + 1, loc + 2, loc + 3);
|
|
409
280
|
this._attribDivisor.push(d, d, d, d);
|
|
410
|
-
}
|
|
411
|
-
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
this._attribArrays.push(this._p[a]);
|
|
412
284
|
this._attribDivisor.push(d);
|
|
413
285
|
}
|
|
414
|
-
|
|
415
|
-
gl.enableVertexAttribArray(this._p[a] as number);
|
|
416
|
-
|
|
286
|
+
gl.enableVertexAttribArray(this._p[a]);
|
|
417
287
|
this._attributes[a]._pName = this._p[a];
|
|
418
|
-
this.attributes[a] = this._p[a]
|
|
288
|
+
this.attributes[a] = this._p[a];
|
|
419
289
|
}
|
|
420
|
-
|
|
421
290
|
for (let u in this._uniforms) {
|
|
422
|
-
|
|
423
291
|
if (typeof this._uniforms[u].type === "string") {
|
|
424
|
-
let t
|
|
292
|
+
let t = this._uniforms[u].type;
|
|
425
293
|
this._uniforms[u].func = variableHandlers.u[typeStr[t.trim().toLowerCase()]];
|
|
426
|
-
} else {
|
|
427
|
-
this._uniforms[u].func = variableHandlers.u[this._uniforms[u].type as number];
|
|
428
294
|
}
|
|
429
|
-
|
|
295
|
+
else {
|
|
296
|
+
this._uniforms[u].func = variableHandlers.u[this._uniforms[u].type];
|
|
297
|
+
}
|
|
430
298
|
this._variables[u] = this._uniforms[u];
|
|
431
|
-
this._p[u] = gl.getUniformLocation(this._p, u)
|
|
432
|
-
|
|
299
|
+
this._p[u] = gl.getUniformLocation(this._p, u);
|
|
433
300
|
if (this._p[u] == undefined) {
|
|
434
301
|
cons.logErr(`Shader program "${this.name}": uniform '${u}' not exists.`);
|
|
435
302
|
gl.deleteProgram(this._p);
|
|
436
303
|
return;
|
|
437
304
|
}
|
|
438
|
-
|
|
439
305
|
this._uniforms[u]._pName = this._p[u];
|
|
440
306
|
this.uniforms[u] = this._p[u];
|
|
441
307
|
}
|
|
442
|
-
|
|
443
|
-
gl.detachShader(this._p
|
|
444
|
-
gl.detachShader(this._p as WebGLProgram, vs);
|
|
445
|
-
|
|
308
|
+
gl.detachShader(this._p, fs);
|
|
309
|
+
gl.detachShader(this._p, vs);
|
|
446
310
|
gl.deleteShader(fs);
|
|
447
311
|
gl.deleteShader(vs);
|
|
448
312
|
}
|
|
449
313
|
}
|
|
450
|
-
|
|
451
|
-
export {Program};
|
|
314
|
+
export { Program };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Handler, WebGLBufferExt } from "./Handler";
|
|
2
|
+
import { Program } from "./Program";
|
|
3
|
+
/**
|
|
4
|
+
* This is shader program controller that used by handler object to access the shader
|
|
5
|
+
* program capabilities, like switching program during the rendering.
|
|
6
|
+
* Get access to the program from ...handler.programs.<program name> etc.
|
|
7
|
+
* @class
|
|
8
|
+
* @param {Handler} handler - Handler.
|
|
9
|
+
* @param {Program} program - Shader program.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ProgramController {
|
|
12
|
+
/**
|
|
13
|
+
* Handler.
|
|
14
|
+
* @protected
|
|
15
|
+
* @type {Handler}
|
|
16
|
+
*/
|
|
17
|
+
protected _handler: Handler;
|
|
18
|
+
/**
|
|
19
|
+
* Shader program.
|
|
20
|
+
* @public
|
|
21
|
+
* @type {Program}
|
|
22
|
+
*/
|
|
23
|
+
_program: Program;
|
|
24
|
+
/**
|
|
25
|
+
* Program current frame activation flag.
|
|
26
|
+
* @public
|
|
27
|
+
* @type {boolean}
|
|
28
|
+
*/
|
|
29
|
+
_activated: boolean;
|
|
30
|
+
constructor(handler: Handler, program: Program);
|
|
31
|
+
/**
|
|
32
|
+
* Lazy create program call.
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
initialize(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Returns controller's shader program.
|
|
38
|
+
* @public
|
|
39
|
+
* @return {Program} -
|
|
40
|
+
*/
|
|
41
|
+
getProgram(): Program;
|
|
42
|
+
/**
|
|
43
|
+
* Activates current shader program.
|
|
44
|
+
* @public
|
|
45
|
+
* @returns {ProgramController} -
|
|
46
|
+
*/
|
|
47
|
+
activate(): this;
|
|
48
|
+
/**
|
|
49
|
+
* Remove program from handler
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
remove(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Deactivate shader program. This is not necessary while activate function used.
|
|
55
|
+
* @public
|
|
56
|
+
*/
|
|
57
|
+
deactivate(): void;
|
|
58
|
+
/**
|
|
59
|
+
* Returns program activity.
|
|
60
|
+
* @public
|
|
61
|
+
* @return {boolean} -
|
|
62
|
+
*/
|
|
63
|
+
isActive(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Sets program uniforms and attributes values and return controller instance.
|
|
66
|
+
* @public
|
|
67
|
+
* @param {Record<string, any>} params - Object with variable name and value like { value: 12, someArray:[1,2,3], uSampler: texture,... }
|
|
68
|
+
* @return {ProgramController} -
|
|
69
|
+
*/
|
|
70
|
+
set(params: Record<string, any>): this;
|
|
71
|
+
/**
|
|
72
|
+
* Draw index buffer with this program.
|
|
73
|
+
* @public
|
|
74
|
+
* @param {number} mode - Gl draw mode
|
|
75
|
+
* @param {WebGLBuffer} buffer - Buffer to draw.
|
|
76
|
+
* @return {ProgramController} Returns current shader controller instance.
|
|
77
|
+
*/
|
|
78
|
+
drawIndexBuffer(mode: number, buffer: WebGLBufferExt): ProgramController;
|
|
79
|
+
/**
|
|
80
|
+
* Calls Gl drawArray function.
|
|
81
|
+
* @param {number} mode - Gl draw mode.
|
|
82
|
+
* @param {number} numItems - draw items count.
|
|
83
|
+
* @return {ProgramController} Returns current shader controller instance.
|
|
84
|
+
*/
|
|
85
|
+
drawArrays(mode: number, numItems: number): ProgramController;
|
|
86
|
+
}
|