@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,22 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
1
|
+
import {Camera} from "../camera/Camera";
|
|
2
|
+
import {Control} from "../control/Control";
|
|
3
|
+
import {cons} from "../cons";
|
|
4
|
+
import {createRendererEvents, RendererEvents, RendererEventsHandler} from "./RendererEvents";
|
|
5
|
+
import {depth} from "../shaders/depth";
|
|
6
|
+
import {EntityCollection} from "../entity/EntityCollection";
|
|
7
|
+
import {Framebuffer, Multisample} from "../webgl/index";
|
|
8
|
+
import {FontAtlas, IFontParams} from "../utils/FontAtlas";
|
|
9
|
+
import {Handler, WebGLBufferExt} from "../webgl/Handler";
|
|
10
|
+
import {input} from "../input/input";
|
|
11
|
+
import {isEmpty} from "../utils/shared";
|
|
12
|
+
import {LabelWorker} from "../entity/LabelWorker";
|
|
13
|
+
import {pickingMask} from "../shaders/pickingMask";
|
|
14
|
+
import {randomi} from "../math";
|
|
15
|
+
import {RenderNode} from "../scene/RenderNode";
|
|
16
|
+
import {screenFrame} from "../shaders/screenFrame";
|
|
17
|
+
import {toneMapping} from "../shaders/toneMapping";
|
|
18
|
+
import {TextureAtlas} from "../utils/TextureAtlas";
|
|
19
|
+
import {Vec2} from "../math/Vec2";
|
|
20
|
+
import {NumberArray3, Vec3} from "../math/Vec3";
|
|
21
|
+
import {Vec4} from "../math/Vec4";
|
|
22
|
+
|
|
23
|
+
interface IRendererParams {
|
|
24
|
+
controls?: Control[];
|
|
25
|
+
msaa?: number;
|
|
26
|
+
autoActivate?: boolean;
|
|
27
|
+
fontsSrc?: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
interface IPickingObject {
|
|
31
|
+
_pickingColor?: Vec3;
|
|
32
|
+
_pickingColorU?: Float32Array;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
interface IFrameCallbackHandler {
|
|
36
|
+
id: number;
|
|
37
|
+
callback: Function;
|
|
38
|
+
sender: any;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const MSAA_DEFAULT = 0;
|
|
20
42
|
|
|
21
43
|
let __pickingCallbackCounter__ = 0;
|
|
22
44
|
|
|
@@ -24,59 +46,210 @@ let __depthCallbackCounter__ = 0;
|
|
|
24
46
|
|
|
25
47
|
let __distanceCallbackCounter__ = 0;
|
|
26
48
|
|
|
27
|
-
const MSAA_DEFAULT = 0;
|
|
28
|
-
|
|
29
49
|
/**
|
|
30
50
|
* Represents high level WebGL context interface that starts WebGL handler working in real time.
|
|
31
51
|
* @class
|
|
32
52
|
* @param {Handler} handler - WebGL handler context.
|
|
33
53
|
* @param {Object} [params] - Renderer parameters:
|
|
34
|
-
* @fires
|
|
35
|
-
* @fires
|
|
36
|
-
* @fires
|
|
37
|
-
* @fires
|
|
38
|
-
* @fires
|
|
39
|
-
* @fires
|
|
40
|
-
* @fires
|
|
41
|
-
* @fires
|
|
42
|
-
* @fires
|
|
43
|
-
* @fires
|
|
44
|
-
* @fires
|
|
45
|
-
* @fires
|
|
46
|
-
* @fires
|
|
47
|
-
* @fires
|
|
48
|
-
* @fires
|
|
49
|
-
* @fires
|
|
50
|
-
* @fires
|
|
51
|
-
* @fires
|
|
52
|
-
* @fires
|
|
53
|
-
* @fires
|
|
54
|
-
* @fires
|
|
55
|
-
* @fires
|
|
56
|
-
* @fires
|
|
57
|
-
* @fires
|
|
58
|
-
* @fires
|
|
59
|
-
* @fires
|
|
60
|
-
* @fires
|
|
54
|
+
* @fires EventsHandler<RendererEventsType>#draw
|
|
55
|
+
* @fires EventsHandler<RendererEventsType>#resize
|
|
56
|
+
* @fires EventsHandler<RendererEventsType>#mousemove
|
|
57
|
+
* @fires EventsHandler<RendererEventsType>#mousestop
|
|
58
|
+
* @fires EventsHandler<RendererEventsType>#lclick
|
|
59
|
+
* @fires EventsHandler<RendererEventsType>#rclick
|
|
60
|
+
* @fires EventsHandler<RendererEventsType>#mclick
|
|
61
|
+
* @fires EventsHandler<RendererEventsType>#ldblclick
|
|
62
|
+
* @fires EventsHandler<RendererEventsType>#rdblclick
|
|
63
|
+
* @fires EventsHandler<RendererEventsType>#mdblclick
|
|
64
|
+
* @fires EventsHandler<RendererEventsType>#lup
|
|
65
|
+
* @fires EventsHandler<RendererEventsType>#rup
|
|
66
|
+
* @fires EventsHandler<RendererEventsType>#mup
|
|
67
|
+
* @fires EventsHandler<RendererEventsType>#ldown
|
|
68
|
+
* @fires EventsHandler<RendererEventsType>#rdown
|
|
69
|
+
* @fires EventsHandler<RendererEventsType>#mdown
|
|
70
|
+
* @fires EventsHandler<RendererEventsType>#lhold
|
|
71
|
+
* @fires EventsHandler<RendererEventsType>#rhold
|
|
72
|
+
* @fires EventsHandler<RendererEventsType>#mhold
|
|
73
|
+
* @fires EventsHandler<RendererEventsType>#mousewheel
|
|
74
|
+
* @fires EventsHandler<RendererEventsType>#touchstart
|
|
75
|
+
* @fires EventsHandler<RendererEventsType>#touchend
|
|
76
|
+
* @fires EventsHandler<RendererEventsType>#touchcancel
|
|
77
|
+
* @fires EventsHandler<RendererEventsType>#touchmove
|
|
78
|
+
* @fires EventsHandler<RendererEventsType>#doubletouch
|
|
79
|
+
* @fires EventsHandler<RendererEventsType>#touchleave
|
|
80
|
+
* @fires EventsHandler<RendererEventsType>#touchenter
|
|
61
81
|
*/
|
|
62
82
|
|
|
63
|
-
let __resizeTimeout;
|
|
83
|
+
let __resizeTimeout: any;
|
|
84
|
+
|
|
85
|
+
export interface HTMLDivElementExt extends HTMLDivElement {
|
|
86
|
+
attributions?: HTMLElement;
|
|
87
|
+
}
|
|
64
88
|
|
|
65
89
|
class Renderer {
|
|
66
|
-
constructor(handler, params = {}) {
|
|
67
90
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Div element with WebGL canvas. Assigned in Globe class.
|
|
93
|
+
* @public
|
|
94
|
+
* @type {HTMLElement | null}
|
|
95
|
+
*/
|
|
96
|
+
public div: HTMLDivElementExt | null;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* WebGL handler context.
|
|
100
|
+
* @public
|
|
101
|
+
* @type {Handler}
|
|
102
|
+
*/
|
|
103
|
+
public handler: Handler;
|
|
104
|
+
public exposure: number;
|
|
105
|
+
public gamma: number;
|
|
106
|
+
public whitepoint: number;
|
|
107
|
+
public brightThreshold: number;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Render nodes drawing queue.
|
|
111
|
+
* @public
|
|
112
|
+
* @type {Array.<RenderNode>}
|
|
113
|
+
*/
|
|
114
|
+
public _renderNodesArr: RenderNode[];
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Render nodes store for the comfortable access by the node name.
|
|
118
|
+
* @public
|
|
119
|
+
* @type {Object.<RenderNode>}
|
|
120
|
+
*/
|
|
121
|
+
public renderNodes: Record<string, RenderNode>;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Current active camera.
|
|
125
|
+
* @public
|
|
126
|
+
* @type {Camera}
|
|
127
|
+
*/
|
|
128
|
+
public activeCamera: Camera | null;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
|
|
132
|
+
* @public
|
|
133
|
+
* @type {RendererEvents}
|
|
134
|
+
*/
|
|
135
|
+
public events: RendererEventsHandler;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Controls array.
|
|
139
|
+
* @public
|
|
140
|
+
* @type {Object}
|
|
141
|
+
*/
|
|
142
|
+
public controls: Record<string, Control>;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Provides exchange between controls.
|
|
146
|
+
* @public
|
|
147
|
+
* @type {any}
|
|
148
|
+
*/
|
|
149
|
+
public controlsBag: any;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Hash table for drawing objects.
|
|
153
|
+
* @public
|
|
154
|
+
* @type {Map<string, any>}
|
|
155
|
+
*/
|
|
156
|
+
public colorObjects: Map<string, any>;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Color picking objects rendering queue.
|
|
160
|
+
* @type {Function[]}
|
|
161
|
+
*/
|
|
162
|
+
protected _pickingCallbacks: IFrameCallbackHandler[];
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Picking objects(labels and billboards) framebuffer.
|
|
166
|
+
* @public
|
|
167
|
+
* @type {Framebuffer}
|
|
168
|
+
*/
|
|
169
|
+
public pickingFramebuffer: Framebuffer | null;
|
|
170
|
+
|
|
171
|
+
protected _tempPickingPix_: Uint8Array;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* @public
|
|
175
|
+
* @type {Framebuffer}
|
|
176
|
+
*/
|
|
177
|
+
public distanceFramebuffer: Framebuffer | null;
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* @type {Function[]}
|
|
181
|
+
*/
|
|
182
|
+
protected _distanceCallbacks: IFrameCallbackHandler[];
|
|
183
|
+
|
|
184
|
+
protected _tempDistancePix_: Uint8Array;
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Depth objects rendering queue.
|
|
188
|
+
* @type {Function[]}
|
|
189
|
+
*/
|
|
190
|
+
protected _depthCallbacks: IFrameCallbackHandler[];
|
|
191
|
+
|
|
192
|
+
public depthFramebuffer: Framebuffer | null;
|
|
193
|
+
|
|
194
|
+
protected _msaa: number;
|
|
195
|
+
|
|
196
|
+
protected _internalFormat: string;
|
|
197
|
+
protected _format: string;
|
|
198
|
+
protected _type: string;
|
|
199
|
+
|
|
200
|
+
public sceneFramebuffer: Framebuffer | Multisample | null;
|
|
201
|
+
|
|
202
|
+
protected blitFramebuffer: Framebuffer | null;
|
|
203
|
+
|
|
204
|
+
protected toneMappingFramebuffer: Framebuffer | null;
|
|
205
|
+
|
|
206
|
+
protected _initialized: boolean;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Texture atlas for the billboards images. One atlas per node.
|
|
210
|
+
* @public
|
|
211
|
+
* @type {TextureAtlas}
|
|
212
|
+
*/
|
|
213
|
+
public billboardsTextureAtlas: TextureAtlas;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Texture atlas for the billboards images. One atlas per node.
|
|
217
|
+
* @public
|
|
218
|
+
* @type {TextureAtlas}
|
|
219
|
+
*/
|
|
220
|
+
public geoObjectsTextureAtlas: TextureAtlas;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Texture font atlas for the font families and styles. One atlas per node.
|
|
224
|
+
* @public
|
|
225
|
+
* @type {FontAtlas}
|
|
226
|
+
*/
|
|
227
|
+
public fontAtlas: FontAtlas;
|
|
228
|
+
|
|
229
|
+
protected _entityCollections: EntityCollection[];
|
|
230
|
+
|
|
231
|
+
protected _currentOutput: string;
|
|
232
|
+
|
|
233
|
+
protected _fnScreenFrame: Function | null;
|
|
234
|
+
|
|
235
|
+
public labelWorker: LabelWorker;
|
|
236
|
+
|
|
237
|
+
public __useDistanceFramebuffer__: boolean;
|
|
238
|
+
|
|
239
|
+
public screenDepthFramebuffer: Framebuffer | null;
|
|
240
|
+
|
|
241
|
+
public screenFramePositionBuffer: WebGLBufferExt | null;
|
|
242
|
+
|
|
243
|
+
public screenTexture: Record<string, WebGLTexture>;
|
|
244
|
+
|
|
245
|
+
public outputTexture: WebGLTexture | null;
|
|
246
|
+
|
|
247
|
+
protected _pickingMaskCoordinatesBuffer: WebGLBufferExt | null;
|
|
248
|
+
|
|
249
|
+
constructor(handler: Handler, params: IRendererParams = {}) {
|
|
250
|
+
|
|
73
251
|
this.div = null;
|
|
74
252
|
|
|
75
|
-
/**
|
|
76
|
-
* WebGL handler context.
|
|
77
|
-
* @public
|
|
78
|
-
* @type {Handler}
|
|
79
|
-
*/
|
|
80
253
|
this.handler = handler;
|
|
81
254
|
|
|
82
255
|
this.exposure = 3.01;
|
|
@@ -87,39 +260,14 @@ class Renderer {
|
|
|
87
260
|
|
|
88
261
|
this.brightThreshold = 0.9;
|
|
89
262
|
|
|
90
|
-
/**
|
|
91
|
-
* Render nodes drawing queue.
|
|
92
|
-
* @private
|
|
93
|
-
* @type {Array.<scene.RenderNode>}
|
|
94
|
-
*/
|
|
95
263
|
this._renderNodesArr = [];
|
|
96
264
|
|
|
97
|
-
/**
|
|
98
|
-
* Render nodes store for the comfortable access by the node name.
|
|
99
|
-
* @public
|
|
100
|
-
* @type {Object.<og.scene.RenderNode>}
|
|
101
|
-
*/
|
|
102
265
|
this.renderNodes = {};
|
|
103
266
|
|
|
104
|
-
/**
|
|
105
|
-
* Current active camera.
|
|
106
|
-
* @public
|
|
107
|
-
* @type {Camera}
|
|
108
|
-
*/
|
|
109
267
|
this.activeCamera = null;
|
|
110
268
|
|
|
111
|
-
|
|
112
|
-
* Renderer events. Represents interface for setting events like mousemove, draw, keypress etc.
|
|
113
|
-
* @public
|
|
114
|
-
* @type {RendererEvents}
|
|
115
|
-
*/
|
|
116
|
-
this.events = new RendererEvents(this);
|
|
269
|
+
this.events = createRendererEvents(this);
|
|
117
270
|
|
|
118
|
-
/**
|
|
119
|
-
* OpenGlobus controls array.
|
|
120
|
-
* @public
|
|
121
|
-
* @type {Object}
|
|
122
|
-
*/
|
|
123
271
|
this.controls = {};
|
|
124
272
|
|
|
125
273
|
if (params.controls) {
|
|
@@ -128,52 +276,22 @@ class Renderer {
|
|
|
128
276
|
}
|
|
129
277
|
}
|
|
130
278
|
|
|
131
|
-
/**
|
|
132
|
-
* Provides exchange between controls.
|
|
133
|
-
* @public
|
|
134
|
-
* @type {Object}
|
|
135
|
-
*/
|
|
136
279
|
this.controlsBag = {};
|
|
137
280
|
|
|
138
|
-
|
|
139
|
-
* Hash table for drawing objects.
|
|
140
|
-
* @public
|
|
141
|
-
* @type {Object}
|
|
142
|
-
*/
|
|
143
|
-
this.colorObjects = new Map();
|
|
281
|
+
this.colorObjects = new Map<string, any>();
|
|
144
282
|
|
|
145
|
-
/**
|
|
146
|
-
* Color picking objects rendering queue.
|
|
147
|
-
* @type {Array.<Renderer~pickingCallback>}
|
|
148
|
-
*/
|
|
149
283
|
this._pickingCallbacks = [];
|
|
150
284
|
|
|
151
|
-
/**
|
|
152
|
-
* Picking objects(labels and billboards) framebuffer.
|
|
153
|
-
* @public
|
|
154
|
-
* @type {Framebuffer}
|
|
155
|
-
*/
|
|
156
285
|
this.pickingFramebuffer = null;
|
|
157
286
|
|
|
158
|
-
this._tempPickingPix_ =
|
|
287
|
+
this._tempPickingPix_ = new Uint8Array([]);
|
|
159
288
|
|
|
160
|
-
/**
|
|
161
|
-
* @public
|
|
162
|
-
* @type {Framebuffer}
|
|
163
|
-
*/
|
|
164
289
|
this.distanceFramebuffer = null;
|
|
165
290
|
|
|
166
|
-
/**
|
|
167
|
-
* @type {Array.<Renderer~distanceCallback>}
|
|
168
|
-
*/
|
|
169
291
|
this._distanceCallbacks = [];
|
|
170
292
|
|
|
171
|
-
this._tempDistancePix_ =
|
|
293
|
+
this._tempDistancePix_ = new Uint8Array([]);
|
|
172
294
|
|
|
173
|
-
/**
|
|
174
|
-
* Depth objects rendering queue.
|
|
175
|
-
* @type {Array.<Renderer~depthCallback>}
|
|
176
|
-
*/
|
|
177
295
|
this._depthCallbacks = [];
|
|
178
296
|
|
|
179
297
|
this.depthFramebuffer = null;
|
|
@@ -200,24 +318,24 @@ class Renderer {
|
|
|
200
318
|
|
|
201
319
|
/**
|
|
202
320
|
* Texture atlas for the billboards images. One atlas per node.
|
|
203
|
-
* @
|
|
204
|
-
* @type {
|
|
321
|
+
* @public
|
|
322
|
+
* @type {TextureAtlas}
|
|
205
323
|
*/
|
|
206
324
|
this.billboardsTextureAtlas = new TextureAtlas();
|
|
207
|
-
|
|
325
|
+
|
|
208
326
|
/**
|
|
209
327
|
* Texture atlas for the billboards images. One atlas per node.
|
|
210
|
-
* @
|
|
211
|
-
* @type {
|
|
328
|
+
* @public
|
|
329
|
+
* @type {TextureAtlas}
|
|
212
330
|
*/
|
|
213
331
|
this.geoObjectsTextureAtlas = new TextureAtlas();
|
|
214
332
|
|
|
215
333
|
/**
|
|
216
334
|
* Texture font atlas for the font families and styles. One atlas per node.
|
|
217
335
|
* @public
|
|
218
|
-
* @type {
|
|
336
|
+
* @type {FontAtlas}
|
|
219
337
|
*/
|
|
220
|
-
this.fontAtlas = new FontAtlas();
|
|
338
|
+
this.fontAtlas = new FontAtlas(params.fontsSrc);
|
|
221
339
|
|
|
222
340
|
this._entityCollections = [];
|
|
223
341
|
|
|
@@ -229,20 +347,30 @@ class Renderer {
|
|
|
229
347
|
|
|
230
348
|
this.__useDistanceFramebuffer__ = true;
|
|
231
349
|
|
|
350
|
+
this.screenDepthFramebuffer = null;
|
|
351
|
+
|
|
352
|
+
this.screenFramePositionBuffer = null;
|
|
353
|
+
|
|
354
|
+
this.screenTexture = {};
|
|
355
|
+
|
|
356
|
+
this.outputTexture = null;
|
|
357
|
+
|
|
358
|
+
this._pickingMaskCoordinatesBuffer = null;
|
|
359
|
+
|
|
232
360
|
if (params.autoActivate || isEmpty(params.autoActivate)) {
|
|
233
361
|
this.start();
|
|
234
362
|
}
|
|
235
363
|
}
|
|
236
364
|
|
|
237
|
-
enableBlendOneSrcAlpha() {
|
|
238
|
-
let gl = this.handler.gl
|
|
365
|
+
public enableBlendOneSrcAlpha() {
|
|
366
|
+
let gl = this.handler.gl!;
|
|
239
367
|
gl.enable(gl.BLEND);
|
|
240
368
|
gl.blendEquation(gl.FUNC_ADD);
|
|
241
369
|
gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
|
|
242
370
|
}
|
|
243
371
|
|
|
244
|
-
enableBlendDefault() {
|
|
245
|
-
let gl = this.handler.gl
|
|
372
|
+
public enableBlendDefault() {
|
|
373
|
+
let gl = this.handler.gl!;
|
|
246
374
|
gl.enable(gl.BLEND);
|
|
247
375
|
gl.blendEquation(gl.FUNC_ADD);
|
|
248
376
|
gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE);
|
|
@@ -252,19 +380,19 @@ class Renderer {
|
|
|
252
380
|
* Sets renderer events activity.
|
|
253
381
|
* @param {Boolean} activity - Events activity.
|
|
254
382
|
*/
|
|
255
|
-
setEventsActivity(activity) {
|
|
383
|
+
public setEventsActivity(activity: boolean) {
|
|
256
384
|
this.events.active = activity;
|
|
257
385
|
}
|
|
258
386
|
|
|
259
|
-
addDepthCallback(sender, callback) {
|
|
260
|
-
|
|
387
|
+
public addDepthCallback(sender: any, callback: Function) {
|
|
388
|
+
let id = __depthCallbackCounter__++;
|
|
261
389
|
this._depthCallbacks.push({
|
|
262
390
|
id: id, callback: callback, sender: sender
|
|
263
391
|
});
|
|
264
392
|
return id;
|
|
265
393
|
}
|
|
266
394
|
|
|
267
|
-
removeDepthCallback(id) {
|
|
395
|
+
public removeDepthCallback(id: number) {
|
|
268
396
|
for (let i = 0; i < this._depthCallbacks.length; i++) {
|
|
269
397
|
if (id === this._depthCallbacks[i].id) {
|
|
270
398
|
this._depthCallbacks.splice(i, 1);
|
|
@@ -273,15 +401,15 @@ class Renderer {
|
|
|
273
401
|
}
|
|
274
402
|
}
|
|
275
403
|
|
|
276
|
-
addDistanceCallback(sender, callback) {
|
|
277
|
-
|
|
404
|
+
public addDistanceCallback(sender: any, callback: Function) {
|
|
405
|
+
let id = __distanceCallbackCounter__++;
|
|
278
406
|
this._distanceCallbacks.push({
|
|
279
407
|
id: id, callback: callback, sender: sender
|
|
280
408
|
});
|
|
281
409
|
return id;
|
|
282
410
|
}
|
|
283
411
|
|
|
284
|
-
removeDistanceCallback(id) {
|
|
412
|
+
public removeDistanceCallback(id: number) {
|
|
285
413
|
for (let i = 0; i < this._distanceCallbacks.length; i++) {
|
|
286
414
|
if (id === this._distanceCallbacks[i].id) {
|
|
287
415
|
this._distanceCallbacks.splice(i, 1);
|
|
@@ -294,11 +422,11 @@ class Renderer {
|
|
|
294
422
|
/**
|
|
295
423
|
* Adds picking rendering callback function.
|
|
296
424
|
* @param {object} sender - Callback context.
|
|
297
|
-
* @param {
|
|
425
|
+
* @param {Function} callback - Rendering callback.
|
|
298
426
|
* @returns {Number} Handler id
|
|
299
427
|
*/
|
|
300
|
-
addPickingCallback(sender, callback) {
|
|
301
|
-
|
|
428
|
+
public addPickingCallback(sender: any, callback: Function) {
|
|
429
|
+
let id = __pickingCallbackCounter__++;
|
|
302
430
|
this._pickingCallbacks.push({
|
|
303
431
|
id: id, callback: callback, sender: sender
|
|
304
432
|
});
|
|
@@ -309,7 +437,7 @@ class Renderer {
|
|
|
309
437
|
* Removes picking rendering callback function.
|
|
310
438
|
* @param {Number} id - Handler id to remove.
|
|
311
439
|
*/
|
|
312
|
-
removePickingCallback(id) {
|
|
440
|
+
public removePickingCallback(id: number) {
|
|
313
441
|
for (let i = 0; i < this._pickingCallbacks.length; i++) {
|
|
314
442
|
if (id === this._pickingCallbacks[i].id) {
|
|
315
443
|
this._pickingCallbacks.splice(i, 1);
|
|
@@ -318,24 +446,24 @@ class Renderer {
|
|
|
318
446
|
}
|
|
319
447
|
}
|
|
320
448
|
|
|
321
|
-
getPickingObject(r, g, b) {
|
|
449
|
+
public getPickingObject<T>(r: number, g: number, b: number): T {
|
|
322
450
|
return this.colorObjects.get(`${r}_${g}_${b}`);
|
|
323
451
|
}
|
|
324
452
|
|
|
325
|
-
getPickingObjectArr(arr) {
|
|
453
|
+
public getPickingObjectArr<T>(arr: NumberArray3 | Uint8Array): T {
|
|
326
454
|
return this.colorObjects.get(`${arr[0]}_${arr[1]}_${arr[2]}`);
|
|
327
455
|
}
|
|
328
456
|
|
|
329
|
-
getPickingObject3v(vec) {
|
|
457
|
+
public getPickingObject3v<T>(vec: Vec3 | Vec4): T {
|
|
330
458
|
return this.colorObjects.get(`${vec.x}_${vec.y}_${vec.z}`);
|
|
331
459
|
}
|
|
332
460
|
|
|
333
461
|
/**
|
|
334
462
|
* Assign picking color to the object.
|
|
335
463
|
* @public
|
|
336
|
-
* @param {Object} obj - Object that
|
|
464
|
+
* @param {Object} obj - Object that presume to be picked.
|
|
337
465
|
*/
|
|
338
|
-
assignPickingColor(obj) {
|
|
466
|
+
public assignPickingColor<T>(obj: T & IPickingObject) {
|
|
339
467
|
if (!obj._pickingColor || obj._pickingColor.isZero()) {
|
|
340
468
|
let r = 0, g = 0, b = 0;
|
|
341
469
|
let str = "0_0_0";
|
|
@@ -363,9 +491,9 @@ class Renderer {
|
|
|
363
491
|
* @public
|
|
364
492
|
* @param {Object} obj - Object to remove picking color.
|
|
365
493
|
*/
|
|
366
|
-
clearPickingColor(obj) {
|
|
367
|
-
if (!obj._pickingColor.isZero()) {
|
|
368
|
-
|
|
494
|
+
public clearPickingColor<T>(obj: T & IPickingObject) {
|
|
495
|
+
if (obj._pickingColor && !obj._pickingColor.isZero()) {
|
|
496
|
+
let c = obj._pickingColor;
|
|
369
497
|
if (!c.isZero()) {
|
|
370
498
|
this.colorObjects.delete(`${c.x}_${c.y}_${c.z}`);
|
|
371
499
|
c.x = c.y = c.z = 0;
|
|
@@ -378,8 +506,8 @@ class Renderer {
|
|
|
378
506
|
* @public
|
|
379
507
|
* @returns {number} -
|
|
380
508
|
*/
|
|
381
|
-
getWidth() {
|
|
382
|
-
return this.handler.canvas
|
|
509
|
+
public getWidth(): number {
|
|
510
|
+
return this.handler.canvas!.clientWidth;
|
|
383
511
|
}
|
|
384
512
|
|
|
385
513
|
/**
|
|
@@ -387,33 +515,43 @@ class Renderer {
|
|
|
387
515
|
* @public
|
|
388
516
|
* @returns {number} -
|
|
389
517
|
*/
|
|
390
|
-
getHeight() {
|
|
391
|
-
return this.handler.canvas
|
|
518
|
+
public getHeight(): number {
|
|
519
|
+
return this.handler.canvas!.clientHeight;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* Get center of the canvas
|
|
524
|
+
* @public
|
|
525
|
+
* @returns {Vec2} -
|
|
526
|
+
*/
|
|
527
|
+
public getCenter(): Vec2 {
|
|
528
|
+
let cnv = this.handler.canvas!;
|
|
529
|
+
return new Vec2(Math.round(cnv.width * 0.5), Math.round(cnv.height * 0.5));
|
|
392
530
|
}
|
|
393
531
|
|
|
394
532
|
/**
|
|
395
|
-
* Get center of the screen
|
|
533
|
+
* Get center of the screen viewport
|
|
396
534
|
* @public
|
|
397
|
-
* @returns {
|
|
535
|
+
* @returns {Vec2} -
|
|
398
536
|
*/
|
|
399
|
-
|
|
400
|
-
|
|
537
|
+
public getClientCenter(): Vec2 {
|
|
538
|
+
let cnv = this.handler.canvas!;
|
|
401
539
|
return new Vec2(Math.round(cnv.clientWidth * 0.5), Math.round(cnv.clientHeight * 0.5));
|
|
402
540
|
}
|
|
403
541
|
|
|
404
542
|
/**
|
|
405
543
|
* Add the given control to the renderer.
|
|
406
|
-
* @param {
|
|
544
|
+
* @param {Control} control - Control.
|
|
407
545
|
*/
|
|
408
|
-
addControl(control) {
|
|
546
|
+
public addControl(control: Control) {
|
|
409
547
|
control.addTo(this);
|
|
410
548
|
}
|
|
411
549
|
|
|
412
550
|
/**
|
|
413
551
|
* Add the given controls array to the planet node.
|
|
414
|
-
* @param {Array.<
|
|
552
|
+
* @param {Array.<Control>} cArr - Control array.
|
|
415
553
|
*/
|
|
416
|
-
addControls(cArr) {
|
|
554
|
+
public addControls(cArr: Control[]) {
|
|
417
555
|
for (let i = 0; i < cArr.length; i++) {
|
|
418
556
|
cArr[i].addTo(this);
|
|
419
557
|
}
|
|
@@ -421,13 +559,13 @@ class Renderer {
|
|
|
421
559
|
|
|
422
560
|
/**
|
|
423
561
|
* Remove control from the renderer.
|
|
424
|
-
* @param {
|
|
562
|
+
* @param {Control} control - Control.
|
|
425
563
|
*/
|
|
426
|
-
removeControl(control) {
|
|
564
|
+
public removeControl(control: Control) {
|
|
427
565
|
control.remove();
|
|
428
566
|
}
|
|
429
567
|
|
|
430
|
-
isInitialized() {
|
|
568
|
+
public isInitialized(): boolean {
|
|
431
569
|
return this._initialized;
|
|
432
570
|
}
|
|
433
571
|
|
|
@@ -435,7 +573,7 @@ class Renderer {
|
|
|
435
573
|
* Renderer initialization.
|
|
436
574
|
* @public
|
|
437
575
|
*/
|
|
438
|
-
initialize() {
|
|
576
|
+
public initialize() {
|
|
439
577
|
|
|
440
578
|
if (this._initialized) {
|
|
441
579
|
return;
|
|
@@ -469,13 +607,15 @@ class Renderer {
|
|
|
469
607
|
|
|
470
608
|
this.pickingFramebuffer = new Framebuffer(this.handler, {
|
|
471
609
|
width: 640, height: 480, depthComponent: "DEPTH_STENCIL", renderbufferTarget: "DEPTH_STENCIL_ATTACHMENT"
|
|
472
|
-
})
|
|
610
|
+
});
|
|
611
|
+
this.pickingFramebuffer.init();
|
|
473
612
|
|
|
474
613
|
this._tempPickingPix_ = new Uint8Array(this.pickingFramebuffer.width * this.pickingFramebuffer.height * 4);
|
|
475
614
|
|
|
476
615
|
this.distanceFramebuffer = new Framebuffer(this.handler, {
|
|
477
616
|
width: 320, height: 240
|
|
478
|
-
})
|
|
617
|
+
});
|
|
618
|
+
this.distanceFramebuffer.init();
|
|
479
619
|
|
|
480
620
|
this._tempDistancePix_ = new Uint8Array(this.distanceFramebuffer.width * this.distanceFramebuffer.height * 4);
|
|
481
621
|
|
|
@@ -486,23 +626,25 @@ class Renderer {
|
|
|
486
626
|
type: ["UNSIGNED_BYTE", "UNSIGNED_INT"],
|
|
487
627
|
attachment: ["COLOR_ATTACHMENT", "DEPTH_ATTACHMENT"],
|
|
488
628
|
useDepth: false
|
|
489
|
-
})
|
|
629
|
+
});
|
|
630
|
+
this.depthFramebuffer.init();
|
|
490
631
|
|
|
491
632
|
this.screenDepthFramebuffer = new Framebuffer(this.handler, {
|
|
492
633
|
useDepth: false
|
|
493
|
-
})
|
|
634
|
+
});
|
|
635
|
+
this.screenDepthFramebuffer.init();
|
|
494
636
|
|
|
495
|
-
if (this.handler.gl
|
|
637
|
+
if (this.handler.gl!.type === "webgl") {
|
|
496
638
|
this.sceneFramebuffer = new Framebuffer(this.handler);
|
|
497
639
|
this.sceneFramebuffer.init();
|
|
498
640
|
|
|
499
641
|
this._fnScreenFrame = this._screenFrameNoMSAA;
|
|
500
642
|
|
|
501
643
|
this.screenTexture = {
|
|
502
|
-
screen: this.sceneFramebuffer
|
|
503
|
-
picking: this.pickingFramebuffer
|
|
504
|
-
distance: this.distanceFramebuffer
|
|
505
|
-
depth: this.screenDepthFramebuffer
|
|
644
|
+
screen: this.sceneFramebuffer!.textures[0],
|
|
645
|
+
picking: this.pickingFramebuffer!.textures[0],
|
|
646
|
+
distance: this.distanceFramebuffer!.textures[0],
|
|
647
|
+
depth: this.screenDepthFramebuffer!.textures[0]
|
|
506
648
|
};
|
|
507
649
|
} else {
|
|
508
650
|
let _maxMSAA = this.getMaxMSAA(this._internalFormat);
|
|
@@ -516,8 +658,13 @@ class Renderer {
|
|
|
516
658
|
this.handler.addPrograms([depth()]);
|
|
517
659
|
|
|
518
660
|
this.sceneFramebuffer = new Multisample(this.handler, {
|
|
519
|
-
size: 1,
|
|
520
|
-
|
|
661
|
+
size: 1,
|
|
662
|
+
msaa: this._msaa,
|
|
663
|
+
internalFormat: this._internalFormat,
|
|
664
|
+
filter: "LINEAR"
|
|
665
|
+
});
|
|
666
|
+
|
|
667
|
+
this.sceneFramebuffer.init();
|
|
521
668
|
|
|
522
669
|
this.blitFramebuffer = new Framebuffer(this.handler, {
|
|
523
670
|
size: 1,
|
|
@@ -526,20 +673,24 @@ class Renderer {
|
|
|
526
673
|
format: this._format,
|
|
527
674
|
type: this._type,
|
|
528
675
|
filter: "NEAREST"
|
|
529
|
-
})
|
|
676
|
+
});
|
|
677
|
+
|
|
678
|
+
this.blitFramebuffer.init();
|
|
530
679
|
|
|
531
680
|
this.toneMappingFramebuffer = new Framebuffer(this.handler, {
|
|
532
681
|
useDepth: false
|
|
533
|
-
})
|
|
682
|
+
});
|
|
683
|
+
|
|
684
|
+
this.toneMappingFramebuffer.init();
|
|
534
685
|
|
|
535
686
|
this._fnScreenFrame = this._screenFrameMSAA;
|
|
536
687
|
|
|
537
688
|
this.screenTexture = {
|
|
538
|
-
screen: this.toneMappingFramebuffer
|
|
539
|
-
picking: this.pickingFramebuffer
|
|
540
|
-
distance: this.distanceFramebuffer
|
|
541
|
-
depth: this.screenDepthFramebuffer
|
|
542
|
-
frustum: this.depthFramebuffer
|
|
689
|
+
screen: this.toneMappingFramebuffer!.textures[0],
|
|
690
|
+
picking: this.pickingFramebuffer!.textures[0],
|
|
691
|
+
distance: this.distanceFramebuffer!.textures[0],
|
|
692
|
+
depth: this.screenDepthFramebuffer!.textures[0],
|
|
693
|
+
frustum: this.depthFramebuffer!.textures[0]
|
|
543
694
|
};
|
|
544
695
|
}
|
|
545
696
|
|
|
@@ -560,8 +711,6 @@ class Renderer {
|
|
|
560
711
|
|
|
561
712
|
this.outputTexture = this.screenTexture.screen;
|
|
562
713
|
|
|
563
|
-
this.fontAtlas.initFont("arial", arial.data, arial.image);
|
|
564
|
-
|
|
565
714
|
this._pickingMaskCoordinatesBuffer = this.handler.createArrayBuffer(new Float32Array([0, 0]), 2, 1);
|
|
566
715
|
|
|
567
716
|
this._initializeRenderNodes();
|
|
@@ -569,7 +718,7 @@ class Renderer {
|
|
|
569
718
|
this._initializeControls();
|
|
570
719
|
}
|
|
571
720
|
|
|
572
|
-
_initializeControls() {
|
|
721
|
+
public _initializeControls() {
|
|
573
722
|
let temp = this.controls;
|
|
574
723
|
this.controls = {};
|
|
575
724
|
for (let i in temp) {
|
|
@@ -577,54 +726,55 @@ class Renderer {
|
|
|
577
726
|
}
|
|
578
727
|
}
|
|
579
728
|
|
|
580
|
-
resize() {
|
|
729
|
+
public resize() {
|
|
581
730
|
this._resizeEnd();
|
|
582
731
|
}
|
|
583
732
|
|
|
584
|
-
setCurrentScreen(screenName) {
|
|
733
|
+
public setCurrentScreen(screenName: string) {
|
|
585
734
|
this._currentOutput = screenName;
|
|
586
735
|
if (this.screenTexture[screenName]) {
|
|
587
736
|
this.outputTexture = this.screenTexture[screenName];
|
|
588
737
|
}
|
|
589
738
|
}
|
|
590
739
|
|
|
591
|
-
_resizeStart() {
|
|
592
|
-
let c = this.handler.canvas
|
|
740
|
+
public _resizeStart() {
|
|
741
|
+
let c = this.handler.canvas!;
|
|
593
742
|
|
|
594
|
-
this.activeCamera
|
|
595
|
-
this.sceneFramebuffer
|
|
743
|
+
this.activeCamera!.setAspectRatio(c.width / c.height);
|
|
744
|
+
this.sceneFramebuffer!.setSize(c.width * 0.5, c.height * 0.5);
|
|
596
745
|
this.blitFramebuffer && this.blitFramebuffer.setSize(c.width * 0.5, c.height * 0.5, true);
|
|
597
746
|
}
|
|
598
747
|
|
|
599
|
-
_resizeEnd() {
|
|
600
|
-
let c = this.handler.canvas
|
|
748
|
+
public _resizeEnd() {
|
|
749
|
+
let c = this.handler.canvas!;
|
|
601
750
|
|
|
602
|
-
this.activeCamera
|
|
603
|
-
this.sceneFramebuffer
|
|
751
|
+
this.activeCamera!.setAspectRatio(c.width / c.height);
|
|
752
|
+
this.sceneFramebuffer!.setSize(c.width, c.height);
|
|
604
753
|
this.blitFramebuffer && this.blitFramebuffer.setSize(c.width, c.height, true);
|
|
605
754
|
|
|
606
755
|
this.toneMappingFramebuffer && this.toneMappingFramebuffer.setSize(c.width, c.height, true);
|
|
607
756
|
this.depthFramebuffer && this.depthFramebuffer.setSize(c.clientWidth, c.clientHeight, true);
|
|
608
757
|
this.screenDepthFramebuffer && this.screenDepthFramebuffer.setSize(c.clientWidth, c.clientHeight, true);
|
|
609
758
|
|
|
610
|
-
if (this.handler.gl
|
|
611
|
-
this.screenTexture.screen = this.sceneFramebuffer
|
|
612
|
-
this.screenTexture.picking = this.pickingFramebuffer
|
|
613
|
-
this.screenTexture.distance = this.distanceFramebuffer
|
|
614
|
-
this.screenTexture.depth = this.screenDepthFramebuffer
|
|
615
|
-
this.screenTexture.frustum = this.depthFramebuffer
|
|
759
|
+
if (this.handler.gl!.type === "webgl") {
|
|
760
|
+
this.screenTexture.screen = (this.sceneFramebuffer as Framebuffer)!.textures[0];
|
|
761
|
+
this.screenTexture.picking = this.pickingFramebuffer!.textures[0];
|
|
762
|
+
this.screenTexture.distance = this.distanceFramebuffer!.textures[0];
|
|
763
|
+
this.screenTexture.depth = this.screenDepthFramebuffer!.textures[0];
|
|
764
|
+
this.screenTexture.frustum = this.depthFramebuffer!.textures[0];
|
|
616
765
|
} else {
|
|
617
|
-
this.screenTexture.screen = this.toneMappingFramebuffer
|
|
618
|
-
this.screenTexture.picking = this.pickingFramebuffer
|
|
619
|
-
this.screenTexture.distance = this.distanceFramebuffer
|
|
620
|
-
this.screenTexture.depth = this.screenDepthFramebuffer
|
|
621
|
-
this.screenTexture.frustum = this.depthFramebuffer
|
|
766
|
+
this.screenTexture.screen = this.toneMappingFramebuffer!.textures[0];
|
|
767
|
+
this.screenTexture.picking = this.pickingFramebuffer!.textures[0];
|
|
768
|
+
this.screenTexture.distance = this.distanceFramebuffer!.textures[0];
|
|
769
|
+
this.screenTexture.depth = this.screenDepthFramebuffer!.textures[0];
|
|
770
|
+
this.screenTexture.frustum = this.depthFramebuffer!.textures[0];
|
|
622
771
|
}
|
|
623
772
|
|
|
624
773
|
this.setCurrentScreen(this._currentOutput);
|
|
625
774
|
}
|
|
626
775
|
|
|
627
|
-
removeNode(renderNode) {
|
|
776
|
+
public removeNode(renderNode: RenderNode) {
|
|
777
|
+
// TODO: replace from RenderNode to this method
|
|
628
778
|
renderNode.remove();
|
|
629
779
|
}
|
|
630
780
|
|
|
@@ -633,17 +783,17 @@ class Renderer {
|
|
|
633
783
|
* @public
|
|
634
784
|
* @param {RenderNode} renderNode - Render node.
|
|
635
785
|
*/
|
|
636
|
-
addNode(renderNode) {
|
|
786
|
+
public addNode(renderNode: RenderNode) {
|
|
637
787
|
if (!this.renderNodes[renderNode.name]) {
|
|
638
788
|
renderNode.assign(this);
|
|
639
789
|
this._renderNodesArr.unshift(renderNode);
|
|
640
790
|
this.renderNodes[renderNode.name] = renderNode;
|
|
641
791
|
} else {
|
|
642
|
-
cons.logWrn(
|
|
792
|
+
cons.logWrn(`Node name ${renderNode.name} already exists.`);
|
|
643
793
|
}
|
|
644
794
|
}
|
|
645
795
|
|
|
646
|
-
_initializeRenderNodes() {
|
|
796
|
+
protected _initializeRenderNodes() {
|
|
647
797
|
for (let i = 0; i < this._renderNodesArr.length; i++) {
|
|
648
798
|
this._renderNodesArr[i].initialize();
|
|
649
799
|
}
|
|
@@ -653,8 +803,9 @@ class Renderer {
|
|
|
653
803
|
* Adds render node to the renderer before specific node.
|
|
654
804
|
* @public
|
|
655
805
|
* @param {RenderNode} renderNode - Render node.
|
|
806
|
+
* @param {RenderNode} renderNodeBefore - Insert before the renderNodeBefore node.
|
|
656
807
|
*/
|
|
657
|
-
addNodeBefore(renderNode, renderNodeBefore) {
|
|
808
|
+
public addNodeBefore(renderNode: RenderNode, renderNodeBefore: RenderNode) {
|
|
658
809
|
if (!this.renderNodes[renderNode.name]) {
|
|
659
810
|
renderNode.assign(this);
|
|
660
811
|
this.renderNodes[renderNode.name] = renderNode;
|
|
@@ -666,44 +817,43 @@ class Renderer {
|
|
|
666
817
|
}
|
|
667
818
|
this._renderNodesArr.unshift(renderNode);
|
|
668
819
|
} else {
|
|
669
|
-
cons.logWrn(
|
|
820
|
+
cons.logWrn(`Node name ${renderNode.name} already exists.`);
|
|
670
821
|
}
|
|
671
822
|
}
|
|
672
823
|
|
|
673
824
|
/**
|
|
674
825
|
* Adds render nodes array to the renderer.
|
|
675
826
|
* @public
|
|
676
|
-
* @param {Array.<
|
|
827
|
+
* @param {Array.<RenderNode>} nodesArr - Render nodes array.
|
|
677
828
|
*/
|
|
678
|
-
addNodes(nodesArr) {
|
|
829
|
+
public addNodes(nodesArr: RenderNode[]) {
|
|
679
830
|
for (let i = 0; i < nodesArr.length; i++) {
|
|
680
831
|
this.addNode(nodesArr[i]);
|
|
681
832
|
}
|
|
682
833
|
}
|
|
683
834
|
|
|
684
|
-
getMaxMSAA(internalFormat) {
|
|
685
|
-
|
|
686
|
-
let samples = gl.getInternalformatParameter(gl.RENDERBUFFER, gl[internalFormat], gl.SAMPLES);
|
|
835
|
+
public getMaxMSAA(internalFormat: string) {
|
|
836
|
+
let gl = this.handler.gl!;
|
|
837
|
+
let samples = gl.getInternalformatParameter(gl.RENDERBUFFER, (gl as any)[internalFormat], gl.SAMPLES);
|
|
687
838
|
return samples[0];
|
|
688
839
|
}
|
|
689
840
|
|
|
690
|
-
getMSAA() {
|
|
841
|
+
public getMSAA(): number {
|
|
691
842
|
return this._msaa;
|
|
692
843
|
}
|
|
693
844
|
|
|
694
845
|
/**
|
|
695
|
-
* TODO: replace with
|
|
846
|
+
* TODO: replace with cache friendly linked list by BillboardHandler, LabelHandler etc.
|
|
696
847
|
*/
|
|
697
|
-
enqueueEntityCollectionsToDraw(ecArr) {
|
|
848
|
+
public enqueueEntityCollectionsToDraw(ecArr: EntityCollection[]) {
|
|
698
849
|
this._entityCollections.push.apply(this._entityCollections, ecArr);
|
|
699
850
|
}
|
|
700
851
|
|
|
701
852
|
/**
|
|
702
|
-
* Draws entity collections.
|
|
703
|
-
* @
|
|
704
|
-
* @param {Array<og.EntityCollection>} ec - Entity collection array.
|
|
853
|
+
* Draws opaque items entity collections.
|
|
854
|
+
* @protected
|
|
705
855
|
*/
|
|
706
|
-
_drawOpaqueEntityCollections() {
|
|
856
|
+
protected _drawOpaqueEntityCollections() {
|
|
707
857
|
let ec = this._entityCollections;
|
|
708
858
|
|
|
709
859
|
if (ec.length) {
|
|
@@ -730,15 +880,14 @@ class Renderer {
|
|
|
730
880
|
|
|
731
881
|
|
|
732
882
|
/**
|
|
733
|
-
* Draws entity collections.
|
|
734
|
-
* @
|
|
735
|
-
* @param {Array<og.EntityCollection>} ec - Entity collection array.
|
|
883
|
+
* Draws transparent items entity collections.
|
|
884
|
+
* @protected
|
|
736
885
|
*/
|
|
737
|
-
_drawTransparentEntityCollections() {
|
|
886
|
+
protected _drawTransparentEntityCollections() {
|
|
738
887
|
let ec = this._entityCollections;
|
|
739
888
|
|
|
740
889
|
if (ec.length) {
|
|
741
|
-
let gl = this.handler.gl
|
|
890
|
+
let gl = this.handler.gl!;
|
|
742
891
|
|
|
743
892
|
this.enableBlendDefault();
|
|
744
893
|
|
|
@@ -748,7 +897,7 @@ class Renderer {
|
|
|
748
897
|
|
|
749
898
|
let i = ec.length;
|
|
750
899
|
while (i--) {
|
|
751
|
-
|
|
900
|
+
let eci = ec[i];
|
|
752
901
|
eci._fadingOpacity && eci.billboardHandler.draw();
|
|
753
902
|
}
|
|
754
903
|
|
|
@@ -784,7 +933,7 @@ class Renderer {
|
|
|
784
933
|
}
|
|
785
934
|
}
|
|
786
935
|
|
|
787
|
-
_clearEntityCollectionQueue() {
|
|
936
|
+
protected _clearEntityCollectionQueue() {
|
|
788
937
|
this._entityCollections.length = 0;
|
|
789
938
|
this._entityCollections = [];
|
|
790
939
|
}
|
|
@@ -793,32 +942,33 @@ class Renderer {
|
|
|
793
942
|
* Draw nodes.
|
|
794
943
|
* @public
|
|
795
944
|
*/
|
|
796
|
-
draw() {
|
|
797
|
-
this.activeCamera
|
|
945
|
+
public draw() {
|
|
946
|
+
this.activeCamera!.checkMoveEnd();
|
|
798
947
|
|
|
799
948
|
let e = this.events;
|
|
800
949
|
e.handleEvents();
|
|
801
950
|
|
|
802
|
-
let sceneFramebuffer = this.sceneFramebuffer
|
|
951
|
+
let sceneFramebuffer = this.sceneFramebuffer!;
|
|
803
952
|
sceneFramebuffer.activate();
|
|
804
953
|
|
|
805
|
-
let h = this.handler,
|
|
954
|
+
let h = this.handler,
|
|
955
|
+
gl = h.gl!;
|
|
806
956
|
|
|
807
957
|
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
|
808
958
|
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
|
|
809
959
|
|
|
810
960
|
e.dispatch(e.draw, this);
|
|
811
961
|
|
|
812
|
-
let frustums = this.activeCamera
|
|
962
|
+
let frustums = this.activeCamera!.frustums;
|
|
813
963
|
|
|
814
|
-
let pointerEvent = e.pointerEvent() || this.activeCamera
|
|
964
|
+
let pointerEvent = e.pointerEvent() || this.activeCamera!.isMoving;
|
|
815
965
|
|
|
816
966
|
// Rendering scene nodes and entityCollections
|
|
817
967
|
let rn = this._renderNodesArr;
|
|
818
968
|
let k = frustums.length;
|
|
819
969
|
|
|
820
970
|
while (k--) {
|
|
821
|
-
this.activeCamera
|
|
971
|
+
this.activeCamera!.setCurrentFrustum(k);
|
|
822
972
|
gl.clear(gl.DEPTH_BUFFER_BIT);
|
|
823
973
|
|
|
824
974
|
let i = rn.length;
|
|
@@ -845,7 +995,7 @@ class Renderer {
|
|
|
845
995
|
|
|
846
996
|
sceneFramebuffer.deactivate();
|
|
847
997
|
|
|
848
|
-
this.blitFramebuffer && sceneFramebuffer.blitTo(this.blitFramebuffer, 0);
|
|
998
|
+
this.blitFramebuffer && (sceneFramebuffer as Multisample).blitTo(this.blitFramebuffer, 0);
|
|
849
999
|
|
|
850
1000
|
if (pointerEvent) {
|
|
851
1001
|
// It works ONLY for 0 (closest) frustum
|
|
@@ -857,7 +1007,7 @@ class Renderer {
|
|
|
857
1007
|
}
|
|
858
1008
|
|
|
859
1009
|
// Tone mapping followed by rendering on the screen
|
|
860
|
-
this._fnScreenFrame();
|
|
1010
|
+
this._fnScreenFrame!();
|
|
861
1011
|
|
|
862
1012
|
e.dispatch(e.postdraw, this);
|
|
863
1013
|
|
|
@@ -867,23 +1017,25 @@ class Renderer {
|
|
|
867
1017
|
e.touchState.moving = false;
|
|
868
1018
|
}
|
|
869
1019
|
|
|
870
|
-
_screenFrameMSAA() {
|
|
871
|
-
|
|
1020
|
+
protected _screenFrameMSAA() {
|
|
1021
|
+
let h = this.handler;
|
|
872
1022
|
|
|
873
|
-
|
|
1023
|
+
let sh = h.programs.toneMapping,
|
|
1024
|
+
p = sh._program,
|
|
1025
|
+
gl = h.gl!;
|
|
874
1026
|
|
|
875
1027
|
gl.disable(gl.DEPTH_TEST);
|
|
876
1028
|
|
|
877
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer);
|
|
1029
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer as WebGLBuffer);
|
|
878
1030
|
gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
|
|
879
1031
|
|
|
880
|
-
this.toneMappingFramebuffer
|
|
1032
|
+
this.toneMappingFramebuffer!.activate();
|
|
881
1033
|
|
|
882
1034
|
sh.activate();
|
|
883
1035
|
|
|
884
1036
|
// screen texture
|
|
885
1037
|
gl.activeTexture(gl.TEXTURE0);
|
|
886
|
-
gl.bindTexture(gl.TEXTURE_2D, this.blitFramebuffer
|
|
1038
|
+
gl.bindTexture(gl.TEXTURE_2D, this.blitFramebuffer!.textures[0]);
|
|
887
1039
|
gl.uniform1i(p.uniforms.hdrBuffer, 0);
|
|
888
1040
|
|
|
889
1041
|
gl.uniform1f(p.uniforms.gamma, this.gamma);
|
|
@@ -891,12 +1043,11 @@ class Renderer {
|
|
|
891
1043
|
gl.uniform1f(p.uniforms.whitepoint, this.whitepoint);
|
|
892
1044
|
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
893
1045
|
|
|
894
|
-
this.toneMappingFramebuffer
|
|
1046
|
+
this.toneMappingFramebuffer!.deactivate();
|
|
895
1047
|
|
|
896
1048
|
// SCREEN PASS
|
|
897
1049
|
sh = h.programs.screenFrame;
|
|
898
1050
|
p = sh._program;
|
|
899
|
-
gl = h.gl;
|
|
900
1051
|
sh.activate();
|
|
901
1052
|
gl.activeTexture(gl.TEXTURE0);
|
|
902
1053
|
gl.bindTexture(gl.TEXTURE_2D, this.outputTexture);
|
|
@@ -906,17 +1057,19 @@ class Renderer {
|
|
|
906
1057
|
gl.enable(gl.DEPTH_TEST);
|
|
907
1058
|
}
|
|
908
1059
|
|
|
909
|
-
_screenFrameNoMSAA() {
|
|
1060
|
+
protected _screenFrameNoMSAA() {
|
|
910
1061
|
|
|
911
1062
|
let h = this.handler;
|
|
912
|
-
let sh = h.programs.screenFrame,
|
|
1063
|
+
let sh = h.programs.screenFrame,
|
|
1064
|
+
p = sh._program,
|
|
1065
|
+
gl = h.gl!;
|
|
913
1066
|
|
|
914
1067
|
gl.disable(gl.DEPTH_TEST);
|
|
915
1068
|
sh.activate();
|
|
916
1069
|
gl.activeTexture(gl.TEXTURE0);
|
|
917
1070
|
gl.bindTexture(gl.TEXTURE_2D, this.outputTexture);
|
|
918
1071
|
gl.uniform1i(p.uniforms.texture, 0);
|
|
919
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer);
|
|
1072
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer as WebGLBuffer);
|
|
920
1073
|
gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
|
|
921
1074
|
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
922
1075
|
gl.enable(gl.DEPTH_TEST);
|
|
@@ -926,13 +1079,13 @@ class Renderer {
|
|
|
926
1079
|
* Draw picking objects framebuffer.
|
|
927
1080
|
* @private
|
|
928
1081
|
*/
|
|
929
|
-
_drawPickingBuffer() {
|
|
930
|
-
this.pickingFramebuffer
|
|
1082
|
+
protected _drawPickingBuffer() {
|
|
1083
|
+
this.pickingFramebuffer!.activate();
|
|
931
1084
|
|
|
932
1085
|
let h = this.handler;
|
|
933
|
-
let gl = h.gl
|
|
1086
|
+
let gl = h.gl!;
|
|
934
1087
|
|
|
935
|
-
if (this.activeCamera
|
|
1088
|
+
if (this.activeCamera!.isFirstPass) {
|
|
936
1089
|
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
|
937
1090
|
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
|
|
938
1091
|
} else {
|
|
@@ -958,9 +1111,9 @@ class Renderer {
|
|
|
958
1111
|
|
|
959
1112
|
gl.uniform2f(shu.offset, (ms.nx - 0.5) * 2, (0.5 - ms.ny) * 2);
|
|
960
1113
|
|
|
961
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this._pickingMaskCoordinatesBuffer);
|
|
962
|
-
gl.vertexAttribPointer(sha.coordinates, this._pickingMaskCoordinatesBuffer
|
|
963
|
-
gl.drawArrays(gl.POINTS, 0, this._pickingMaskCoordinatesBuffer
|
|
1114
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this._pickingMaskCoordinatesBuffer as WebGLBuffer);
|
|
1115
|
+
gl.vertexAttribPointer(sha.coordinates, this._pickingMaskCoordinatesBuffer!.itemSize, gl.FLOAT, false, 0, 0);
|
|
1116
|
+
gl.drawArrays(gl.POINTS, 0, this._pickingMaskCoordinatesBuffer!.numItems);
|
|
964
1117
|
|
|
965
1118
|
gl.enable(gl.DEPTH_TEST);
|
|
966
1119
|
|
|
@@ -986,20 +1139,20 @@ class Renderer {
|
|
|
986
1139
|
|
|
987
1140
|
gl.disable(gl.STENCIL_TEST);
|
|
988
1141
|
|
|
989
|
-
this.pickingFramebuffer
|
|
1142
|
+
this.pickingFramebuffer!.deactivate();
|
|
990
1143
|
}
|
|
991
1144
|
|
|
992
1145
|
/**
|
|
993
1146
|
* Draw picking objects framebuffer.
|
|
994
1147
|
* @private
|
|
995
1148
|
*/
|
|
996
|
-
_drawDistanceBuffer() {
|
|
997
|
-
this.distanceFramebuffer
|
|
1149
|
+
protected _drawDistanceBuffer() {
|
|
1150
|
+
this.distanceFramebuffer!.activate();
|
|
998
1151
|
|
|
999
1152
|
let h = this.handler;
|
|
1000
|
-
let gl = h.gl
|
|
1153
|
+
let gl = h.gl!;
|
|
1001
1154
|
|
|
1002
|
-
if (this.activeCamera
|
|
1155
|
+
if (this.activeCamera!.isFirstPass) {
|
|
1003
1156
|
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
|
1004
1157
|
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
|
|
1005
1158
|
} else {
|
|
@@ -1020,22 +1173,22 @@ class Renderer {
|
|
|
1020
1173
|
|
|
1021
1174
|
gl.enable(gl.BLEND);
|
|
1022
1175
|
|
|
1023
|
-
this.distanceFramebuffer
|
|
1176
|
+
this.distanceFramebuffer!.deactivate();
|
|
1024
1177
|
}
|
|
1025
1178
|
|
|
1026
|
-
_drawDepthBuffer() {
|
|
1027
|
-
this.depthFramebuffer
|
|
1179
|
+
protected _drawDepthBuffer() {
|
|
1180
|
+
this.depthFramebuffer!.activate();
|
|
1028
1181
|
|
|
1029
|
-
|
|
1030
|
-
|
|
1182
|
+
let h = this.handler;
|
|
1183
|
+
let gl = h.gl!;
|
|
1031
1184
|
|
|
1032
1185
|
gl.clearColor(0.0, 0.0, 0.0, 1.0);
|
|
1033
1186
|
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
|
|
1034
1187
|
|
|
1035
1188
|
gl.enable(gl.DEPTH_TEST);
|
|
1036
1189
|
|
|
1037
|
-
|
|
1038
|
-
|
|
1190
|
+
let dp = this._depthCallbacks;
|
|
1191
|
+
let i = dp.length;
|
|
1039
1192
|
while (i--) {
|
|
1040
1193
|
/**
|
|
1041
1194
|
* This callback renders depth frame.
|
|
@@ -1044,44 +1197,43 @@ class Renderer {
|
|
|
1044
1197
|
dp[i].callback.call(dp[i].sender);
|
|
1045
1198
|
}
|
|
1046
1199
|
|
|
1047
|
-
this.depthFramebuffer
|
|
1200
|
+
this.depthFramebuffer!.deactivate();
|
|
1048
1201
|
|
|
1049
1202
|
//
|
|
1050
1203
|
// PASS to depth visualization
|
|
1051
|
-
this.screenDepthFramebuffer
|
|
1052
|
-
|
|
1204
|
+
this.screenDepthFramebuffer!.activate();
|
|
1205
|
+
let sh = h.programs.depth, p = sh._program;
|
|
1053
1206
|
|
|
1054
|
-
gl = h.gl;
|
|
1055
1207
|
|
|
1056
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer);
|
|
1208
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this.screenFramePositionBuffer as WebGLBuffer);
|
|
1057
1209
|
gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
|
|
1058
1210
|
|
|
1059
1211
|
sh.activate();
|
|
1060
1212
|
|
|
1061
1213
|
gl.activeTexture(gl.TEXTURE0);
|
|
1062
|
-
gl.bindTexture(gl.TEXTURE_2D, this.depthFramebuffer
|
|
1214
|
+
gl.bindTexture(gl.TEXTURE_2D, this.depthFramebuffer!.textures[1]);
|
|
1063
1215
|
gl.uniform1i(p.uniforms.depthTexture, 0);
|
|
1064
1216
|
|
|
1065
1217
|
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
1066
1218
|
|
|
1067
|
-
this.screenDepthFramebuffer
|
|
1219
|
+
this.screenDepthFramebuffer!.deactivate();
|
|
1068
1220
|
}
|
|
1069
1221
|
|
|
1070
|
-
_readPickingBuffer() {
|
|
1071
|
-
this.pickingFramebuffer
|
|
1072
|
-
this.pickingFramebuffer
|
|
1073
|
-
this.pickingFramebuffer
|
|
1222
|
+
protected _readPickingBuffer() {
|
|
1223
|
+
this.pickingFramebuffer!.activate();
|
|
1224
|
+
this.pickingFramebuffer!.readAllPixels(this._tempPickingPix_);
|
|
1225
|
+
this.pickingFramebuffer!.deactivate();
|
|
1074
1226
|
}
|
|
1075
1227
|
|
|
1076
|
-
_readDistanceBuffer() {
|
|
1077
|
-
this.distanceFramebuffer
|
|
1078
|
-
this.distanceFramebuffer
|
|
1079
|
-
this.distanceFramebuffer
|
|
1228
|
+
protected _readDistanceBuffer() {
|
|
1229
|
+
this.distanceFramebuffer!.activate();
|
|
1230
|
+
this.distanceFramebuffer!.readAllPixels(this._tempDistancePix_);
|
|
1231
|
+
this.distanceFramebuffer!.deactivate();
|
|
1080
1232
|
}
|
|
1081
1233
|
|
|
1082
|
-
readPickingColor(x, y, outColor) {
|
|
1083
|
-
let w = this.pickingFramebuffer
|
|
1084
|
-
let h = this.pickingFramebuffer
|
|
1234
|
+
public readPickingColor(x: number, y: number, outColor: NumberArray3 | Uint8Array) {
|
|
1235
|
+
let w = this.pickingFramebuffer!.width;
|
|
1236
|
+
let h = this.pickingFramebuffer!.height;
|
|
1085
1237
|
|
|
1086
1238
|
x = Math.round(x * w);
|
|
1087
1239
|
y = Math.round(y * h);
|
|
@@ -1093,10 +1245,10 @@ class Renderer {
|
|
|
1093
1245
|
outColor[2] = this._tempPickingPix_[ind + 2];
|
|
1094
1246
|
}
|
|
1095
1247
|
|
|
1096
|
-
readDistanceColor(x, y, outColor) {
|
|
1248
|
+
public readDistanceColor(x: number, y: number, outColor: NumberArray3 | Uint8Array) {
|
|
1097
1249
|
|
|
1098
|
-
let w = this.distanceFramebuffer
|
|
1099
|
-
let h = this.distanceFramebuffer
|
|
1250
|
+
let w = this.distanceFramebuffer!.width;
|
|
1251
|
+
let h = this.distanceFramebuffer!.height;
|
|
1100
1252
|
|
|
1101
1253
|
x = Math.round(x * w);
|
|
1102
1254
|
y = Math.round(y * h);
|
|
@@ -1112,14 +1264,14 @@ class Renderer {
|
|
|
1112
1264
|
* Function starts renderer
|
|
1113
1265
|
* @public
|
|
1114
1266
|
*/
|
|
1115
|
-
start() {
|
|
1267
|
+
public start() {
|
|
1116
1268
|
if (!this._initialized) {
|
|
1117
1269
|
this.initialize();
|
|
1118
1270
|
}
|
|
1119
1271
|
this.handler.start();
|
|
1120
1272
|
}
|
|
1121
1273
|
|
|
1122
|
-
destroy() {
|
|
1274
|
+
public destroy() {
|
|
1123
1275
|
for (let i in this.controls) {
|
|
1124
1276
|
this.controls[i].remove();
|
|
1125
1277
|
}
|
|
@@ -1140,18 +1292,23 @@ class Renderer {
|
|
|
1140
1292
|
|
|
1141
1293
|
this.controlsBag = {};
|
|
1142
1294
|
|
|
1143
|
-
this.colorObjects
|
|
1295
|
+
this.colorObjects.clear();
|
|
1296
|
+
|
|
1297
|
+
// @ts-ignore
|
|
1298
|
+
this.colorObjects = null;
|
|
1144
1299
|
|
|
1145
1300
|
this._pickingCallbacks = [];
|
|
1146
1301
|
|
|
1147
1302
|
this.pickingFramebuffer = null;
|
|
1148
1303
|
|
|
1304
|
+
//@ts-ignore
|
|
1149
1305
|
this._tempPickingPix_ = null;
|
|
1150
1306
|
|
|
1151
1307
|
this.distanceFramebuffer = null;
|
|
1152
1308
|
|
|
1153
1309
|
this._distanceCallbacks = [];
|
|
1154
1310
|
|
|
1311
|
+
//@ts-ignore
|
|
1155
1312
|
this._tempDistancePix_ = null;
|
|
1156
1313
|
|
|
1157
1314
|
this._depthCallbacks = [];
|
|
@@ -1171,10 +1328,9 @@ class Renderer {
|
|
|
1171
1328
|
|
|
1172
1329
|
this._entityCollections = [];
|
|
1173
1330
|
|
|
1174
|
-
this.colorObjects = null;
|
|
1175
|
-
|
|
1176
1331
|
this.handler.destroy();
|
|
1177
1332
|
|
|
1333
|
+
// @ts-ignore
|
|
1178
1334
|
this.handler = null;
|
|
1179
1335
|
|
|
1180
1336
|
this._initialized = false;
|
|
@@ -1182,4 +1338,4 @@ class Renderer {
|
|
|
1182
1338
|
|
|
1183
1339
|
}
|
|
1184
1340
|
|
|
1185
|
-
export {
|
|
1341
|
+
export {Renderer};
|