@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,20 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
import {Mat4} from "./Mat4";
|
|
2
|
+
import {Vec3} from "./Vec3";
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
export type NumberArray9 = [
|
|
5
|
+
number, number, number,
|
|
6
|
+
number, number, number,
|
|
7
|
+
number, number, number
|
|
8
|
+
];
|
|
5
9
|
|
|
6
10
|
/**
|
|
7
11
|
* Class represents a 3x3 matrix.
|
|
8
12
|
* @class
|
|
9
13
|
*/
|
|
10
14
|
export class Mat3 {
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A 3x3 matrix, indexing as a column-major order array.
|
|
18
|
+
* @public
|
|
19
|
+
* @type {Array.<number>}
|
|
20
|
+
*/
|
|
21
|
+
public _m: NumberArray9 = [
|
|
22
|
+
0, 0, 0,
|
|
23
|
+
0, 0, 0,
|
|
24
|
+
0, 0, 0
|
|
25
|
+
];
|
|
26
|
+
|
|
11
27
|
constructor() {
|
|
12
|
-
/**
|
|
13
|
-
* A 3x3 matrix, indexable as a column-major order array.
|
|
14
|
-
* @public
|
|
15
|
-
* @type {Array.<number>}
|
|
16
|
-
*/
|
|
17
|
-
this._m = new Array(9);
|
|
18
28
|
}
|
|
19
29
|
|
|
20
30
|
/**
|
|
@@ -23,7 +33,7 @@ export class Mat3 {
|
|
|
23
33
|
* @param {Array.<number>} m - Matrix array.
|
|
24
34
|
* @returns {Mat3}
|
|
25
35
|
*/
|
|
26
|
-
set(m) {
|
|
36
|
+
public set(m: NumberArray9): Mat3 {
|
|
27
37
|
this._m[0] = m[0];
|
|
28
38
|
this._m[1] = m[1];
|
|
29
39
|
this._m[2] = m[2];
|
|
@@ -41,9 +51,9 @@ export class Mat3 {
|
|
|
41
51
|
* @public
|
|
42
52
|
* @returns {Mat3}
|
|
43
53
|
*/
|
|
44
|
-
clone() {
|
|
45
|
-
|
|
46
|
-
res.set(this);
|
|
54
|
+
public clone(): Mat3 {
|
|
55
|
+
let res = new Mat3();
|
|
56
|
+
res.set(this._m);
|
|
47
57
|
return res;
|
|
48
58
|
}
|
|
49
59
|
|
|
@@ -53,18 +63,18 @@ export class Mat3 {
|
|
|
53
63
|
* @param {Mat3} a - Matrix to copy.
|
|
54
64
|
* @returns {Mat3}
|
|
55
65
|
*/
|
|
56
|
-
copy(a) {
|
|
66
|
+
public copy(a: Mat3): Mat3 {
|
|
57
67
|
return this.set(a._m);
|
|
58
68
|
}
|
|
59
69
|
|
|
60
70
|
/**
|
|
61
|
-
* Creates
|
|
71
|
+
* Creates transposed matrix from the current.
|
|
62
72
|
* @public
|
|
63
73
|
* @returns {Mat3}
|
|
64
74
|
*/
|
|
65
|
-
transposeTo() {
|
|
66
|
-
|
|
67
|
-
|
|
75
|
+
public transposeTo(): Mat3 {
|
|
76
|
+
let res = new Mat3();
|
|
77
|
+
let m = this._m;
|
|
68
78
|
res._m[0] = m[0];
|
|
69
79
|
res._m[1] = m[3];
|
|
70
80
|
res._m[2] = m[6];
|
|
@@ -82,7 +92,7 @@ export class Mat3 {
|
|
|
82
92
|
* @public
|
|
83
93
|
* @returns {Mat3}
|
|
84
94
|
*/
|
|
85
|
-
setIdentity() {
|
|
95
|
+
public setIdentity(): Mat3 {
|
|
86
96
|
this._m[0] = 1;
|
|
87
97
|
this._m[1] = 0;
|
|
88
98
|
this._m[2] = 0;
|
|
@@ -101,11 +111,14 @@ export class Mat3 {
|
|
|
101
111
|
* @params {Vec3} p - 3d vector.
|
|
102
112
|
* @returns {Vec3}
|
|
103
113
|
*/
|
|
104
|
-
mulVec(p) {
|
|
105
|
-
|
|
114
|
+
public mulVec(p: Vec3): Vec3 {
|
|
115
|
+
|
|
116
|
+
let d = p.x,
|
|
106
117
|
e = p.y,
|
|
107
118
|
g = p.z;
|
|
108
|
-
|
|
119
|
+
|
|
120
|
+
let m = this._m;
|
|
121
|
+
|
|
109
122
|
return new Vec3(
|
|
110
123
|
m[0] * d + m[3] * e + m[6] * g,
|
|
111
124
|
m[1] * d + m[4] * e + m[7] * g,
|
|
@@ -118,10 +131,12 @@ export class Mat3 {
|
|
|
118
131
|
* @public
|
|
119
132
|
* @returns {Mat4}
|
|
120
133
|
*/
|
|
121
|
-
toMatrix4() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
134
|
+
public toMatrix4(): Mat4 {
|
|
135
|
+
|
|
136
|
+
let res = new Mat4();
|
|
137
|
+
let b = res._m;
|
|
138
|
+
let a = this._m;
|
|
139
|
+
|
|
125
140
|
b[0] = a[0];
|
|
126
141
|
b[1] = a[1];
|
|
127
142
|
b[2] = a[2];
|
|
@@ -138,6 +153,7 @@ export class Mat3 {
|
|
|
138
153
|
b[13] = 0;
|
|
139
154
|
b[14] = 0;
|
|
140
155
|
b[15] = 1;
|
|
156
|
+
|
|
141
157
|
return res;
|
|
142
158
|
}
|
|
143
159
|
}
|
|
@@ -147,6 +163,6 @@ export class Mat3 {
|
|
|
147
163
|
* @static
|
|
148
164
|
* @return {Mat3}
|
|
149
165
|
*/
|
|
150
|
-
export function mat3() {
|
|
166
|
+
export function mat3(): Mat3 {
|
|
151
167
|
return new Mat3();
|
|
152
168
|
}
|
|
@@ -1,22 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import {Mat3} from "./Mat3";
|
|
2
|
+
import {Quat} from "./Quat";
|
|
3
|
+
import {Vec3} from "./Vec3";
|
|
4
|
+
import {Vec4} from "./Vec4";
|
|
5
|
+
|
|
6
|
+
export type NumberArray16 = [
|
|
7
|
+
number, number, number, number,
|
|
8
|
+
number, number, number, number,
|
|
9
|
+
number, number, number, number,
|
|
10
|
+
number, number, number, number
|
|
11
|
+
];
|
|
7
12
|
|
|
8
13
|
/**
|
|
9
14
|
* Class represents a 4x4 matrix.
|
|
10
15
|
* @class
|
|
11
16
|
*/
|
|
12
17
|
export class Mat4 {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A 4x4 matrix, index-able as a column-major order array.
|
|
21
|
+
* @public
|
|
22
|
+
* @type {Array.<number>}
|
|
23
|
+
*/
|
|
24
|
+
public _m: NumberArray16 = [
|
|
25
|
+
0, 0, 0, 0,
|
|
26
|
+
0, 0, 0, 0,
|
|
27
|
+
0, 0, 0, 0,
|
|
28
|
+
0, 0, 0, 0
|
|
29
|
+
];
|
|
30
|
+
|
|
13
31
|
constructor() {
|
|
14
|
-
/**
|
|
15
|
-
* A 4x4 matrix, indexable as a column-major order array.
|
|
16
|
-
* @public
|
|
17
|
-
* @type {Array.<number>}
|
|
18
|
-
*/
|
|
19
|
-
this._m = new Array(16);
|
|
20
32
|
}
|
|
21
33
|
|
|
22
34
|
/**
|
|
@@ -24,8 +36,8 @@ export class Mat4 {
|
|
|
24
36
|
* @static
|
|
25
37
|
* @returns {Mat4} -
|
|
26
38
|
*/
|
|
27
|
-
static identity() {
|
|
28
|
-
|
|
39
|
+
static identity(): Mat4 {
|
|
40
|
+
let res = new Mat4();
|
|
29
41
|
res._m[0] = 1;
|
|
30
42
|
res._m[1] = 0;
|
|
31
43
|
res._m[2] = 0;
|
|
@@ -51,7 +63,7 @@ export class Mat4 {
|
|
|
51
63
|
* @param {Array.<number>} m - Matrix array.
|
|
52
64
|
* @returns {Mat4} -
|
|
53
65
|
*/
|
|
54
|
-
set(m) {
|
|
66
|
+
public set(m: NumberArray16): Mat4 {
|
|
55
67
|
this._m[0] = m[0];
|
|
56
68
|
this._m[1] = m[1];
|
|
57
69
|
this._m[2] = m[2];
|
|
@@ -76,19 +88,20 @@ export class Mat4 {
|
|
|
76
88
|
* @public
|
|
77
89
|
* @returns {Mat4} -
|
|
78
90
|
*/
|
|
79
|
-
clone() {
|
|
80
|
-
|
|
81
|
-
res.set(this);
|
|
91
|
+
public clone(): Mat4 {
|
|
92
|
+
let res = new Mat4();
|
|
93
|
+
res.set(this._m);
|
|
82
94
|
return res;
|
|
83
95
|
}
|
|
84
96
|
|
|
85
97
|
/**
|
|
86
98
|
* Copy matrix.
|
|
87
99
|
* @public
|
|
88
|
-
* @param {
|
|
100
|
+
* @param {Mat4} a - Matrix to copy.
|
|
101
|
+
* @return {Mat4}
|
|
89
102
|
*/
|
|
90
|
-
copy(a) {
|
|
91
|
-
this.set(a._m);
|
|
103
|
+
public copy(a: Mat4): Mat4 {
|
|
104
|
+
return this.set(a._m);
|
|
92
105
|
}
|
|
93
106
|
|
|
94
107
|
/**
|
|
@@ -96,9 +109,9 @@ export class Mat4 {
|
|
|
96
109
|
* @public
|
|
97
110
|
* @returns {Mat3} -
|
|
98
111
|
*/
|
|
99
|
-
toMatrix3() {
|
|
100
|
-
|
|
101
|
-
|
|
112
|
+
public toMatrix3(): Mat3 {
|
|
113
|
+
let res = new Mat3();
|
|
114
|
+
let a = this._m,
|
|
102
115
|
b = res._m;
|
|
103
116
|
b[0] = a[0];
|
|
104
117
|
b[1] = a[1];
|
|
@@ -118,8 +131,8 @@ export class Mat4 {
|
|
|
118
131
|
* @param {Vec3} p - 3d vector.
|
|
119
132
|
* @returns {Vec3} -
|
|
120
133
|
*/
|
|
121
|
-
mulVec3(p) {
|
|
122
|
-
|
|
134
|
+
public mulVec3(p: Vec3): Vec3 {
|
|
135
|
+
let d = p.x,
|
|
123
136
|
e = p.y,
|
|
124
137
|
g = p.z;
|
|
125
138
|
return new Vec3(
|
|
@@ -135,8 +148,8 @@ export class Mat4 {
|
|
|
135
148
|
* @param {Vec4} p - 4d vector.
|
|
136
149
|
* @returns {Vec4} -
|
|
137
150
|
*/
|
|
138
|
-
mulVec4(p) {
|
|
139
|
-
|
|
151
|
+
public mulVec4(p: Vec4): Vec4 {
|
|
152
|
+
let d = p.x,
|
|
140
153
|
e = p.y,
|
|
141
154
|
g = p.z,
|
|
142
155
|
f = p.w;
|
|
@@ -149,13 +162,13 @@ export class Mat4 {
|
|
|
149
162
|
}
|
|
150
163
|
|
|
151
164
|
/**
|
|
152
|
-
* Creates an
|
|
165
|
+
* Creates an inverse 3x3 matrix of the current.
|
|
153
166
|
* @public
|
|
154
167
|
* @returns {Mat3} -
|
|
155
168
|
*/
|
|
156
|
-
toInverseMatrix3() {
|
|
157
|
-
|
|
158
|
-
|
|
169
|
+
public toInverseMatrix3(): Mat3 | undefined {
|
|
170
|
+
let a = this._m;
|
|
171
|
+
let c = a[0],
|
|
159
172
|
d = a[1],
|
|
160
173
|
e = a[2],
|
|
161
174
|
g = a[4],
|
|
@@ -170,12 +183,12 @@ export class Mat4 {
|
|
|
170
183
|
n = c * l + d * o + e * m;
|
|
171
184
|
|
|
172
185
|
if (!n) {
|
|
173
|
-
return
|
|
186
|
+
return;
|
|
174
187
|
}
|
|
175
188
|
|
|
176
|
-
n = 1 / n;
|
|
189
|
+
n = 1.0 / n;
|
|
177
190
|
|
|
178
|
-
|
|
191
|
+
let res = new Mat3();
|
|
179
192
|
res._m[0] = l * n;
|
|
180
193
|
res._m[1] = (-k * d + e * j) * n;
|
|
181
194
|
res._m[2] = (h * d - e * f) * n;
|
|
@@ -185,16 +198,17 @@ export class Mat4 {
|
|
|
185
198
|
res._m[6] = m * n;
|
|
186
199
|
res._m[7] = (-j * c + d * i) * n;
|
|
187
200
|
res._m[8] = (f * c - d * g) * n;
|
|
201
|
+
|
|
188
202
|
return res;
|
|
189
203
|
}
|
|
190
204
|
|
|
191
205
|
/**
|
|
192
|
-
* Creates an
|
|
206
|
+
* Creates an inverse matrix of the current.
|
|
193
207
|
* @public
|
|
194
208
|
* @returns {Mat4} -
|
|
195
209
|
*/
|
|
196
|
-
inverseTo(res) {
|
|
197
|
-
|
|
210
|
+
public inverseTo(res: Mat4 = new Mat4): Mat4 {
|
|
211
|
+
let c = this._m[0],
|
|
198
212
|
d = this._m[1],
|
|
199
213
|
e = this._m[2],
|
|
200
214
|
g = this._m[3],
|
|
@@ -224,8 +238,6 @@ export class Mat4 {
|
|
|
224
238
|
E = o * s - m * r,
|
|
225
239
|
q = 1 / (A * E - B * D + t * C + u * z - v * y + w * x);
|
|
226
240
|
|
|
227
|
-
res = res || new Mat4();
|
|
228
|
-
|
|
229
241
|
res._m[0] = (h * E - i * D + j * C) * q;
|
|
230
242
|
res._m[1] = (-d * E + e * D - g * C) * q;
|
|
231
243
|
res._m[2] = (p * w - r * v + s * u) * q;
|
|
@@ -242,16 +254,17 @@ export class Mat4 {
|
|
|
242
254
|
res._m[13] = (c * C - d * y + e * x) * q;
|
|
243
255
|
res._m[14] = (-n * u + p * B - r * A) * q;
|
|
244
256
|
res._m[15] = (k * u - l * B + o * A) * q;
|
|
257
|
+
|
|
245
258
|
return res;
|
|
246
259
|
}
|
|
247
260
|
|
|
248
261
|
/**
|
|
249
|
-
* Creates a
|
|
262
|
+
* Creates a transposed matrix of the current.
|
|
250
263
|
* @public
|
|
251
264
|
* @returns {Mat4} -
|
|
252
265
|
*/
|
|
253
|
-
transposeTo() {
|
|
254
|
-
|
|
266
|
+
public transposeTo(): Mat4 {
|
|
267
|
+
let res = new Mat4();
|
|
255
268
|
res._m[0] = this._m[0];
|
|
256
269
|
res._m[1] = this._m[4];
|
|
257
270
|
res._m[2] = this._m[8];
|
|
@@ -276,7 +289,7 @@ export class Mat4 {
|
|
|
276
289
|
* @public
|
|
277
290
|
* @returns {Mat4} -
|
|
278
291
|
*/
|
|
279
|
-
setIdentity() {
|
|
292
|
+
public setIdentity(): Mat4 {
|
|
280
293
|
this._m[0] = 1;
|
|
281
294
|
this._m[1] = 0;
|
|
282
295
|
this._m[2] = 0;
|
|
@@ -302,7 +315,8 @@ export class Mat4 {
|
|
|
302
315
|
* @param {Mat4} mx - Matrix to multiply.
|
|
303
316
|
* @returns {Mat4} -
|
|
304
317
|
*/
|
|
305
|
-
mul(mx) {
|
|
318
|
+
public mul(mx: Mat4): Mat4 {
|
|
319
|
+
|
|
306
320
|
let d = this._m[0],
|
|
307
321
|
e = this._m[1],
|
|
308
322
|
g = this._m[2],
|
|
@@ -337,7 +351,8 @@ export class Mat4 {
|
|
|
337
351
|
G = mx._m[14],
|
|
338
352
|
b = mx._m[15];
|
|
339
353
|
|
|
340
|
-
|
|
354
|
+
let res = new Mat4();
|
|
355
|
+
|
|
341
356
|
res._m[0] = A * d + B * h + t * l + u * p;
|
|
342
357
|
res._m[1] = A * e + B * i + t * o + u * r;
|
|
343
358
|
res._m[2] = A * g + B * j + t * m + u * s;
|
|
@@ -354,6 +369,7 @@ export class Mat4 {
|
|
|
354
369
|
res._m[13] = q * e + F * i + G * o + b * r;
|
|
355
370
|
res._m[14] = q * g + F * j + G * m + b * s;
|
|
356
371
|
res._m[15] = q * f + F * k + G * n + b * a;
|
|
372
|
+
|
|
357
373
|
return res;
|
|
358
374
|
}
|
|
359
375
|
|
|
@@ -363,15 +379,19 @@ export class Mat4 {
|
|
|
363
379
|
* @param {Vec3} v - Translate vector.
|
|
364
380
|
* @returns {Mat4} -
|
|
365
381
|
*/
|
|
366
|
-
translate(v) {
|
|
367
|
-
|
|
382
|
+
public translate(v: Vec3): Mat4 {
|
|
383
|
+
|
|
384
|
+
let d = v.x,
|
|
368
385
|
e = v.y,
|
|
369
386
|
b = v.z;
|
|
370
|
-
|
|
387
|
+
|
|
388
|
+
let a = this._m;
|
|
389
|
+
|
|
371
390
|
a[12] = a[0] * d + a[4] * e + a[8] * b + a[12];
|
|
372
391
|
a[13] = a[1] * d + a[5] * e + a[9] * b + a[13];
|
|
373
392
|
a[14] = a[2] * d + a[6] * e + a[10] * b + a[14];
|
|
374
393
|
a[15] = a[3] * d + a[7] * e + a[11] * b + a[15];
|
|
394
|
+
|
|
375
395
|
return this;
|
|
376
396
|
}
|
|
377
397
|
|
|
@@ -381,8 +401,8 @@ export class Mat4 {
|
|
|
381
401
|
* @param {Vec3} v - Translate to position.
|
|
382
402
|
* @returns {Mat4} -
|
|
383
403
|
*/
|
|
384
|
-
translateToPosition(v) {
|
|
385
|
-
|
|
404
|
+
public translateToPosition(v: Vec3): Mat4 {
|
|
405
|
+
let a = this._m;
|
|
386
406
|
a[12] = v.x;
|
|
387
407
|
a[13] = v.y;
|
|
388
408
|
a[14] = v.z;
|
|
@@ -390,18 +410,20 @@ export class Mat4 {
|
|
|
390
410
|
}
|
|
391
411
|
|
|
392
412
|
/**
|
|
393
|
-
* Rotate
|
|
413
|
+
* Rotate current matrix around the aligned axis and angle.
|
|
394
414
|
* @public
|
|
395
415
|
* @param {Vec3} u - Aligned axis.
|
|
396
416
|
* @param {number} angle - Aligned axis angle in radians.
|
|
397
417
|
* @returns {Mat4} -
|
|
398
|
-
* @todo: OPTIMIZE: reveal multiplication
|
|
399
418
|
*/
|
|
400
|
-
rotate(u, angle) {
|
|
401
|
-
|
|
419
|
+
public rotate(u: Vec3, angle: number): Mat4 {
|
|
420
|
+
|
|
421
|
+
let c = Math.cos(angle),
|
|
402
422
|
s = Math.sin(angle);
|
|
403
|
-
|
|
404
|
-
|
|
423
|
+
|
|
424
|
+
let rot = new Mat4();
|
|
425
|
+
let mx = rot._m;
|
|
426
|
+
|
|
405
427
|
mx[0] = c + (1 - c) * u.x * u.x;
|
|
406
428
|
mx[1] = (1 - c) * u.y * u.x - s * u.z;
|
|
407
429
|
mx[2] = (1 - c) * u.z * u.x + s * u.y;
|
|
@@ -418,6 +440,7 @@ export class Mat4 {
|
|
|
418
440
|
mx[13] = 0;
|
|
419
441
|
mx[14] = 0;
|
|
420
442
|
mx[15] = 1;
|
|
443
|
+
|
|
421
444
|
return this.mul(rot);
|
|
422
445
|
}
|
|
423
446
|
|
|
@@ -428,10 +451,13 @@ export class Mat4 {
|
|
|
428
451
|
* @param {number} angle - Aligned axis angle in radians.
|
|
429
452
|
* @returns {Mat4} -
|
|
430
453
|
*/
|
|
431
|
-
setRotation(u, angle) {
|
|
432
|
-
|
|
454
|
+
public setRotation(u: Vec3, angle: number): Mat4 {
|
|
455
|
+
|
|
456
|
+
let c = Math.cos(angle),
|
|
433
457
|
s = Math.sin(angle);
|
|
434
|
-
|
|
458
|
+
|
|
459
|
+
let mx = this._m;
|
|
460
|
+
|
|
435
461
|
mx[0] = c + (1 - c) * u.x * u.x;
|
|
436
462
|
mx[1] = (1 - c) * u.y * u.x - s * u.z;
|
|
437
463
|
mx[2] = (1 - c) * u.z * u.x + s * u.y;
|
|
@@ -448,18 +474,19 @@ export class Mat4 {
|
|
|
448
474
|
mx[13] = 0;
|
|
449
475
|
mx[14] = 0;
|
|
450
476
|
mx[15] = 1;
|
|
477
|
+
|
|
451
478
|
return this;
|
|
452
479
|
}
|
|
453
480
|
|
|
454
481
|
/**
|
|
455
482
|
* Gets the rotation matrix from one vector to another.
|
|
456
483
|
* @public
|
|
457
|
-
* @param {Vec3} a -
|
|
484
|
+
* @param {Vec3} a - First vector.
|
|
458
485
|
* @param {Vec3} b - Second vector.
|
|
459
486
|
* @returns {Mat4} -
|
|
460
487
|
*/
|
|
461
|
-
rotateBetweenVectors(a, b) {
|
|
462
|
-
|
|
488
|
+
public rotateBetweenVectors(a: Vec3, b: Vec3): Mat4 {
|
|
489
|
+
let q = Quat.getRotationBetweenVectors(a, b);
|
|
463
490
|
return q.getMat4();
|
|
464
491
|
}
|
|
465
492
|
|
|
@@ -469,8 +496,8 @@ export class Mat4 {
|
|
|
469
496
|
* @param {Vec3} v - Scale vector.
|
|
470
497
|
* @returns {Mat4} -
|
|
471
498
|
*/
|
|
472
|
-
scale(v) {
|
|
473
|
-
|
|
499
|
+
public scale(v: Vec3): Mat4 {
|
|
500
|
+
let mx = this._m;
|
|
474
501
|
mx[0] = mx[0] * v.x;
|
|
475
502
|
mx[1] = mx[1] * v.x;
|
|
476
503
|
mx[2] = mx[2] * v.x;
|
|
@@ -497,10 +524,12 @@ export class Mat4 {
|
|
|
497
524
|
* @param {number} far -
|
|
498
525
|
* @returns {Mat4} -
|
|
499
526
|
*/
|
|
500
|
-
setPerspective(left, right, bottom, top, near, far) {
|
|
501
|
-
|
|
527
|
+
public setPerspective(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4 {
|
|
528
|
+
|
|
529
|
+
let h = right - left,
|
|
502
530
|
i = top - bottom,
|
|
503
531
|
j = far - near;
|
|
532
|
+
|
|
504
533
|
this._m[0] = (near * 2) / h;
|
|
505
534
|
this._m[1] = 0;
|
|
506
535
|
this._m[2] = 0;
|
|
@@ -517,6 +546,7 @@ export class Mat4 {
|
|
|
517
546
|
this._m[13] = 0;
|
|
518
547
|
this._m[14] = -(far * near * 2) / j;
|
|
519
548
|
this._m[15] = 0;
|
|
549
|
+
|
|
520
550
|
return this;
|
|
521
551
|
}
|
|
522
552
|
|
|
@@ -531,8 +561,9 @@ export class Mat4 {
|
|
|
531
561
|
* @param {number} far -
|
|
532
562
|
* @return {Mat4} -
|
|
533
563
|
*/
|
|
534
|
-
setOrtho(left, right, bottom, top, near, far) {
|
|
535
|
-
|
|
564
|
+
public setOrtho(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4 {
|
|
565
|
+
|
|
566
|
+
let lr = 1.0 / (left - right),
|
|
536
567
|
bt = 1.0 / (bottom - top),
|
|
537
568
|
nf = 1.0 / (near - far),
|
|
538
569
|
m = this._m;
|
|
@@ -553,29 +584,31 @@ export class Mat4 {
|
|
|
553
584
|
m[13] = (top + bottom) * bt;
|
|
554
585
|
m[14] = (far + near) * nf;
|
|
555
586
|
m[15] = 1.0;
|
|
587
|
+
|
|
556
588
|
return this;
|
|
557
589
|
}
|
|
558
590
|
|
|
559
591
|
/**
|
|
560
592
|
* Sets current rotation matrix by euler's angles.
|
|
561
593
|
* @public
|
|
562
|
-
* @param {number} ax - Rotation angle in radians
|
|
563
|
-
* @param {number} ay - Rotation angle in radians
|
|
564
|
-
* @param {number} az - Rotation angle in radians
|
|
594
|
+
* @param {number} ax - Rotation angle in radians around X axis.
|
|
595
|
+
* @param {number} ay - Rotation angle in radians around Y axis.
|
|
596
|
+
* @param {number} az - Rotation angle in radians around Z axis.
|
|
565
597
|
* @returns {Mat4} -
|
|
566
598
|
*/
|
|
567
|
-
eulerToMatrix(ax, ay, az) {
|
|
568
|
-
|
|
599
|
+
public eulerToMatrix(ax: number, ay: number, az: number): Mat4 {
|
|
600
|
+
|
|
601
|
+
let a = Math.cos(ax),
|
|
569
602
|
b = Math.sin(ax),
|
|
570
603
|
c = Math.cos(ay),
|
|
571
604
|
d = Math.sin(ay),
|
|
572
605
|
e = Math.cos(az),
|
|
573
606
|
f = Math.sin(az);
|
|
574
607
|
|
|
575
|
-
|
|
608
|
+
let ad = a * d,
|
|
576
609
|
bd = b * d;
|
|
577
610
|
|
|
578
|
-
|
|
611
|
+
let mat = this._m;
|
|
579
612
|
|
|
580
613
|
mat[0] = c * e;
|
|
581
614
|
mat[1] = -c * f;
|
|
@@ -598,6 +631,6 @@ export class Mat4 {
|
|
|
598
631
|
* @static
|
|
599
632
|
* @returns {Mat4} -
|
|
600
633
|
*/
|
|
601
|
-
export function mat4() {
|
|
634
|
+
export function mat4(): Mat4 {
|
|
602
635
|
return new Mat4();
|
|
603
636
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import { Vec3 } from "./Vec3.js";
|
|
1
|
+
import {EPS5} from "../math";
|
|
2
|
+
import {Vec3} from "./Vec3";
|
|
3
|
+
import {Line3} from "./Line3";
|
|
5
4
|
|
|
5
|
+
const DISJOINT = 0
|
|
6
|
+
const COINCIDE = 1;
|
|
7
|
+
const INTERSECT = 2;
|
|
6
8
|
/**
|
|
7
9
|
* Plane class.
|
|
8
10
|
* @constructor
|
|
@@ -10,30 +12,33 @@ import { Vec3 } from "./Vec3.js";
|
|
|
10
12
|
* @param {Vec3} [n] - Planet normal.
|
|
11
13
|
*/
|
|
12
14
|
class Plane {
|
|
13
|
-
|
|
15
|
+
public p: Vec3;
|
|
16
|
+
public n: Vec3;
|
|
17
|
+
|
|
18
|
+
constructor(p: Vec3, n: Vec3) {
|
|
14
19
|
this.p = p ? p.clone() : new Vec3();
|
|
15
20
|
this.n = n ? n.clone() : this.p.normal();
|
|
16
21
|
}
|
|
17
22
|
|
|
18
|
-
set(p, n) {
|
|
23
|
+
public set(p: Vec3, n: Vec3) {
|
|
19
24
|
this.p.copy(p);
|
|
20
25
|
this.n.copy(n);
|
|
21
26
|
}
|
|
22
27
|
|
|
23
|
-
getNormal() {
|
|
28
|
+
public getNormal(): Vec3 {
|
|
24
29
|
return this.n.clone();
|
|
25
30
|
}
|
|
26
31
|
|
|
27
|
-
distance(p) {
|
|
32
|
+
public distance(p: Vec3): number {
|
|
28
33
|
let pp = this.getProjection(p);
|
|
29
34
|
return p.distance(pp);
|
|
30
35
|
}
|
|
31
36
|
|
|
32
|
-
getProjection(v, def) {
|
|
37
|
+
public getProjection(v: Vec3, def?: Vec3): Vec3 {
|
|
33
38
|
return Vec3.proj_b_to_plane(v, this.n, def);
|
|
34
39
|
}
|
|
35
40
|
|
|
36
|
-
getProjectionPoint(p, vh) {
|
|
41
|
+
public getProjectionPoint(p: Vec3, vh?: Vec3): Vec3 {
|
|
37
42
|
let v = p.sub(this.p),
|
|
38
43
|
n = this.n,
|
|
39
44
|
dist = v.dot(n);
|
|
@@ -46,29 +51,29 @@ class Plane {
|
|
|
46
51
|
return p.sub(vh);
|
|
47
52
|
}
|
|
48
53
|
|
|
49
|
-
getIntersection(Pn1, Pn2, L) {
|
|
50
|
-
|
|
54
|
+
public getIntersection(Pn1: Plane, Pn2: Plane, L: Line3): number {
|
|
55
|
+
let u = Pn1.n.cross(Pn2.n);
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
let ax = u.x >= 0 ? u.x : -u.x;
|
|
58
|
+
let ay = u.y >= 0 ? u.y : -u.y;
|
|
59
|
+
let az = u.z >= 0 ? u.z : -u.z;
|
|
55
60
|
|
|
56
61
|
// test if the two planes are parallel
|
|
57
62
|
if (ax + ay + az < EPS5) {
|
|
58
63
|
// Pn1 and Pn2 are near parallel
|
|
59
64
|
// test if disjoint or coincide
|
|
60
|
-
|
|
65
|
+
let v = Pn2.p.sub(Pn1.p);
|
|
61
66
|
if (Pn1.n.dot(v) == 0) {
|
|
62
67
|
// Pn2.V0 lies in Pn1
|
|
63
|
-
return
|
|
68
|
+
return COINCIDE; // Pn1 and Pn2 coincide
|
|
64
69
|
} else {
|
|
65
|
-
return
|
|
70
|
+
return DISJOINT; // Pn1 and Pn2 are disjoint
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
// Pn1 and Pn2 intersect in a line
|
|
70
75
|
// first determine max abs coordinate of cross product
|
|
71
|
-
|
|
76
|
+
let maxc; // max coordinate
|
|
72
77
|
if (ax > ay) {
|
|
73
78
|
if (ax > az) {
|
|
74
79
|
maxc = 1;
|
|
@@ -85,9 +90,9 @@ class Plane {
|
|
|
85
90
|
|
|
86
91
|
// next, to get a point on the intersect line
|
|
87
92
|
// zero the max coord, and solve for the other two
|
|
88
|
-
|
|
93
|
+
let iP = new Vec3(); // intersect point
|
|
89
94
|
|
|
90
|
-
|
|
95
|
+
let d1, d2; // the constants in the 2 plane equations
|
|
91
96
|
d1 = -Pn1.n.dot(Pn1.p); // note: could be pre-stored with plane
|
|
92
97
|
d2 = -Pn2.n.dot(Pn2.p); // ditto
|
|
93
98
|
|
|
@@ -110,8 +115,8 @@ class Plane {
|
|
|
110
115
|
}
|
|
111
116
|
L.p0.copy(iP);
|
|
112
117
|
L.p1.copy(iP.add(u));
|
|
113
|
-
return
|
|
118
|
+
return INTERSECT;
|
|
114
119
|
}
|
|
115
120
|
}
|
|
116
121
|
|
|
117
|
-
export {
|
|
122
|
+
export {Plane};
|