@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,38 +1,23 @@
|
|
|
1
1
|
import * as math from "../math";
|
|
2
|
-
import {
|
|
3
|
-
import {Frustum} from "./Frustum";
|
|
4
|
-
import {Mat3
|
|
5
|
-
import {Mat4
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
type CameraEvents = ["viewchange", "moveend"];
|
|
12
|
-
|
|
13
|
-
const EVENT_NAMES: CameraEvents = [
|
|
2
|
+
import { createEvents } from "../Events";
|
|
3
|
+
import { Frustum } from "./Frustum";
|
|
4
|
+
import { Mat3 } from "../math/Mat3";
|
|
5
|
+
import { Mat4 } from "../math/Mat4";
|
|
6
|
+
import { Vec2 } from "../math/Vec2";
|
|
7
|
+
import { Vec3 } from "../math/Vec3";
|
|
8
|
+
import { Vec4 } from "../math/Vec4";
|
|
9
|
+
const EVENT_NAMES = [
|
|
14
10
|
/**
|
|
15
11
|
* When camera has been updated.
|
|
16
12
|
* @event og.Camera#viewchange
|
|
17
13
|
*/
|
|
18
14
|
"viewchange",
|
|
19
|
-
|
|
20
15
|
/**
|
|
21
16
|
* Camera is stopped.
|
|
22
17
|
* @event og.Camera#moveend
|
|
23
18
|
*/
|
|
24
19
|
"moveend"
|
|
25
20
|
];
|
|
26
|
-
|
|
27
|
-
export interface ICameraParams {
|
|
28
|
-
eye?: Vec3;
|
|
29
|
-
aspect?: number;
|
|
30
|
-
viewAngle?: number;
|
|
31
|
-
look?: Vec3;
|
|
32
|
-
up?: Vec3;
|
|
33
|
-
frustums?: NumberArray2[]
|
|
34
|
-
}
|
|
35
|
-
|
|
36
21
|
/**
|
|
37
22
|
* Camera class.
|
|
38
23
|
* @class
|
|
@@ -50,232 +35,87 @@ export interface ICameraParams {
|
|
|
50
35
|
* @fires EventsHandler<CameraEvents>#moveend
|
|
51
36
|
*/
|
|
52
37
|
class Camera {
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Assigned renderer
|
|
56
|
-
* @public
|
|
57
|
-
* @type {Renderer}
|
|
58
|
-
*/
|
|
59
|
-
public renderer: Renderer | null;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Camera events handler
|
|
63
|
-
* @public
|
|
64
|
-
* @type {Events}
|
|
65
|
-
*/
|
|
66
|
-
public events: EventsHandler<CameraEvents>;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Camera position.
|
|
70
|
-
* @public
|
|
71
|
-
* @type {Vec3}
|
|
72
|
-
*/
|
|
73
|
-
public eye: Vec3;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Camera RTE high position
|
|
77
|
-
* @public
|
|
78
|
-
* @type {Float32Array}
|
|
79
|
-
*/
|
|
80
|
-
public eyeHigh: Float32Array;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Camera RTE low position
|
|
84
|
-
* @public
|
|
85
|
-
* @type {Float32Array}
|
|
86
|
-
*/
|
|
87
|
-
public eyeLow: Float32Array;
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Aspect ratio.
|
|
91
|
-
* @protected
|
|
92
|
-
* @type {Number}
|
|
93
|
-
*/
|
|
94
|
-
protected _aspect: number;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Camera view angle in degrees
|
|
98
|
-
* @protected
|
|
99
|
-
* @type {Number}
|
|
100
|
-
*/
|
|
101
|
-
protected _viewAngle: number;
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Camera view matrix.
|
|
105
|
-
* @protected
|
|
106
|
-
* @type {Mat4}
|
|
107
|
-
*/
|
|
108
|
-
protected _viewMatrix: Mat4;
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Camera normal matrix.
|
|
112
|
-
* @protected
|
|
113
|
-
* @type {Mat3}
|
|
114
|
-
*/
|
|
115
|
-
protected _normalMatrix: Mat3;
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Camera right vector.
|
|
119
|
-
* @public
|
|
120
|
-
* @type {Vec3}
|
|
121
|
-
*/
|
|
122
|
-
public _r: Vec3;
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Camera up vector.
|
|
126
|
-
* @public
|
|
127
|
-
* @type {Vec3}
|
|
128
|
-
*/
|
|
129
|
-
public _u: Vec3;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Camera backward vector.
|
|
133
|
-
* @public
|
|
134
|
-
* @type {Vec3}
|
|
135
|
-
*/
|
|
136
|
-
public _b: Vec3;
|
|
137
|
-
|
|
138
|
-
protected _pr: Vec3;
|
|
139
|
-
protected _pu: Vec3;
|
|
140
|
-
protected _pb: Vec3;
|
|
141
|
-
protected _peye: Vec3;
|
|
142
|
-
|
|
143
|
-
public isMoving: boolean;
|
|
144
|
-
|
|
145
|
-
protected _tanViewAngle_hrad: number;
|
|
146
|
-
|
|
147
|
-
public _tanViewAngle_hradOneByHeight: number;
|
|
148
|
-
|
|
149
|
-
protected _projSizeConst: number;
|
|
150
|
-
|
|
151
|
-
public frustums: Frustum[];
|
|
152
|
-
|
|
153
|
-
public frustumColors: number[];
|
|
154
|
-
|
|
155
|
-
public FARTHEST_FRUSTUM_INDEX: number;
|
|
156
|
-
|
|
157
|
-
public currentFrustumIndex: number;
|
|
158
|
-
|
|
159
|
-
public isFirstPass: boolean;
|
|
160
|
-
|
|
161
|
-
constructor(renderer: Renderer | null, options: ICameraParams = {}) {
|
|
38
|
+
constructor(renderer, options = {}) {
|
|
162
39
|
this.renderer = renderer;
|
|
163
|
-
|
|
164
|
-
this.events = createEvents<CameraEvents>(EVENT_NAMES, this);
|
|
165
|
-
|
|
40
|
+
this.events = createEvents(EVENT_NAMES, this);
|
|
166
41
|
this.eye = options.eye || new Vec3();
|
|
167
|
-
|
|
168
42
|
this.eyeHigh = new Float32Array(3);
|
|
169
|
-
|
|
170
43
|
this.eyeLow = new Float32Array(3);
|
|
171
|
-
|
|
172
44
|
this._aspect = options.aspect || 1.0;
|
|
173
|
-
|
|
174
45
|
this._viewAngle = options.viewAngle || 47.0;
|
|
175
|
-
|
|
176
46
|
this._viewMatrix = new Mat4();
|
|
177
|
-
|
|
178
47
|
this._normalMatrix = new Mat3();
|
|
179
|
-
|
|
180
48
|
this._r = new Vec3(1.0, 0.0, 0.0);
|
|
181
|
-
|
|
182
49
|
this._u = new Vec3(0.0, 1.0, 0.0);
|
|
183
|
-
|
|
184
50
|
this._b = new Vec3(0.0, 0.0, 1.0);
|
|
185
|
-
|
|
186
51
|
// Previous frame values
|
|
187
52
|
this._pr = this._r.clone();
|
|
188
53
|
this._pu = this._u.clone();
|
|
189
54
|
this._pb = this._b.clone();
|
|
190
55
|
this._peye = this.eye.clone();
|
|
191
56
|
this.isMoving = false;
|
|
192
|
-
|
|
193
57
|
this._tanViewAngle_hrad = 0.0;
|
|
194
58
|
this._tanViewAngle_hradOneByHeight = 0.0;
|
|
195
|
-
|
|
196
59
|
this.frustums = [];
|
|
197
|
-
|
|
198
60
|
this.frustumColors = [];
|
|
199
|
-
|
|
200
61
|
if (options.frustums) {
|
|
201
62
|
for (let i = 0, len = options.frustums.length; i < len; i++) {
|
|
202
63
|
let fi = options.frustums[i];
|
|
203
|
-
|
|
204
64
|
let fr = new Frustum({
|
|
205
65
|
fov: this._viewAngle,
|
|
206
66
|
aspect: this._aspect,
|
|
207
67
|
near: fi[0],
|
|
208
68
|
far: fi[1]
|
|
209
69
|
});
|
|
210
|
-
|
|
211
70
|
fr.cameraFrustumIndex = this.frustums.length;
|
|
212
71
|
this.frustums.push(fr);
|
|
213
72
|
//this.frustumColors.push.apply(this.frustumColors, fr._pickingColorU);
|
|
214
73
|
this.frustumColors.push(fr._pickingColorU[0], fr._pickingColorU[1], fr._pickingColorU[2]);
|
|
215
74
|
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
let near = 1.0, far = 10000.0;
|
|
220
78
|
let fr = new Frustum({
|
|
221
79
|
fov: this._viewAngle,
|
|
222
80
|
aspect: this._aspect,
|
|
223
81
|
near: near,
|
|
224
82
|
far: far
|
|
225
83
|
});
|
|
226
|
-
|
|
227
84
|
fr.cameraFrustumIndex = this.frustums.length;
|
|
228
85
|
this.frustums.push(fr);
|
|
229
86
|
//this.frustumColors.push.apply(this.frustumColors, fr._pickingColorU);
|
|
230
87
|
this.frustumColors.push(fr._pickingColorU[0], fr._pickingColorU[1], fr._pickingColorU[2]);
|
|
231
88
|
}
|
|
232
|
-
|
|
233
89
|
this.FARTHEST_FRUSTUM_INDEX = this.frustums.length - 1;
|
|
234
|
-
|
|
235
90
|
this.currentFrustumIndex = 0;
|
|
236
|
-
|
|
237
91
|
this.isFirstPass = false;
|
|
238
|
-
|
|
239
92
|
this._projSizeConst = 0;
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
options.up || new Vec3(0.0, 1.0, 0.0)
|
|
245
|
-
);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
public checkMoveEnd() {
|
|
249
|
-
let r = this._r,
|
|
250
|
-
u = this._u,
|
|
251
|
-
b = this._b,
|
|
252
|
-
eye = this.eye;
|
|
253
|
-
|
|
93
|
+
this.set(options.eye || new Vec3(0.0, 0.0, 1.0), options.look || new Vec3(), options.up || new Vec3(0.0, 1.0, 0.0));
|
|
94
|
+
}
|
|
95
|
+
checkMoveEnd() {
|
|
96
|
+
let r = this._r, u = this._u, b = this._b, eye = this.eye;
|
|
254
97
|
if (this._peye.equal(eye) && this._pr.equal(r) && this._pu.equal(u) && this._pb.equal(b)) {
|
|
255
98
|
if (this.isMoving) {
|
|
256
99
|
this.events.dispatch(this.events.moveend, this);
|
|
257
100
|
}
|
|
258
101
|
this.isMoving = false;
|
|
259
|
-
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
260
104
|
this.isMoving = true;
|
|
261
105
|
}
|
|
262
|
-
|
|
263
106
|
this._pr.copy(r);
|
|
264
107
|
this._pu.copy(u);
|
|
265
108
|
this._pb.copy(b);
|
|
266
109
|
this._peye.copy(eye);
|
|
267
110
|
}
|
|
268
|
-
|
|
269
|
-
public bindRenderer(renderer: Renderer) {
|
|
111
|
+
bindRenderer(renderer) {
|
|
270
112
|
this.renderer = renderer;
|
|
271
113
|
for (let i = 0; i < this.frustums.length; i++) {
|
|
272
|
-
this.renderer.assignPickingColor
|
|
114
|
+
this.renderer.assignPickingColor(this.frustums[i]);
|
|
273
115
|
}
|
|
274
116
|
this._aspect = this.renderer.handler.getClientAspect();
|
|
275
|
-
|
|
276
117
|
this._setProj(this._viewAngle, this._aspect);
|
|
277
118
|
}
|
|
278
|
-
|
|
279
119
|
/**
|
|
280
120
|
* Camera initialization.
|
|
281
121
|
* @public
|
|
@@ -287,146 +127,112 @@ class Camera {
|
|
|
287
127
|
* @param {Vec3} [options.look] - Camera look position. Default (0,0,0)
|
|
288
128
|
* @param {Vec3} [options.up] - Camera eye position. Default (0,1,0)
|
|
289
129
|
*/
|
|
290
|
-
|
|
291
|
-
|
|
130
|
+
_init(options) {
|
|
292
131
|
this._setProj(this._viewAngle, this._aspect);
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
options.look || new Vec3(),
|
|
297
|
-
options.up || new Vec3(0.0, 1.0, 0.0)
|
|
298
|
-
);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
public getUp(): Vec3 {
|
|
132
|
+
this.set(options.eye || new Vec3(0.0, 0.0, 1.0), options.look || new Vec3(), options.up || new Vec3(0.0, 1.0, 0.0));
|
|
133
|
+
}
|
|
134
|
+
getUp() {
|
|
302
135
|
return this._u.clone();
|
|
303
136
|
}
|
|
304
|
-
|
|
305
|
-
public getDown(): Vec3 {
|
|
137
|
+
getDown() {
|
|
306
138
|
return this._u.negateTo();
|
|
307
139
|
}
|
|
308
|
-
|
|
309
|
-
public getRight(): Vec3 {
|
|
140
|
+
getRight() {
|
|
310
141
|
return this._r.clone();
|
|
311
142
|
}
|
|
312
|
-
|
|
313
|
-
public getLeft(): Vec3 {
|
|
143
|
+
getLeft() {
|
|
314
144
|
return this._r.negateTo();
|
|
315
145
|
}
|
|
316
|
-
|
|
317
|
-
public getForward(): Vec3 {
|
|
146
|
+
getForward() {
|
|
318
147
|
return this._b.negateTo();
|
|
319
148
|
}
|
|
320
|
-
|
|
321
|
-
public getBackward(): Vec3 {
|
|
149
|
+
getBackward() {
|
|
322
150
|
return this._b.clone();
|
|
323
151
|
}
|
|
324
|
-
|
|
325
152
|
/**
|
|
326
153
|
* Updates camera view space
|
|
327
154
|
* @public
|
|
328
155
|
* @virtual
|
|
329
156
|
*/
|
|
330
|
-
|
|
331
|
-
let u = this._r,
|
|
332
|
-
v = this._u,
|
|
333
|
-
n = this._b,
|
|
334
|
-
eye = this.eye;
|
|
335
|
-
|
|
157
|
+
update() {
|
|
158
|
+
let u = this._r, v = this._u, n = this._b, eye = this.eye;
|
|
336
159
|
Vec3.doubleToTwoFloat32Array(eye, this.eyeHigh, this.eyeLow);
|
|
337
|
-
|
|
338
160
|
this._viewMatrix.set([
|
|
339
161
|
u.x, v.x, n.x, 0.0,
|
|
340
162
|
u.y, v.y, n.y, 0.0,
|
|
341
163
|
u.z, v.z, n.z, 0.0,
|
|
342
164
|
-eye.dot(u), -eye.dot(v), -eye.dot(n), 1.0
|
|
343
165
|
]);
|
|
344
|
-
|
|
345
166
|
// do not clean up, someday it will be using
|
|
346
167
|
//this._normalMatrix = this._viewMatrix.toMatrix3(); // this._viewMatrix.toInverseMatrix3().transposeTo();
|
|
347
|
-
|
|
348
168
|
for (let i = 0, len = this.frustums.length; i < len; i++) {
|
|
349
169
|
this.frustums[i].setViewMatrix(this._viewMatrix);
|
|
350
170
|
}
|
|
351
|
-
|
|
352
171
|
this.events.dispatch(this.events.viewchange, this);
|
|
353
172
|
}
|
|
354
|
-
|
|
355
173
|
/**
|
|
356
174
|
* Refresh camera matrices
|
|
357
175
|
* @public
|
|
358
176
|
*/
|
|
359
|
-
|
|
177
|
+
refresh() {
|
|
360
178
|
this._setProj(this._viewAngle, this._aspect);
|
|
361
179
|
this.update();
|
|
362
180
|
}
|
|
363
|
-
|
|
364
181
|
/**
|
|
365
182
|
* Sets aspect ratio
|
|
366
183
|
* @public
|
|
367
184
|
* @param {Number} aspect - Camera aspect ratio
|
|
368
185
|
*/
|
|
369
|
-
|
|
186
|
+
setAspectRatio(aspect) {
|
|
370
187
|
this._aspect = aspect;
|
|
371
188
|
this.refresh();
|
|
372
189
|
}
|
|
373
|
-
|
|
374
190
|
/**
|
|
375
191
|
* Returns aspect ratio
|
|
376
192
|
* @public
|
|
377
193
|
* @returns {number} - Aspect ratio
|
|
378
194
|
*/
|
|
379
|
-
|
|
195
|
+
getAspectRatio() {
|
|
380
196
|
return this._aspect;
|
|
381
197
|
}
|
|
382
|
-
|
|
383
198
|
/**
|
|
384
199
|
* Sets up camera projection
|
|
385
200
|
* @public
|
|
386
201
|
* @param {number} angle - Camera view angle
|
|
387
202
|
* @param {number} aspect - Screen aspect ratio
|
|
388
203
|
*/
|
|
389
|
-
|
|
204
|
+
_setProj(angle, aspect) {
|
|
390
205
|
this._viewAngle = angle;
|
|
391
206
|
this._aspect = aspect;
|
|
392
207
|
this._tanViewAngle_hrad = Math.tan(angle * math.RADIANS_HALF);
|
|
393
208
|
this._tanViewAngle_hradOneByHeight =
|
|
394
|
-
this._tanViewAngle_hrad * this.renderer
|
|
395
|
-
let c = this.renderer
|
|
209
|
+
this._tanViewAngle_hrad * this.renderer.handler._oneByHeight;
|
|
210
|
+
let c = this.renderer.handler.canvas;
|
|
396
211
|
this._projSizeConst = Math.min(c.clientWidth < 512 ? 512 : c.clientWidth, c.clientHeight < 512 ? 512 : c.clientHeight) / (angle * math.RADIANS);
|
|
397
212
|
for (let i = 0, len = this.frustums.length; i < len; i++) {
|
|
398
|
-
this.frustums[i].setProjectionMatrix(
|
|
399
|
-
angle,
|
|
400
|
-
aspect,
|
|
401
|
-
this.frustums[i].near,
|
|
402
|
-
this.frustums[i].far
|
|
403
|
-
);
|
|
213
|
+
this.frustums[i].setProjectionMatrix(angle, aspect, this.frustums[i].near, this.frustums[i].far);
|
|
404
214
|
}
|
|
405
215
|
}
|
|
406
|
-
|
|
407
216
|
/**
|
|
408
217
|
* Sets camera view angle in degrees
|
|
409
218
|
* @public
|
|
410
219
|
* @param {number} angle - View angle
|
|
411
220
|
*/
|
|
412
|
-
|
|
221
|
+
setViewAngle(angle) {
|
|
413
222
|
this._viewAngle = angle;
|
|
414
223
|
this.refresh();
|
|
415
224
|
}
|
|
416
|
-
|
|
417
225
|
/**
|
|
418
226
|
* Gets camera view angle in degrees
|
|
419
227
|
* @public
|
|
420
228
|
* @returns {number} angle -
|
|
421
229
|
*/
|
|
422
|
-
|
|
230
|
+
getViewAngle() {
|
|
423
231
|
return this._viewAngle;
|
|
424
232
|
}
|
|
425
|
-
|
|
426
|
-
public get viewAngle(): number {
|
|
233
|
+
get viewAngle() {
|
|
427
234
|
return this._viewAngle;
|
|
428
235
|
}
|
|
429
|
-
|
|
430
236
|
/**
|
|
431
237
|
* Sets camera to eye position
|
|
432
238
|
* @public
|
|
@@ -435,7 +241,7 @@ class Camera {
|
|
|
435
241
|
* @param {Vec3} up - Camera up vector
|
|
436
242
|
* @returns {Camera} - This camera
|
|
437
243
|
*/
|
|
438
|
-
|
|
244
|
+
set(eye, look, up) {
|
|
439
245
|
this.eye.x = eye.x;
|
|
440
246
|
this.eye.y = eye.y;
|
|
441
247
|
this.eye.z = eye.z;
|
|
@@ -450,21 +256,19 @@ class Camera {
|
|
|
450
256
|
this._u.copy(this._b.cross(this._r));
|
|
451
257
|
return this;
|
|
452
258
|
}
|
|
453
|
-
|
|
454
259
|
/**
|
|
455
260
|
* Sets camera look point
|
|
456
261
|
* @public
|
|
457
262
|
* @param {Vec3} look - Look point
|
|
458
263
|
* @param {Vec3} [up] - Camera up vector otherwise camera current up vector(this._u)
|
|
459
264
|
*/
|
|
460
|
-
|
|
265
|
+
look(look, up) {
|
|
461
266
|
this._b.set(this.eye.x - look.x, this.eye.y - look.y, this.eye.z - look.z);
|
|
462
267
|
this._r.copy((up || this._u).cross(this._b));
|
|
463
268
|
this._b.normalize();
|
|
464
269
|
this._r.normalize();
|
|
465
270
|
this._u.copy(this._b.cross(this._r));
|
|
466
271
|
}
|
|
467
|
-
|
|
468
272
|
/**
|
|
469
273
|
* Slides camera to vector d - (du, dv, dn)
|
|
470
274
|
* @public
|
|
@@ -472,75 +276,47 @@ class Camera {
|
|
|
472
276
|
* @param {number} dv - delta Y
|
|
473
277
|
* @param {number} dn - delta Z
|
|
474
278
|
*/
|
|
475
|
-
|
|
279
|
+
slide(du, dv, dn) {
|
|
476
280
|
this.eye.x += du * this._r.x + dv * this._u.x + dn * this._b.x;
|
|
477
281
|
this.eye.y += du * this._r.y + dv * this._u.y + dn * this._b.y;
|
|
478
282
|
this.eye.z += du * this._r.z + dv * this._u.z + dn * this._b.z;
|
|
479
283
|
}
|
|
480
|
-
|
|
481
284
|
/**
|
|
482
285
|
* Roll the camera to the angle in degrees
|
|
483
286
|
* @public
|
|
484
287
|
* @param {number} angle - Delta roll angle in degrees
|
|
485
288
|
*/
|
|
486
|
-
|
|
289
|
+
roll(angle) {
|
|
487
290
|
let cs = Math.cos(math.RADIANS * angle);
|
|
488
291
|
let sn = Math.sin(math.RADIANS * angle);
|
|
489
292
|
let t = this._r.clone();
|
|
490
|
-
this._r.set(
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
cs * t.z - sn * this._u.z
|
|
494
|
-
);
|
|
495
|
-
this._u.set(
|
|
496
|
-
sn * t.x + cs * this._u.x,
|
|
497
|
-
sn * t.y + cs * this._u.y,
|
|
498
|
-
sn * t.z + cs * this._u.z
|
|
499
|
-
);
|
|
500
|
-
}
|
|
501
|
-
|
|
293
|
+
this._r.set(cs * t.x - sn * this._u.x, cs * t.y - sn * this._u.y, cs * t.z - sn * this._u.z);
|
|
294
|
+
this._u.set(sn * t.x + cs * this._u.x, sn * t.y + cs * this._u.y, sn * t.z + cs * this._u.z);
|
|
295
|
+
}
|
|
502
296
|
/**
|
|
503
297
|
* Pitch the camera to the angle in degrees
|
|
504
298
|
* @public
|
|
505
299
|
* @param {number} angle - Delta pitch angle in degrees
|
|
506
300
|
*/
|
|
507
|
-
|
|
301
|
+
pitch(angle) {
|
|
508
302
|
let cs = Math.cos(math.RADIANS * angle);
|
|
509
303
|
let sn = Math.sin(math.RADIANS * angle);
|
|
510
304
|
let t = this._b.clone();
|
|
511
|
-
this._b.set(
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
cs * t.z - sn * this._u.z
|
|
515
|
-
);
|
|
516
|
-
this._u.set(
|
|
517
|
-
sn * t.x + cs * this._u.x,
|
|
518
|
-
sn * t.y + cs * this._u.y,
|
|
519
|
-
sn * t.z + cs * this._u.z
|
|
520
|
-
);
|
|
521
|
-
}
|
|
522
|
-
|
|
305
|
+
this._b.set(cs * t.x - sn * this._u.x, cs * t.y - sn * this._u.y, cs * t.z - sn * this._u.z);
|
|
306
|
+
this._u.set(sn * t.x + cs * this._u.x, sn * t.y + cs * this._u.y, sn * t.z + cs * this._u.z);
|
|
307
|
+
}
|
|
523
308
|
/**
|
|
524
309
|
* Yaw the camera to the angle in degrees
|
|
525
310
|
* @public
|
|
526
311
|
* @param {number} angle - Delta yaw angle in degrees
|
|
527
312
|
*/
|
|
528
|
-
|
|
313
|
+
yaw(angle) {
|
|
529
314
|
let cs = Math.cos(math.RADIANS * angle);
|
|
530
315
|
let sn = Math.sin(math.RADIANS * angle);
|
|
531
316
|
let t = this._r.clone();
|
|
532
|
-
this._r.set(
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
cs * t.z - sn * this._b.z
|
|
536
|
-
);
|
|
537
|
-
this._b.set(
|
|
538
|
-
sn * t.x + cs * this._b.x,
|
|
539
|
-
sn * t.y + cs * this._b.y,
|
|
540
|
-
sn * t.z + cs * this._b.z
|
|
541
|
-
);
|
|
542
|
-
}
|
|
543
|
-
|
|
317
|
+
this._r.set(cs * t.x - sn * this._b.x, cs * t.y - sn * this._b.y, cs * t.z - sn * this._b.z);
|
|
318
|
+
this._b.set(sn * t.x + cs * this._b.x, sn * t.y + cs * this._b.y, sn * t.z + cs * this._b.z);
|
|
319
|
+
}
|
|
544
320
|
/**
|
|
545
321
|
* Returns normal vector direction to the unprojected screen point from camera eye
|
|
546
322
|
* @public
|
|
@@ -548,32 +324,22 @@ class Camera {
|
|
|
548
324
|
* @param {number} y - Screen Y coordinate
|
|
549
325
|
* @returns {Vec3} - Direction vector
|
|
550
326
|
*/
|
|
551
|
-
|
|
552
|
-
let c = this.renderer
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
let px = (x - w) / w,
|
|
557
|
-
py = -(y - h) / h;
|
|
558
|
-
|
|
559
|
-
let world1 = this.frustums[0].inverseProjectionViewMatrix.mulVec4(new Vec4(px, py, -1.0, 1.0)).affinity(),
|
|
560
|
-
world2 = this.frustums[0].inverseProjectionViewMatrix.mulVec4(new Vec4(px, py, 0.0, 1.0)).affinity();
|
|
561
|
-
|
|
327
|
+
unproject(x, y) {
|
|
328
|
+
let c = this.renderer.handler.canvas, w = c.width * 0.5, h = c.height * 0.5;
|
|
329
|
+
let px = (x - w) / w, py = -(y - h) / h;
|
|
330
|
+
let world1 = this.frustums[0].inverseProjectionViewMatrix.mulVec4(new Vec4(px, py, -1.0, 1.0)).affinity(), world2 = this.frustums[0].inverseProjectionViewMatrix.mulVec4(new Vec4(px, py, 0.0, 1.0)).affinity();
|
|
562
331
|
return world2.subA(world1).toVec3().normalize();
|
|
563
332
|
}
|
|
564
|
-
|
|
565
333
|
/**
|
|
566
334
|
* Gets projected 3d point to the 2d screen coordinates
|
|
567
335
|
* @public
|
|
568
336
|
* @param {Vec3} v - Cartesian 3d coordinates
|
|
569
337
|
* @returns {Vec2} - Screen point coordinates
|
|
570
338
|
*/
|
|
571
|
-
|
|
572
|
-
let r = this.frustums[0].projectionViewMatrix.mulVec4(v.toVec4()),
|
|
573
|
-
c = this.renderer!.handler.canvas!;
|
|
339
|
+
project(v) {
|
|
340
|
+
let r = this.frustums[0].projectionViewMatrix.mulVec4(v.toVec4()), c = this.renderer.handler.canvas;
|
|
574
341
|
return new Vec2((1 + r.x / r.w) * c.width * 0.5, (1 - r.y / r.w) * c.height * 0.5);
|
|
575
342
|
}
|
|
576
|
-
|
|
577
343
|
/**
|
|
578
344
|
* Rotates camera around center point
|
|
579
345
|
* @public
|
|
@@ -583,21 +349,18 @@ class Camera {
|
|
|
583
349
|
* @param {Vec3} [center] - Point that the camera rotates around
|
|
584
350
|
* @param {Vec3} [up] - Camera up vector
|
|
585
351
|
*/
|
|
586
|
-
|
|
352
|
+
rotateAround(angle, isArc, center, up) {
|
|
587
353
|
center = center || Vec3.ZERO;
|
|
588
354
|
up = up || Vec3.UP;
|
|
589
|
-
|
|
590
355
|
let rot = new Mat4().setRotation(isArc ? this._u : up, angle);
|
|
591
356
|
let tr = new Mat4().setIdentity().translate(center);
|
|
592
357
|
let ntr = new Mat4().setIdentity().translate(center.negateTo());
|
|
593
358
|
let trm = tr.mul(rot).mul(ntr);
|
|
594
|
-
|
|
595
359
|
this.eye = trm.mulVec3(this.eye);
|
|
596
360
|
this._u = rot.mulVec3(this._u).normalize();
|
|
597
361
|
this._r = rot.mulVec3(this._r).normalize();
|
|
598
362
|
this._b = rot.mulVec3(this._b).normalize();
|
|
599
363
|
}
|
|
600
|
-
|
|
601
364
|
/**
|
|
602
365
|
* Rotates camera around center point by horizontal.
|
|
603
366
|
* @public
|
|
@@ -607,19 +370,17 @@ class Camera {
|
|
|
607
370
|
* @param {Vec3} [center] - Point that the camera rotates around.
|
|
608
371
|
* @param {Vec3} [up] - Camera up vector.
|
|
609
372
|
*/
|
|
610
|
-
|
|
373
|
+
rotateHorizontal(angle, isArc, center, up) {
|
|
611
374
|
this.rotateAround(angle, isArc, center, up);
|
|
612
375
|
}
|
|
613
|
-
|
|
614
376
|
/**
|
|
615
377
|
* Rotates camera around center point by vertical.
|
|
616
378
|
* @param {number} angle - Rotation angle in radians.
|
|
617
379
|
* @param {Vec3} [center] - Point that the camera rotates around.
|
|
618
380
|
*/
|
|
619
|
-
|
|
381
|
+
rotateVertical(angle, center) {
|
|
620
382
|
this.rotateAround(angle, false, center, this._r);
|
|
621
383
|
}
|
|
622
|
-
|
|
623
384
|
/**
|
|
624
385
|
* Gets 3d size factor. Uses in LOD distance calculation.
|
|
625
386
|
* @public
|
|
@@ -627,76 +388,66 @@ class Camera {
|
|
|
627
388
|
* @param {Vec3} r - Far point.
|
|
628
389
|
* @returns {number} - Size factor.
|
|
629
390
|
*/
|
|
630
|
-
|
|
391
|
+
projectedSize(p, r) {
|
|
631
392
|
return Math.atan(r / this.eye.distance(p)) * this._projSizeConst;
|
|
632
393
|
}
|
|
633
|
-
|
|
634
394
|
/**
|
|
635
395
|
* Returns model matrix.
|
|
636
396
|
* @public
|
|
637
397
|
* @returns {NumberArray16} - View matrix.
|
|
638
398
|
*/
|
|
639
|
-
|
|
399
|
+
getViewMatrix() {
|
|
640
400
|
return this._viewMatrix._m;
|
|
641
401
|
}
|
|
642
|
-
|
|
643
402
|
/**
|
|
644
403
|
* Returns normal matrix.
|
|
645
404
|
* @public
|
|
646
405
|
* @returns {NumberArray9} - Normal matrix.
|
|
647
406
|
*/
|
|
648
|
-
|
|
407
|
+
getNormalMatrix() {
|
|
649
408
|
return this._normalMatrix._m;
|
|
650
409
|
}
|
|
651
|
-
|
|
652
|
-
public setCurrentFrustum(k: number) {
|
|
410
|
+
setCurrentFrustum(k) {
|
|
653
411
|
this.currentFrustumIndex = k;
|
|
654
412
|
this.isFirstPass = k === this.FARTHEST_FRUSTUM_INDEX;
|
|
655
413
|
}
|
|
656
|
-
|
|
657
|
-
public getCurrentFrustum(): number {
|
|
414
|
+
getCurrentFrustum() {
|
|
658
415
|
return this.currentFrustumIndex;
|
|
659
416
|
}
|
|
660
|
-
|
|
661
|
-
public get frustum(): Frustum {
|
|
417
|
+
get frustum() {
|
|
662
418
|
return this.frustums[this.currentFrustumIndex];
|
|
663
419
|
}
|
|
664
|
-
|
|
665
420
|
/**
|
|
666
421
|
* Returns projection matrix.
|
|
667
422
|
* @public
|
|
668
423
|
* @returns {Mat4} - Projection matrix.
|
|
669
424
|
*/
|
|
670
|
-
|
|
425
|
+
getProjectionMatrix() {
|
|
671
426
|
return this.frustum.projectionMatrix._m;
|
|
672
427
|
}
|
|
673
|
-
|
|
674
428
|
/**
|
|
675
429
|
* Returns projection and model matrix product.
|
|
676
430
|
* @public
|
|
677
431
|
* @return {Mat4} - Projection-view matrix.
|
|
678
432
|
*/
|
|
679
|
-
|
|
433
|
+
getProjectionViewMatrix() {
|
|
680
434
|
return this.frustum.projectionViewMatrix._m;
|
|
681
435
|
}
|
|
682
|
-
|
|
683
436
|
/**
|
|
684
437
|
* Returns inverse projection and model matrix product.
|
|
685
438
|
* @public
|
|
686
439
|
* @returns {Mat4} - Inverse projection-view matrix.
|
|
687
440
|
*/
|
|
688
|
-
|
|
441
|
+
getInverseProjectionViewMatrix() {
|
|
689
442
|
return this.frustum.inverseProjectionViewMatrix._m;
|
|
690
443
|
}
|
|
691
|
-
|
|
692
444
|
/**
|
|
693
445
|
* Returns inverse projection matrix.
|
|
694
446
|
* @public
|
|
695
447
|
* @returns {Mat4} - Inverse projection-view matrix.
|
|
696
448
|
*/
|
|
697
|
-
|
|
449
|
+
getInverseProjectionMatrix() {
|
|
698
450
|
return this.frustum.inverseProjectionMatrix._m;
|
|
699
451
|
}
|
|
700
452
|
}
|
|
701
|
-
|
|
702
|
-
export {Camera};
|
|
453
|
+
export { Camera };
|