@openglobus/og 0.18.0 → 0.18.1
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} +82 -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} +101 -373
- package/lib/js/entity/EntityCollection.d.ts +364 -0
- package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +51 -353
- 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} +62 -164
- 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 +244 -0
- package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +147 -418
- 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 +311 -0
- package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +169 -611
- package/lib/js/renderer/RendererEvents.d.ts +237 -0
- package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +134 -471
- 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} +251 -935
- 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} +82 -239
- 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} +45 -181
- 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} +184 -341
- 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,9 +1,5 @@
|
|
|
1
|
-
import {Quat} from "./Quat";
|
|
2
|
-
import {Vec4
|
|
3
|
-
import {NumberArray2} from "./Vec2";
|
|
4
|
-
|
|
5
|
-
export type NumberArray3 = [number, number, number];
|
|
6
|
-
|
|
1
|
+
import { Quat } from "./Quat";
|
|
2
|
+
import { Vec4 } from "./Vec4";
|
|
7
3
|
/**
|
|
8
4
|
* Class represents a 3d vector.
|
|
9
5
|
* @class
|
|
@@ -12,86 +8,55 @@ export type NumberArray3 = [number, number, number];
|
|
|
12
8
|
* @param {number} [z] - Third value.
|
|
13
9
|
*/
|
|
14
10
|
export class Vec3 {
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @public
|
|
18
|
-
* @type {number}
|
|
19
|
-
*/
|
|
20
|
-
public x: number;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @public
|
|
24
|
-
* @type {number}
|
|
25
|
-
*/
|
|
26
|
-
public y: number;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* @public
|
|
30
|
-
* @type {number}
|
|
31
|
-
*/
|
|
32
|
-
public z: number;
|
|
33
|
-
|
|
34
|
-
constructor(x: number = 0.0, y: number = 0.0, z: number = 0.0) {
|
|
11
|
+
constructor(x = 0.0, y = 0.0, z = 0.0) {
|
|
35
12
|
this.x = x;
|
|
36
13
|
this.y = y;
|
|
37
14
|
this.z = z;
|
|
38
15
|
}
|
|
39
|
-
|
|
40
16
|
/** @const */
|
|
41
|
-
static get UP()
|
|
17
|
+
static get UP() {
|
|
42
18
|
return new Vec3(0, 1, 0);
|
|
43
19
|
}
|
|
44
|
-
|
|
45
20
|
/** @const */
|
|
46
|
-
static get DOWN()
|
|
21
|
+
static get DOWN() {
|
|
47
22
|
return new Vec3(0, -1, 0);
|
|
48
23
|
}
|
|
49
|
-
|
|
50
24
|
/** @const */
|
|
51
|
-
static get RIGHT()
|
|
25
|
+
static get RIGHT() {
|
|
52
26
|
return new Vec3(1, 0, 0);
|
|
53
27
|
}
|
|
54
|
-
|
|
55
28
|
/** @const */
|
|
56
|
-
static get LEFT()
|
|
29
|
+
static get LEFT() {
|
|
57
30
|
return new Vec3(-1, 0, 0);
|
|
58
31
|
}
|
|
59
|
-
|
|
60
32
|
/** @const */
|
|
61
|
-
static get FORWARD()
|
|
33
|
+
static get FORWARD() {
|
|
62
34
|
return new Vec3(0, 0, -1);
|
|
63
35
|
}
|
|
64
|
-
|
|
65
36
|
/** @const */
|
|
66
|
-
static get BACKWARD()
|
|
37
|
+
static get BACKWARD() {
|
|
67
38
|
return new Vec3(0, 0, 1);
|
|
68
39
|
}
|
|
69
|
-
|
|
70
40
|
/** @const */
|
|
71
|
-
static get ZERO()
|
|
41
|
+
static get ZERO() {
|
|
72
42
|
return new Vec3();
|
|
73
43
|
}
|
|
74
|
-
|
|
75
44
|
/** @const */
|
|
76
|
-
static get UNIT_X()
|
|
45
|
+
static get UNIT_X() {
|
|
77
46
|
return new Vec3(1, 0, 0);
|
|
78
47
|
}
|
|
79
|
-
|
|
80
48
|
/** @const */
|
|
81
|
-
static get UNIT_Y()
|
|
49
|
+
static get UNIT_Y() {
|
|
82
50
|
return new Vec3(0, 1, 0);
|
|
83
51
|
}
|
|
84
|
-
|
|
85
52
|
/** @const */
|
|
86
|
-
static get UNIT_Z()
|
|
53
|
+
static get UNIT_Z() {
|
|
87
54
|
return new Vec3(0, 0, 1);
|
|
88
55
|
}
|
|
89
|
-
|
|
90
56
|
/** @const */
|
|
91
|
-
static get NORTH()
|
|
57
|
+
static get NORTH() {
|
|
92
58
|
return Vec3.UNIT_Z;
|
|
93
59
|
}
|
|
94
|
-
|
|
95
60
|
/**
|
|
96
61
|
* Separate 63 bit Vec3 to two Vec3 32-bit float values.
|
|
97
62
|
* @function
|
|
@@ -99,42 +64,39 @@ export class Vec3 {
|
|
|
99
64
|
* @param {Vec3} high - Out vector high values.
|
|
100
65
|
* @param {Vec3} low - Out vector low values.
|
|
101
66
|
*/
|
|
102
|
-
static doubleToTwoFloats(v
|
|
103
|
-
let x = v.x,
|
|
104
|
-
y = v.y,
|
|
105
|
-
z = v.z;
|
|
106
|
-
|
|
67
|
+
static doubleToTwoFloats(v, high, low) {
|
|
68
|
+
let x = v.x, y = v.y, z = v.z;
|
|
107
69
|
if (x >= 0.0) {
|
|
108
70
|
let doubleHigh = Math.floor(x / 65536.0) * 65536.0;
|
|
109
71
|
high.x = Math.fround(doubleHigh);
|
|
110
72
|
low.x = Math.fround(x - doubleHigh);
|
|
111
|
-
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
112
75
|
let doubleHigh = Math.floor(-x / 65536.0) * 65536.0;
|
|
113
76
|
high.x = Math.fround(-doubleHigh);
|
|
114
77
|
low.x = Math.fround(x + doubleHigh);
|
|
115
78
|
}
|
|
116
|
-
|
|
117
79
|
if (y >= 0.0) {
|
|
118
80
|
let doubleHigh = Math.floor(y / 65536.0) * 65536.0;
|
|
119
81
|
high.y = Math.fround(doubleHigh);
|
|
120
82
|
low.y = Math.fround(y - doubleHigh);
|
|
121
|
-
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
122
85
|
let doubleHigh = Math.floor(-y / 65536.0) * 65536.0;
|
|
123
86
|
high.y = Math.fround(-doubleHigh);
|
|
124
87
|
low.y = Math.fround(y + doubleHigh);
|
|
125
88
|
}
|
|
126
|
-
|
|
127
89
|
if (z >= 0.0) {
|
|
128
90
|
let doubleHigh = Math.floor(z / 65536.0) * 65536.0;
|
|
129
91
|
high.z = Math.fround(doubleHigh);
|
|
130
92
|
low.z = Math.fround(z - doubleHigh);
|
|
131
|
-
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
132
95
|
let doubleHigh = Math.floor(-z / 65536.0) * 65536.0;
|
|
133
96
|
high.z = Math.fround(-doubleHigh);
|
|
134
97
|
low.z = Math.fround(z + doubleHigh);
|
|
135
98
|
}
|
|
136
99
|
}
|
|
137
|
-
|
|
138
100
|
/**
|
|
139
101
|
* Separate 63 bit Vec3 to two Vec3 32-bit float values.
|
|
140
102
|
* @function
|
|
@@ -143,52 +105,48 @@ export class Vec3 {
|
|
|
143
105
|
* @param {Float32Array} low - Out vector low values.
|
|
144
106
|
* @returns {Array.<number>} Encoded array. (exactly 2 entries)
|
|
145
107
|
*/
|
|
146
|
-
static doubleToTwoFloat32Array(v
|
|
147
|
-
let x = v.x,
|
|
148
|
-
y = v.y,
|
|
149
|
-
z = v.z;
|
|
150
|
-
|
|
108
|
+
static doubleToTwoFloat32Array(v, high, low) {
|
|
109
|
+
let x = v.x, y = v.y, z = v.z;
|
|
151
110
|
if (x >= 0.0) {
|
|
152
111
|
let doubleHigh = Math.floor(x / 65536.0) * 65536.0;
|
|
153
112
|
high[0] = Math.fround(doubleHigh);
|
|
154
113
|
low[0] = Math.fround(x - doubleHigh);
|
|
155
|
-
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
156
116
|
let doubleHigh = Math.floor(-x / 65536.0) * 65536.0;
|
|
157
117
|
high[0] = Math.fround(-doubleHigh);
|
|
158
118
|
low[0] = Math.fround(x + doubleHigh);
|
|
159
119
|
}
|
|
160
|
-
|
|
161
120
|
if (y >= 0.0) {
|
|
162
121
|
let doubleHigh = Math.floor(y / 65536.0) * 65536.0;
|
|
163
122
|
high[1] = Math.fround(doubleHigh);
|
|
164
123
|
low[1] = Math.fround(y - doubleHigh);
|
|
165
|
-
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
166
126
|
let doubleHigh = Math.floor(-y / 65536.0) * 65536.0;
|
|
167
127
|
high[1] = Math.fround(-doubleHigh);
|
|
168
128
|
low[1] = Math.fround(y + doubleHigh);
|
|
169
129
|
}
|
|
170
|
-
|
|
171
130
|
if (z >= 0.0) {
|
|
172
131
|
let doubleHigh = Math.floor(z / 65536.0) * 65536.0;
|
|
173
132
|
high[2] = Math.fround(doubleHigh);
|
|
174
133
|
low[2] = Math.fround(z - doubleHigh);
|
|
175
|
-
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
176
136
|
let doubleHigh = Math.floor(-z / 65536.0) * 65536.0;
|
|
177
137
|
high[2] = Math.fround(-doubleHigh);
|
|
178
138
|
low[2] = Math.fround(z + doubleHigh);
|
|
179
139
|
}
|
|
180
140
|
}
|
|
181
|
-
|
|
182
141
|
/**
|
|
183
142
|
* Creates 3d vector from array.
|
|
184
143
|
* @function
|
|
185
144
|
* @param {NumberArray2 | NumberArray3 | NumberArray4} arr - Input array (exactly 3 entries)
|
|
186
145
|
* @returns {Vec3} -
|
|
187
146
|
*/
|
|
188
|
-
static fromVec(arr
|
|
147
|
+
static fromVec(arr) {
|
|
189
148
|
return new Vec3(arr[0], arr[1], arr[2]);
|
|
190
149
|
}
|
|
191
|
-
|
|
192
150
|
/**
|
|
193
151
|
* Gets angle between two vectors.
|
|
194
152
|
* @static
|
|
@@ -196,10 +154,9 @@ export class Vec3 {
|
|
|
196
154
|
* @param {Vec3} b - Second vector.
|
|
197
155
|
* @returns {number} -
|
|
198
156
|
*/
|
|
199
|
-
static angle(a
|
|
157
|
+
static angle(a, b) {
|
|
200
158
|
return Math.acos(a.dot(b) / Math.sqrt(a.length2() * b.length2()));
|
|
201
159
|
}
|
|
202
|
-
|
|
203
160
|
/**
|
|
204
161
|
* Returns two vectors linear interpolation.
|
|
205
162
|
* @static
|
|
@@ -208,10 +165,9 @@ export class Vec3 {
|
|
|
208
165
|
* @param {number} l - Interpolate value.
|
|
209
166
|
* @returns {Vec3} -
|
|
210
167
|
*/
|
|
211
|
-
static lerp(v1
|
|
168
|
+
static lerp(v1, v2, l) {
|
|
212
169
|
return new Vec3(v1.x + (v2.x - v1.x) * l, v1.y + (v2.y - v1.y) * l, v1.z + (v2.z - v1.z) * l);
|
|
213
170
|
}
|
|
214
|
-
|
|
215
171
|
/**
|
|
216
172
|
* Returns summary vector.
|
|
217
173
|
* @static
|
|
@@ -219,12 +175,11 @@ export class Vec3 {
|
|
|
219
175
|
* @param {Vec3} b - Second vector.
|
|
220
176
|
* @returns {Vec3} - Summary vector.
|
|
221
177
|
*/
|
|
222
|
-
static add(a
|
|
178
|
+
static add(a, b) {
|
|
223
179
|
let res = new Vec3(a.x, a.y, a.z);
|
|
224
180
|
res.addA(b);
|
|
225
181
|
return res;
|
|
226
182
|
}
|
|
227
|
-
|
|
228
183
|
/**
|
|
229
184
|
* Returns two vectors subtraction.
|
|
230
185
|
* @static
|
|
@@ -232,12 +187,11 @@ export class Vec3 {
|
|
|
232
187
|
* @param {Vec3} b - Second vector.
|
|
233
188
|
* @returns {Vec3} - Vectors subtraction.
|
|
234
189
|
*/
|
|
235
|
-
static sub(a
|
|
190
|
+
static sub(a, b) {
|
|
236
191
|
let res = new Vec3(a.x, a.y, a.z);
|
|
237
192
|
res.subA(b);
|
|
238
193
|
return res;
|
|
239
194
|
}
|
|
240
|
-
|
|
241
195
|
/**
|
|
242
196
|
* Returns scaled vector.
|
|
243
197
|
* @static
|
|
@@ -245,10 +199,9 @@ export class Vec3 {
|
|
|
245
199
|
* @param {number} scale - Scale value.
|
|
246
200
|
* @returns {Vec3} -
|
|
247
201
|
*/
|
|
248
|
-
static scale(a
|
|
202
|
+
static scale(a, scale) {
|
|
249
203
|
return a.scaleTo(scale);
|
|
250
204
|
}
|
|
251
|
-
|
|
252
205
|
/**
|
|
253
206
|
* Returns two vectors production.
|
|
254
207
|
* @static
|
|
@@ -256,12 +209,11 @@ export class Vec3 {
|
|
|
256
209
|
* @param {Vec3} b - Second vector.
|
|
257
210
|
* @returns {Vec3} -
|
|
258
211
|
*/
|
|
259
|
-
static mul(a
|
|
212
|
+
static mul(a, b) {
|
|
260
213
|
let res = new Vec3(a.x, a.y, a.z);
|
|
261
214
|
res.mulA(b);
|
|
262
215
|
return res;
|
|
263
216
|
}
|
|
264
|
-
|
|
265
217
|
/**
|
|
266
218
|
* Returns true if two vectors are non-collinear.
|
|
267
219
|
* @public
|
|
@@ -269,10 +221,9 @@ export class Vec3 {
|
|
|
269
221
|
* @param {Vec3} b - Second vector.
|
|
270
222
|
* @returns {Vec3} -
|
|
271
223
|
*/
|
|
272
|
-
static noncollinear(a
|
|
224
|
+
static noncollinear(a, b) {
|
|
273
225
|
return Boolean(a.y * b.z - a.z * b.y || a.z * b.x - a.x * b.z || a.x * b.y - a.y * b.z);
|
|
274
226
|
}
|
|
275
|
-
|
|
276
227
|
/**
|
|
277
228
|
* Get projection of the vector to plane where n - normal to the plane.
|
|
278
229
|
* @static
|
|
@@ -281,14 +232,13 @@ export class Vec3 {
|
|
|
281
232
|
* @param {Vec3} [def] - Default value for non existed result.
|
|
282
233
|
* @returns {Vec3} -
|
|
283
234
|
*/
|
|
284
|
-
static proj_b_to_plane(b
|
|
235
|
+
static proj_b_to_plane(b, n, def) {
|
|
285
236
|
let res = b.sub(n.scaleTo(n.dot(b) / n.dot(n)));
|
|
286
237
|
if (def && res.isZero()) {
|
|
287
238
|
return new Vec3(def.x, def.y, def.z);
|
|
288
239
|
}
|
|
289
240
|
return res;
|
|
290
241
|
}
|
|
291
|
-
|
|
292
242
|
/**
|
|
293
243
|
* Get projection of the first vector to the second.
|
|
294
244
|
* @static
|
|
@@ -296,10 +246,9 @@ export class Vec3 {
|
|
|
296
246
|
* @param {Vec3} a - Second vector.
|
|
297
247
|
* @returns {Vec3} -
|
|
298
248
|
*/
|
|
299
|
-
static proj_b_to_a(b
|
|
249
|
+
static proj_b_to_a(b, a) {
|
|
300
250
|
return a.scaleTo(a.dot(b) / a.dot(a));
|
|
301
251
|
}
|
|
302
|
-
|
|
303
252
|
/**
|
|
304
253
|
* Makes vectors normalized and orthogonal to each other.
|
|
305
254
|
* Normalizes normal. Normalizes tangent and makes sure it is orthogonal to normal (that is, angle between them is 90 degrees).
|
|
@@ -308,12 +257,11 @@ export class Vec3 {
|
|
|
308
257
|
* @param {Vec3} tangent - Tangent vector.
|
|
309
258
|
* @returns {Vec3} -
|
|
310
259
|
*/
|
|
311
|
-
static orthoNormalize(normal
|
|
260
|
+
static orthoNormalize(normal, tangent) {
|
|
312
261
|
normal = normal.getNormal();
|
|
313
262
|
normal.scale(tangent.dot(normal));
|
|
314
263
|
return tangent.subA(normal).normalize();
|
|
315
264
|
}
|
|
316
|
-
|
|
317
265
|
/**
|
|
318
266
|
* Returns vector components division product one to another.
|
|
319
267
|
* @static
|
|
@@ -321,427 +269,366 @@ export class Vec3 {
|
|
|
321
269
|
* @param {Vec3} b - Second vector.
|
|
322
270
|
* @returns {Vec3} -
|
|
323
271
|
*/
|
|
324
|
-
static div(a
|
|
272
|
+
static div(a, b) {
|
|
325
273
|
let res = new Vec3(a.x, a.y, a.z);
|
|
326
274
|
res.divA(b);
|
|
327
275
|
return res;
|
|
328
276
|
}
|
|
329
|
-
|
|
330
|
-
static length2(a: Vec3): number {
|
|
277
|
+
static length2(a) {
|
|
331
278
|
return a.length2();
|
|
332
279
|
}
|
|
333
|
-
|
|
334
280
|
// static length(a: Vec3): number {
|
|
335
281
|
// return a.length();
|
|
336
282
|
// }
|
|
337
|
-
|
|
338
|
-
static dot(a: Vec3, b: Vec3): number {
|
|
283
|
+
static dot(a, b) {
|
|
339
284
|
return a.dot(b);
|
|
340
285
|
}
|
|
341
|
-
|
|
342
286
|
/**
|
|
343
287
|
* Converts to 4d vector, Fourth value is 1.0.
|
|
344
288
|
* @public
|
|
345
289
|
* @returns {Vec4} -
|
|
346
290
|
*/
|
|
347
|
-
|
|
291
|
+
toVec4() {
|
|
348
292
|
return new Vec4(this.x, this.y, this.z, 1.0);
|
|
349
293
|
}
|
|
350
|
-
|
|
351
294
|
/**
|
|
352
295
|
* Returns clone vector.
|
|
353
296
|
* @public
|
|
354
297
|
* @returns {Vec3} -
|
|
355
298
|
*/
|
|
356
|
-
|
|
299
|
+
clone() {
|
|
357
300
|
return new Vec3(this.x, this.y, this.z);
|
|
358
301
|
}
|
|
359
|
-
|
|
360
302
|
/**
|
|
361
303
|
* Converts vector to text string.
|
|
362
304
|
* @public
|
|
363
305
|
* @returns {string} -
|
|
364
306
|
*/
|
|
365
|
-
|
|
307
|
+
toString() {
|
|
366
308
|
return `(${this.x},${this.y},${this.z})`;
|
|
367
309
|
}
|
|
368
|
-
|
|
369
310
|
/**
|
|
370
311
|
* Returns true if vector's values are zero.
|
|
371
312
|
* @public
|
|
372
313
|
* @returns {boolean} -
|
|
373
314
|
*/
|
|
374
|
-
|
|
315
|
+
isZero() {
|
|
375
316
|
return !(this.x || this.y || this.z);
|
|
376
317
|
}
|
|
377
|
-
|
|
378
318
|
/**
|
|
379
319
|
* Get projection of the first vector to the second.
|
|
380
320
|
* @static
|
|
381
321
|
* @param {Vec3} a - Project vector.
|
|
382
322
|
* @returns {Vec3} -
|
|
383
323
|
*/
|
|
384
|
-
|
|
324
|
+
projToVec(a) {
|
|
385
325
|
return a.scaleTo(a.dot(this) / a.dot(a));
|
|
386
326
|
}
|
|
387
|
-
|
|
388
327
|
/**
|
|
389
328
|
* Compares with vector. Returns true if it equals another.
|
|
390
329
|
* @public
|
|
391
330
|
* @param {Vec3} p - Vector to compare.
|
|
392
331
|
* @returns {boolean} -
|
|
393
332
|
*/
|
|
394
|
-
|
|
333
|
+
equal(p) {
|
|
395
334
|
return this.x === p.x && this.y === p.y && this.z === p.z;
|
|
396
335
|
}
|
|
397
|
-
|
|
398
336
|
/**
|
|
399
337
|
* Copy input vector's values.
|
|
400
338
|
* @param {Vec3} p - Vector to copy.
|
|
401
339
|
* @returns {Vec3} -
|
|
402
340
|
*/
|
|
403
|
-
|
|
341
|
+
copy(p) {
|
|
404
342
|
this.x = p.x;
|
|
405
343
|
this.y = p.y;
|
|
406
344
|
this.z = p.z;
|
|
407
345
|
return this;
|
|
408
346
|
}
|
|
409
|
-
|
|
410
347
|
/**
|
|
411
348
|
* Gets vector's length.
|
|
412
349
|
* @public
|
|
413
350
|
* @returns {number} -
|
|
414
351
|
*/
|
|
415
|
-
|
|
352
|
+
length() {
|
|
416
353
|
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
|
|
417
354
|
}
|
|
418
|
-
|
|
419
355
|
/**
|
|
420
356
|
* Returns squared vector's length.
|
|
421
357
|
* @public
|
|
422
358
|
* @returns {number} -
|
|
423
359
|
*/
|
|
424
|
-
|
|
360
|
+
length2() {
|
|
425
361
|
return this.x * this.x + this.y * this.y + this.z * this.z;
|
|
426
362
|
}
|
|
427
|
-
|
|
428
363
|
/**
|
|
429
364
|
* Converts vector's values to a quaternion object.
|
|
430
365
|
* @public
|
|
431
366
|
* @returns {Quat} -
|
|
432
367
|
*/
|
|
433
|
-
|
|
368
|
+
getQuat() {
|
|
434
369
|
return new Quat(this.x, this.y, this.z);
|
|
435
370
|
}
|
|
436
|
-
|
|
437
371
|
/**
|
|
438
372
|
* Adds vector to the current.
|
|
439
373
|
* @public
|
|
440
374
|
* @param {Vec3} p - Point to add.
|
|
441
375
|
* @returns {Vec3} -
|
|
442
376
|
*/
|
|
443
|
-
|
|
377
|
+
addA(p) {
|
|
444
378
|
this.x += p.x;
|
|
445
379
|
this.y += p.y;
|
|
446
380
|
this.z += p.z;
|
|
447
381
|
return this;
|
|
448
382
|
}
|
|
449
|
-
|
|
450
383
|
/**
|
|
451
384
|
* Gets two vectors summarization.
|
|
452
385
|
* @public
|
|
453
386
|
* @param {Vec3} p - Vector to add.
|
|
454
387
|
* @returns {Vec3} Returns a sum vector.
|
|
455
388
|
*/
|
|
456
|
-
|
|
389
|
+
add(p) {
|
|
457
390
|
return new Vec3(this.x + p.x, this.y + p.y, this.z + p.z);
|
|
458
391
|
}
|
|
459
|
-
|
|
460
392
|
/**
|
|
461
393
|
* Subtract vector from the current.
|
|
462
394
|
* @public
|
|
463
395
|
* @param {Vec3} p - Subtract vector.
|
|
464
396
|
* @returns {Vec3} -
|
|
465
397
|
*/
|
|
466
|
-
|
|
398
|
+
subA(p) {
|
|
467
399
|
this.x -= p.x;
|
|
468
400
|
this.y -= p.y;
|
|
469
401
|
this.z -= p.z;
|
|
470
402
|
return this;
|
|
471
403
|
}
|
|
472
|
-
|
|
473
404
|
/**
|
|
474
405
|
* Gets vector subtraction.
|
|
475
406
|
* @public
|
|
476
407
|
* @param {Vec3} p - Subtract vector.
|
|
477
408
|
* @return {Vec3} Returns new instance of a subtraction
|
|
478
409
|
*/
|
|
479
|
-
|
|
410
|
+
sub(p) {
|
|
480
411
|
return new Vec3(this.x - p.x, this.y - p.y, this.z - p.z);
|
|
481
412
|
}
|
|
482
|
-
|
|
483
413
|
/**
|
|
484
414
|
* Scale current vector.
|
|
485
415
|
* @public
|
|
486
416
|
* @param {number} scale - Scale value.
|
|
487
417
|
* @returns {Vec3} -
|
|
488
418
|
*/
|
|
489
|
-
|
|
419
|
+
scale(scale) {
|
|
490
420
|
this.x *= scale;
|
|
491
421
|
this.y *= scale;
|
|
492
422
|
this.z *= scale;
|
|
493
423
|
return this;
|
|
494
424
|
}
|
|
495
|
-
|
|
496
425
|
/**
|
|
497
426
|
* Scale current vector to another instance.
|
|
498
427
|
* @public
|
|
499
428
|
* @param {number} scale - Scale value.
|
|
500
429
|
* @returns {Vec3} -
|
|
501
430
|
*/
|
|
502
|
-
|
|
431
|
+
scaleTo(scale) {
|
|
503
432
|
return new Vec3(this.x * scale, this.y * scale, this.z * scale);
|
|
504
433
|
}
|
|
505
|
-
|
|
506
434
|
/**
|
|
507
435
|
* Multiply current vector object to another and store result in the current instance.
|
|
508
436
|
* @public
|
|
509
437
|
* @param {Vec3} vec - Multiply vector.
|
|
510
438
|
* @returns {Vec3} -
|
|
511
439
|
*/
|
|
512
|
-
|
|
440
|
+
mulA(vec) {
|
|
513
441
|
this.x *= vec.x;
|
|
514
442
|
this.y *= vec.y;
|
|
515
443
|
this.z *= vec.z;
|
|
516
444
|
return this;
|
|
517
445
|
}
|
|
518
|
-
|
|
519
446
|
/**
|
|
520
447
|
* Multiply current vector object to another and returns new vector instance.
|
|
521
448
|
* @public
|
|
522
449
|
* @param {Vec3} vec - Multiply vector.
|
|
523
450
|
* @returns {Vec3} -
|
|
524
451
|
*/
|
|
525
|
-
|
|
452
|
+
mul(vec) {
|
|
526
453
|
return new Vec3(this.x * vec.x, this.y * vec.y, this.z * vec.z);
|
|
527
454
|
}
|
|
528
|
-
|
|
529
455
|
/**
|
|
530
456
|
* Divide current vector's components to another. Results stores in the current vector object.
|
|
531
457
|
* @public
|
|
532
458
|
* @param {Vec3} vec - Div vector.
|
|
533
459
|
* @returns {Vec3} -
|
|
534
460
|
*/
|
|
535
|
-
|
|
461
|
+
divA(vec) {
|
|
536
462
|
this.x /= vec.x;
|
|
537
463
|
this.y /= vec.y;
|
|
538
464
|
this.z /= vec.z;
|
|
539
465
|
return this;
|
|
540
466
|
}
|
|
541
|
-
|
|
542
467
|
/**
|
|
543
468
|
* Divide current vector's components to another and returns new vector instance.
|
|
544
469
|
* @public
|
|
545
470
|
* @param {Vec3} vec - Div vector.
|
|
546
471
|
* @returns {Vec3} -
|
|
547
472
|
*/
|
|
548
|
-
|
|
473
|
+
div(vec) {
|
|
549
474
|
return new Vec3(this.x / vec.x, this.y / vec.y, this.z / vec.z);
|
|
550
475
|
}
|
|
551
|
-
|
|
552
476
|
/**
|
|
553
477
|
* Gets vectors dot production.
|
|
554
478
|
* @public
|
|
555
479
|
* @param {Vec3} a - Another vector.
|
|
556
480
|
* @returns {number} -
|
|
557
481
|
*/
|
|
558
|
-
|
|
482
|
+
dot(a) {
|
|
559
483
|
return a.x * this.x + a.y * this.y + a.z * this.z;
|
|
560
484
|
}
|
|
561
|
-
|
|
562
485
|
/**
|
|
563
486
|
* Gets vectors dot production.
|
|
564
487
|
* @public
|
|
565
488
|
* @param {Array.<number>} arr - Array vector. (exactly 3 entries)
|
|
566
489
|
* @returns {number} -
|
|
567
490
|
*/
|
|
568
|
-
|
|
491
|
+
dotArr(arr) {
|
|
569
492
|
return arr[0] * this.x + arr[1] * this.y + arr[2] * this.z;
|
|
570
493
|
}
|
|
571
|
-
|
|
572
494
|
/**
|
|
573
495
|
* Gets vectors cross production.
|
|
574
496
|
* @public
|
|
575
497
|
* @param {Vec3} point3 - Another vector.
|
|
576
498
|
* @returns {Vec3} -
|
|
577
499
|
*/
|
|
578
|
-
|
|
579
|
-
return new Vec3(
|
|
580
|
-
this.y * point3.z - this.z * point3.y,
|
|
581
|
-
this.z * point3.x - this.x * point3.z,
|
|
582
|
-
this.x * point3.y - this.y * point3.x
|
|
583
|
-
);
|
|
500
|
+
cross(point3) {
|
|
501
|
+
return new Vec3(this.y * point3.z - this.z * point3.y, this.z * point3.x - this.x * point3.z, this.x * point3.y - this.y * point3.x);
|
|
584
502
|
}
|
|
585
|
-
|
|
586
503
|
/**
|
|
587
504
|
* Sets vector to zero.
|
|
588
505
|
* @public
|
|
589
506
|
* @returns {Vec3} -
|
|
590
507
|
*/
|
|
591
|
-
|
|
508
|
+
clear() {
|
|
592
509
|
this.x = this.y = this.z = 0;
|
|
593
510
|
return this;
|
|
594
511
|
}
|
|
595
|
-
|
|
596
512
|
/**
|
|
597
513
|
* Returns normalized vector.
|
|
598
514
|
* @public
|
|
599
515
|
* @returns {Vec3} -
|
|
600
516
|
*/
|
|
601
|
-
|
|
517
|
+
getNormal() {
|
|
602
518
|
let res = new Vec3();
|
|
603
519
|
res.copy(this);
|
|
604
|
-
|
|
605
520
|
let length = 1.0 / res.length();
|
|
606
|
-
|
|
607
521
|
res.x *= length;
|
|
608
522
|
res.y *= length;
|
|
609
523
|
res.z *= length;
|
|
610
|
-
|
|
611
524
|
return res;
|
|
612
525
|
}
|
|
613
|
-
|
|
614
526
|
/**
|
|
615
527
|
* Returns normalized vector.
|
|
616
528
|
* @deprecated
|
|
617
529
|
* @public
|
|
618
530
|
* @returns {Vec3} -
|
|
619
531
|
*/
|
|
620
|
-
|
|
532
|
+
normal() {
|
|
621
533
|
let res = new Vec3();
|
|
622
534
|
res.copy(this);
|
|
623
|
-
|
|
624
535
|
let length = 1.0 / res.length();
|
|
625
|
-
|
|
626
536
|
res.x *= length;
|
|
627
537
|
res.y *= length;
|
|
628
538
|
res.z *= length;
|
|
629
|
-
|
|
630
539
|
return res;
|
|
631
540
|
}
|
|
632
|
-
|
|
633
541
|
/**
|
|
634
542
|
* Returns normalized negate vector.
|
|
635
543
|
* @public
|
|
636
544
|
* @returns {Vec3} -
|
|
637
545
|
*/
|
|
638
|
-
|
|
546
|
+
normalNegate() {
|
|
639
547
|
let res = new Vec3();
|
|
640
548
|
res.copy(this);
|
|
641
|
-
|
|
642
549
|
let length = -1.0 / res.length();
|
|
643
|
-
|
|
644
550
|
res.x *= length;
|
|
645
551
|
res.y *= length;
|
|
646
552
|
res.z *= length;
|
|
647
|
-
|
|
648
553
|
return res;
|
|
649
554
|
}
|
|
650
|
-
|
|
651
555
|
/**
|
|
652
556
|
* Returns normalized negate scale vector.
|
|
653
557
|
* @public
|
|
654
558
|
* @returns {Vec3} -
|
|
655
559
|
*/
|
|
656
|
-
|
|
560
|
+
normalNegateScale(scale) {
|
|
657
561
|
let res = new Vec3();
|
|
658
562
|
res.copy(this);
|
|
659
|
-
|
|
660
563
|
let length = -scale / res.length();
|
|
661
|
-
|
|
662
564
|
res.x *= length;
|
|
663
565
|
res.y *= length;
|
|
664
566
|
res.z *= length;
|
|
665
|
-
|
|
666
567
|
return res;
|
|
667
568
|
}
|
|
668
|
-
|
|
669
569
|
/**
|
|
670
570
|
* Returns normalized scale vector.
|
|
671
571
|
* @public
|
|
672
572
|
* @returns {Vec3} -
|
|
673
573
|
*/
|
|
674
|
-
|
|
574
|
+
normalScale(scale) {
|
|
675
575
|
let res = new Vec3();
|
|
676
576
|
res.copy(this);
|
|
677
|
-
|
|
678
577
|
let length = scale / res.length();
|
|
679
|
-
|
|
680
578
|
res.x *= length;
|
|
681
579
|
res.y *= length;
|
|
682
580
|
res.z *= length;
|
|
683
|
-
|
|
684
581
|
return res;
|
|
685
582
|
}
|
|
686
|
-
|
|
687
583
|
/**
|
|
688
584
|
* Normalize current vector.
|
|
689
585
|
* @public
|
|
690
586
|
* @returns {Vec3} -
|
|
691
587
|
*/
|
|
692
|
-
|
|
588
|
+
normalize() {
|
|
693
589
|
let length = 1.0 / this.length();
|
|
694
590
|
this.x *= length;
|
|
695
591
|
this.y *= length;
|
|
696
592
|
this.z *= length;
|
|
697
593
|
return this;
|
|
698
594
|
}
|
|
699
|
-
|
|
700
595
|
/**
|
|
701
596
|
* Converts vector to a number array.
|
|
702
597
|
* @public
|
|
703
598
|
* @returns {Array.<number>} - (exactly 3 entries)
|
|
704
599
|
* @deprecated
|
|
705
600
|
*/
|
|
706
|
-
|
|
601
|
+
toVec() {
|
|
707
602
|
return [this.x, this.y, this.z];
|
|
708
603
|
}
|
|
709
|
-
|
|
710
604
|
/**
|
|
711
605
|
* Converts vector to a number array.
|
|
712
606
|
* @public
|
|
713
607
|
* @returns {Array.<number>} - (exactly 3 entries)
|
|
714
608
|
*/
|
|
715
|
-
|
|
609
|
+
toArray() {
|
|
716
610
|
return [this.x, this.y, this.z];
|
|
717
611
|
}
|
|
718
|
-
|
|
719
612
|
/**
|
|
720
613
|
* Gets distance to point.
|
|
721
614
|
* @public
|
|
722
615
|
* @param {Vec3} p - Distant point.
|
|
723
616
|
* @returns {number} -
|
|
724
617
|
*/
|
|
725
|
-
|
|
726
|
-
let dx = this.x - p.x,
|
|
727
|
-
dy = this.y - p.y,
|
|
728
|
-
dz = this.z - p.z;
|
|
618
|
+
distance(p) {
|
|
619
|
+
let dx = this.x - p.x, dy = this.y - p.y, dz = this.z - p.z;
|
|
729
620
|
return Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
730
621
|
}
|
|
731
|
-
|
|
732
622
|
/**
|
|
733
623
|
* Gets square distance to point.
|
|
734
624
|
* @public
|
|
735
625
|
* @param {Vec3} p - Distant point.
|
|
736
626
|
* @returns {number} -
|
|
737
627
|
*/
|
|
738
|
-
|
|
739
|
-
let dx = this.x - p.x,
|
|
740
|
-
dy = this.y - p.y,
|
|
741
|
-
dz = this.z - p.z;
|
|
628
|
+
distance2(p) {
|
|
629
|
+
let dx = this.x - p.x, dy = this.y - p.y, dz = this.z - p.z;
|
|
742
630
|
return dx * dx + dy * dy + dz * dz;
|
|
743
631
|
}
|
|
744
|
-
|
|
745
632
|
/**
|
|
746
633
|
* Sets vector's values.
|
|
747
634
|
* @public
|
|
@@ -750,34 +637,31 @@ export class Vec3 {
|
|
|
750
637
|
* @param {number} z - Value Z.
|
|
751
638
|
* @returns {Vec3} -
|
|
752
639
|
*/
|
|
753
|
-
|
|
640
|
+
set(x, y, z) {
|
|
754
641
|
this.x = x;
|
|
755
642
|
this.y = y;
|
|
756
643
|
this.z = z;
|
|
757
644
|
return this;
|
|
758
645
|
}
|
|
759
|
-
|
|
760
646
|
/**
|
|
761
647
|
* Negate current vector.
|
|
762
648
|
* @public
|
|
763
649
|
* @returns {Vec3} -
|
|
764
650
|
*/
|
|
765
|
-
|
|
651
|
+
negate() {
|
|
766
652
|
this.x = -this.x;
|
|
767
653
|
this.y = -this.y;
|
|
768
654
|
this.z = -this.z;
|
|
769
655
|
return this;
|
|
770
656
|
}
|
|
771
|
-
|
|
772
657
|
/**
|
|
773
658
|
* Negate current vector to another instance.
|
|
774
659
|
* @public
|
|
775
660
|
* @returns {Vec3} -
|
|
776
661
|
*/
|
|
777
|
-
|
|
662
|
+
negateTo() {
|
|
778
663
|
return new Vec3(-this.x, -this.y, -this.z);
|
|
779
664
|
}
|
|
780
|
-
|
|
781
665
|
/**
|
|
782
666
|
* Gets projected point coordinates of the current vector on the ray.
|
|
783
667
|
* @public
|
|
@@ -785,22 +669,20 @@ export class Vec3 {
|
|
|
785
669
|
* @param {Vec3} direction - Ray direction.
|
|
786
670
|
* @returns {Vec3} -
|
|
787
671
|
*/
|
|
788
|
-
|
|
672
|
+
projToRay(pos, direction) {
|
|
789
673
|
let v = Vec3.proj_b_to_a(Vec3.sub(this, pos), direction);
|
|
790
674
|
v.addA(pos);
|
|
791
675
|
return v;
|
|
792
676
|
}
|
|
793
|
-
|
|
794
677
|
/**
|
|
795
678
|
* Gets angle between two vectors.
|
|
796
679
|
* @public
|
|
797
680
|
* @param {Vec3} a - Another vector.
|
|
798
681
|
* @returns {number} -
|
|
799
682
|
*/
|
|
800
|
-
|
|
683
|
+
angle(a) {
|
|
801
684
|
return Vec3.angle(this, a);
|
|
802
685
|
}
|
|
803
|
-
|
|
804
686
|
/**
|
|
805
687
|
* Returns two vectors linear interpolation.
|
|
806
688
|
* @public
|
|
@@ -808,14 +690,9 @@ export class Vec3 {
|
|
|
808
690
|
* @param {number} l - Interpolate value.
|
|
809
691
|
* @returns {Vec3} -
|
|
810
692
|
*/
|
|
811
|
-
|
|
812
|
-
return new Vec3(
|
|
813
|
-
this.x + (v2.x - this.x) * l,
|
|
814
|
-
this.y + (v2.y - this.y) * l,
|
|
815
|
-
this.z + (v2.z - this.z) * l
|
|
816
|
-
);
|
|
693
|
+
lerp(v2, l) {
|
|
694
|
+
return new Vec3(this.x + (v2.x - this.x) * l, this.y + (v2.y - this.y) * l, this.z + (v2.z - this.z) * l);
|
|
817
695
|
}
|
|
818
|
-
|
|
819
696
|
/**
|
|
820
697
|
* Returns vector interpolation by v(t) = v1 * t + v2 * (1 - t)
|
|
821
698
|
* @public
|
|
@@ -823,19 +700,13 @@ export class Vec3 {
|
|
|
823
700
|
* @param {number} t - Interpolate value.
|
|
824
701
|
* @returns {Vec3} -
|
|
825
702
|
*/
|
|
826
|
-
|
|
703
|
+
smerp(v2, t) {
|
|
827
704
|
let one_d = 1 - t;
|
|
828
|
-
return new Vec3(
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
this.z * t + v2.z * one_d
|
|
832
|
-
);
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
static get LERP_DELTA(): number {
|
|
705
|
+
return new Vec3(this.x * t + v2.x * one_d, this.y * t + v2.y * one_d, this.z * t + v2.z * one_d);
|
|
706
|
+
}
|
|
707
|
+
static get LERP_DELTA() {
|
|
836
708
|
return 1e-6;
|
|
837
709
|
}
|
|
838
|
-
|
|
839
710
|
/**
|
|
840
711
|
* Spherically interpolates between two vectors.
|
|
841
712
|
* Interpolates between current and v2 vector by amount t. The difference between this and linear interpolation (aka, "lerp") is that
|
|
@@ -846,33 +717,30 @@ export class Vec3 {
|
|
|
846
717
|
* @param {number} t - The parameter t is clamped to the range [0, 1].
|
|
847
718
|
* @returns {Vec3} -
|
|
848
719
|
*/
|
|
849
|
-
|
|
720
|
+
slerp(v2, t) {
|
|
850
721
|
let res = new Vec3();
|
|
851
|
-
|
|
852
722
|
if (t <= 0.0) {
|
|
853
723
|
res.copy(this);
|
|
854
724
|
return res;
|
|
855
|
-
}
|
|
725
|
+
}
|
|
726
|
+
else if (t >= 1.0) {
|
|
856
727
|
res.copy(v2);
|
|
857
728
|
return res;
|
|
858
729
|
}
|
|
859
|
-
|
|
860
730
|
let omega, sinom, scale0, scale1;
|
|
861
731
|
let cosom = this.dot(v2);
|
|
862
|
-
|
|
863
732
|
if (1.0 - cosom > Vec3.LERP_DELTA) {
|
|
864
733
|
omega = Math.acos(cosom);
|
|
865
734
|
sinom = Math.sin(omega);
|
|
866
735
|
scale0 = Math.sin((1.0 - t) * omega) / sinom;
|
|
867
736
|
scale1 = Math.sin(t * omega) / sinom;
|
|
868
|
-
}
|
|
737
|
+
}
|
|
738
|
+
else {
|
|
869
739
|
scale0 = 1.0 - t;
|
|
870
740
|
scale1 = t;
|
|
871
741
|
}
|
|
872
|
-
|
|
873
742
|
return Vec3.add(this.scaleTo(scale0), v2.scale(scale1));
|
|
874
743
|
}
|
|
875
|
-
|
|
876
744
|
/**
|
|
877
745
|
* Gets the shortest arc quaternion to rotate this vector to the destination vector.
|
|
878
746
|
* @param {Vec3} dest -
|
|
@@ -880,25 +748,24 @@ export class Vec3 {
|
|
|
880
748
|
* @returns {Quat} -
|
|
881
749
|
* @todo: TEST IT!
|
|
882
750
|
*/
|
|
883
|
-
|
|
751
|
+
getRotationTo(dest, fallbackAxis) {
|
|
884
752
|
// Based on Stan Melax's article in Game Programming Gems
|
|
885
753
|
// Copy, since cannot modify local
|
|
886
754
|
let v0 = this.clone();
|
|
887
755
|
let v1 = dest.clone();
|
|
888
756
|
v0.normalize();
|
|
889
757
|
v1.normalize();
|
|
890
|
-
|
|
891
758
|
let d = v0.dot(v1);
|
|
892
759
|
// If dot == 1, vectors are the same
|
|
893
760
|
if (d >= 1.0) {
|
|
894
761
|
return Quat.IDENTITY.clone();
|
|
895
762
|
}
|
|
896
|
-
|
|
897
763
|
if (d < 1e-6 - 1.0) {
|
|
898
764
|
if (!fallbackAxis.equal(Vec3.ZERO)) {
|
|
899
765
|
// rotate 180 degrees about the fallback axis
|
|
900
766
|
return Quat.axisAngleToQuat(fallbackAxis, Math.PI);
|
|
901
|
-
}
|
|
767
|
+
}
|
|
768
|
+
else {
|
|
902
769
|
// Generate an axis
|
|
903
770
|
let axis = Vec3.UNIT_X.cross(v0);
|
|
904
771
|
if (axis.isZero()) {
|
|
@@ -908,7 +775,8 @@ export class Vec3 {
|
|
|
908
775
|
axis.normalize();
|
|
909
776
|
return Quat.axisAngleToQuat(axis, Math.PI);
|
|
910
777
|
}
|
|
911
|
-
}
|
|
778
|
+
}
|
|
779
|
+
else {
|
|
912
780
|
let s = Math.sqrt((1 + d) * 2);
|
|
913
781
|
let invs = 1.0 / s;
|
|
914
782
|
let c = v0.cross(v1);
|
|
@@ -918,7 +786,6 @@ export class Vec3 {
|
|
|
918
786
|
}
|
|
919
787
|
}
|
|
920
788
|
}
|
|
921
|
-
|
|
922
789
|
/**
|
|
923
790
|
* Vector 3d object creator.
|
|
924
791
|
* @function
|
|
@@ -927,6 +794,6 @@ export class Vec3 {
|
|
|
927
794
|
* @param {number} [z] - value Z.
|
|
928
795
|
* @returns {Vec3} -
|
|
929
796
|
*/
|
|
930
|
-
export function vec3(x
|
|
797
|
+
export function vec3(x = 0, y = 0, z = 0) {
|
|
931
798
|
return new Vec3(x, y, z);
|
|
932
799
|
}
|