@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,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import {EPS10} from "../math";
|
|
2
|
+
import {Box} from "../bv/Box";
|
|
3
|
+
import {Sphere} from "../bv/Sphere";
|
|
4
|
+
import {Vec3} from "./Vec3";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Represents a ray that extends infinitely from the provided origin in the provided direction.
|
|
@@ -10,20 +10,25 @@ import { Vec3 } from "./Vec3.js";
|
|
|
10
10
|
* @param {Vec3} direction - The direction of the ray.
|
|
11
11
|
*/
|
|
12
12
|
export class Ray {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
/**
|
|
14
|
+
* The origin of the ray.
|
|
15
|
+
* @public
|
|
16
|
+
* @type {Vec3}
|
|
17
|
+
*/
|
|
18
|
+
public origin: Vec3;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* The direction of the ray.
|
|
22
|
+
* @public
|
|
23
|
+
* @type {Vec3}
|
|
24
|
+
*/
|
|
25
|
+
public direction: Vec3;
|
|
26
|
+
|
|
27
|
+
constructor(origin: Vec3 = Vec3.ZERO, direction: Vec3 = Vec3.ZERO) {
|
|
28
|
+
|
|
29
|
+
this.origin = origin;
|
|
30
|
+
|
|
31
|
+
this.direction = direction;
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
/** @const */
|
|
@@ -53,7 +58,7 @@ export class Ray {
|
|
|
53
58
|
* @param {Vec3} direction - The direction of the ray.
|
|
54
59
|
* @returns {Ray}
|
|
55
60
|
*/
|
|
56
|
-
set(origin, direction) {
|
|
61
|
+
public set(origin: Vec3, direction: Vec3): Ray {
|
|
57
62
|
this.origin = origin;
|
|
58
63
|
this.direction = direction;
|
|
59
64
|
return this;
|
|
@@ -65,7 +70,7 @@ export class Ray {
|
|
|
65
70
|
* @param {number} distance - Point distance.
|
|
66
71
|
* @returns {Vec3}
|
|
67
72
|
*/
|
|
68
|
-
getPoint(distance) {
|
|
73
|
+
public getPoint(distance: number): Vec3 {
|
|
69
74
|
return Vec3.add(this.origin, this.direction.scaleTo(distance));
|
|
70
75
|
}
|
|
71
76
|
|
|
@@ -79,14 +84,14 @@ export class Ray {
|
|
|
79
84
|
* @returns {number} - Hit code, could 0 - og.Ray.OUTSIDE, 1 - og.Ray.INSIDE,
|
|
80
85
|
* 2 - og.Ray.INPLANE and 3 - og.Ray.AWAY(ray goes away from triangle).
|
|
81
86
|
*/
|
|
82
|
-
hitTriangle(v0, v1, v2, res) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
87
|
+
public hitTriangle(v0: Vec3, v1: Vec3, v2: Vec3, res: Vec3): number {
|
|
88
|
+
let u = v1.sub(v0);
|
|
89
|
+
let v = v2.sub(v0);
|
|
90
|
+
let n = u.cross(v);
|
|
86
91
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
92
|
+
let w0 = this.origin.sub(v0);
|
|
93
|
+
let a = -n.dot(w0);
|
|
94
|
+
let b = n.dot(this.direction);
|
|
90
95
|
|
|
91
96
|
// ray is parallel to triangle plane
|
|
92
97
|
if (Math.abs(b) < EPS10) {
|
|
@@ -100,7 +105,7 @@ export class Ray {
|
|
|
100
105
|
}
|
|
101
106
|
}
|
|
102
107
|
|
|
103
|
-
|
|
108
|
+
let r = a / b;
|
|
104
109
|
|
|
105
110
|
// intersect point of ray and plane
|
|
106
111
|
res.copy(this.origin.add(this.direction.scaleTo(r)));
|
|
@@ -111,20 +116,20 @@ export class Ray {
|
|
|
111
116
|
}
|
|
112
117
|
|
|
113
118
|
// is res point inside the triangle?
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
119
|
+
let uu = u.dot(u);
|
|
120
|
+
let uv = u.dot(v);
|
|
121
|
+
let vv = v.dot(v);
|
|
122
|
+
let w = res.sub(v0);
|
|
123
|
+
let wu = w.dot(u);
|
|
124
|
+
let wv = w.dot(v);
|
|
125
|
+
let D = uv * uv - uu * vv;
|
|
126
|
+
|
|
127
|
+
let s = (uv * wv - vv * wu) / D;
|
|
123
128
|
if (s < 0.0 || s > 1.0) {
|
|
124
129
|
return Ray.OUTSIDE;
|
|
125
130
|
}
|
|
126
131
|
|
|
127
|
-
|
|
132
|
+
let t = (uv * wu - uu * wv) / D;
|
|
128
133
|
if (t < 0.0 || s + t > 1.0) {
|
|
129
134
|
return Ray.OUTSIDE;
|
|
130
135
|
}
|
|
@@ -141,14 +146,14 @@ export class Ray {
|
|
|
141
146
|
* @param {Vec3} res - Hit point object pointer that stores hit result.
|
|
142
147
|
* @returns {number}
|
|
143
148
|
*/
|
|
144
|
-
hitPlane(v0, v1, v2, res) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
149
|
+
public hitPlane(v0: Vec3, v1: Vec3, v2: Vec3, res: Vec3): number {
|
|
150
|
+
let u = Vec3.sub(v1, v0);
|
|
151
|
+
let v = Vec3.sub(v2, v0);
|
|
152
|
+
let n = u.cross(v);
|
|
148
153
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
154
|
+
let w0 = Vec3.sub(this.origin, v0);
|
|
155
|
+
let a = -n.dot(w0);
|
|
156
|
+
let b = n.dot(this.direction);
|
|
152
157
|
|
|
153
158
|
// ray is parallel to the plane
|
|
154
159
|
if (Math.abs(b) < EPS10) {
|
|
@@ -157,13 +162,13 @@ export class Ray {
|
|
|
157
162
|
}
|
|
158
163
|
}
|
|
159
164
|
|
|
160
|
-
|
|
165
|
+
let r = a / b;
|
|
161
166
|
|
|
162
167
|
if (r < 0) {
|
|
163
168
|
return Ray.OUTSIDE;
|
|
164
169
|
}
|
|
165
170
|
|
|
166
|
-
|
|
171
|
+
let d = this.direction.scaleTo(r);
|
|
167
172
|
|
|
168
173
|
// intersect point of ray and plane
|
|
169
174
|
res.x = this.origin.x + d.x;
|
|
@@ -179,12 +184,14 @@ export class Ray {
|
|
|
179
184
|
* @param {Sphere} sphere - Sphere object.
|
|
180
185
|
* @returns {Vec3}
|
|
181
186
|
*/
|
|
182
|
-
hitSphere(sphere) {
|
|
183
|
-
|
|
187
|
+
public hitSphere(sphere: Sphere) {
|
|
188
|
+
let r = sphere.radius,
|
|
184
189
|
c = sphere.center,
|
|
185
190
|
o = this.origin,
|
|
186
191
|
d = this.direction;
|
|
187
|
-
|
|
192
|
+
|
|
193
|
+
let vpc = Vec3.sub(c, o);
|
|
194
|
+
|
|
188
195
|
if (vpc.dot(d) < 0) {
|
|
189
196
|
var l = vpc.length();
|
|
190
197
|
if (l > r) {
|
|
@@ -218,20 +225,9 @@ export class Ray {
|
|
|
218
225
|
}
|
|
219
226
|
}
|
|
220
227
|
|
|
221
|
-
hitBox(box) {
|
|
228
|
+
public hitBox(box: Box) {
|
|
222
229
|
//
|
|
223
230
|
// TODO
|
|
224
231
|
//
|
|
225
232
|
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Ray object creator.
|
|
230
|
-
* @function
|
|
231
|
-
* @param {Vec3} origin - The origin of the ray.
|
|
232
|
-
* @param {Vec3} direction - The direction of the ray.
|
|
233
|
-
* @returns {Ray}
|
|
234
|
-
*/
|
|
235
|
-
export function ray(origin, direction) {
|
|
236
|
-
return new Ray(origin, direction);
|
|
237
|
-
}
|
|
233
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import {Vec3} from "./Vec3";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
export type NumberArray2 = [number, number];
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Class represents a 3d vector.
|
|
@@ -9,37 +9,46 @@ import { Vec3 } from "./Vec3.js";
|
|
|
9
9
|
* @param {number} [y] - Second value.
|
|
10
10
|
*/
|
|
11
11
|
export class Vec2 {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
* @type {number}
|
|
16
|
+
*/
|
|
17
|
+
public x: number;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @public
|
|
21
|
+
* @type {number}
|
|
22
|
+
*/
|
|
23
|
+
public y: number;
|
|
24
|
+
|
|
25
|
+
constructor(x: number = 0.0, y: number = 0.0) {
|
|
26
|
+
this.x = x;
|
|
27
|
+
this.y = y;
|
|
24
28
|
}
|
|
29
|
+
|
|
25
30
|
/** @const */
|
|
26
|
-
static get UP() {
|
|
31
|
+
static get UP(): Vec2 {
|
|
27
32
|
return new Vec2(0, 1);
|
|
28
33
|
}
|
|
34
|
+
|
|
29
35
|
/** @const */
|
|
30
|
-
static get DOWN() {
|
|
36
|
+
static get DOWN(): Vec2 {
|
|
31
37
|
return new Vec2(0, -1);
|
|
32
38
|
}
|
|
39
|
+
|
|
33
40
|
/** @const */
|
|
34
|
-
static get RIGHT() {
|
|
41
|
+
static get RIGHT(): Vec2 {
|
|
35
42
|
return new Vec2(1, 0);
|
|
36
43
|
}
|
|
44
|
+
|
|
37
45
|
/** @const */
|
|
38
|
-
static get LEFT() {
|
|
46
|
+
static get LEFT(): Vec2 {
|
|
39
47
|
return new Vec2(-1, 0);
|
|
40
48
|
}
|
|
49
|
+
|
|
41
50
|
/** @const */
|
|
42
|
-
static get ZERO() {
|
|
51
|
+
static get ZERO(): Vec2 {
|
|
43
52
|
return new Vec2();
|
|
44
53
|
}
|
|
45
54
|
|
|
@@ -50,7 +59,7 @@ export class Vec2 {
|
|
|
50
59
|
* @param {Vec2} b - Second vector.
|
|
51
60
|
* @returns {Vec2} - Summary vector.
|
|
52
61
|
*/
|
|
53
|
-
static add(a, b) {
|
|
62
|
+
static add(a: Vec2, b: Vec2): Vec2 {
|
|
54
63
|
const res = new Vec2(a.x, a.y);
|
|
55
64
|
res.addA(b);
|
|
56
65
|
return res;
|
|
@@ -63,7 +72,7 @@ export class Vec2 {
|
|
|
63
72
|
* @param {Vec2} b - Second vector.
|
|
64
73
|
* @returns {Vec2} - Vectors subtraction.
|
|
65
74
|
*/
|
|
66
|
-
static sub(a, b) {
|
|
75
|
+
static sub(a: Vec2, b: Vec2): Vec2 {
|
|
67
76
|
var res = new Vec2(a.x, a.y);
|
|
68
77
|
res.subA(b);
|
|
69
78
|
return res;
|
|
@@ -76,8 +85,8 @@ export class Vec2 {
|
|
|
76
85
|
* @param {number} scale - Scale value.
|
|
77
86
|
* @returns {Vec2}
|
|
78
87
|
*/
|
|
79
|
-
static scale(a, scale) {
|
|
80
|
-
|
|
88
|
+
static scale(a: Vec2, scale: number): Vec2 {
|
|
89
|
+
let res = new Vec2(a.x, a.y);
|
|
81
90
|
res.scale(scale);
|
|
82
91
|
return res;
|
|
83
92
|
}
|
|
@@ -89,8 +98,8 @@ export class Vec2 {
|
|
|
89
98
|
* @param {Vec2} b - Second vector.
|
|
90
99
|
* @returns {Vec2}
|
|
91
100
|
*/
|
|
92
|
-
static mul(a, b) {
|
|
93
|
-
|
|
101
|
+
static mul(a: Vec2, b: Vec2): Vec2 {
|
|
102
|
+
let res = new Vec2(a.x, a.y);
|
|
94
103
|
res.mulA(b);
|
|
95
104
|
return res;
|
|
96
105
|
}
|
|
@@ -102,8 +111,8 @@ export class Vec2 {
|
|
|
102
111
|
* @param {Vec2} b - Second vector.
|
|
103
112
|
* @returns {Vec2}
|
|
104
113
|
*/
|
|
105
|
-
static div(a, b) {
|
|
106
|
-
|
|
114
|
+
static div(a: Vec2, b: Vec2): Vec2 {
|
|
115
|
+
let res = new Vec2(a.x, a.y);
|
|
107
116
|
res.divA(b);
|
|
108
117
|
return res;
|
|
109
118
|
}
|
|
@@ -115,7 +124,7 @@ export class Vec2 {
|
|
|
115
124
|
* @param {Vec2} a - Second vector.
|
|
116
125
|
* @returns {Vec2}
|
|
117
126
|
*/
|
|
118
|
-
static proj_b_to_a(b, a) {
|
|
127
|
+
static proj_b_to_a(b: Vec2, a: Vec2): Vec2 {
|
|
119
128
|
return a.scaleTo(a.dot(b) / a.dot(a));
|
|
120
129
|
}
|
|
121
130
|
|
|
@@ -126,7 +135,7 @@ export class Vec2 {
|
|
|
126
135
|
* @param {Vec2} b - Second vector.
|
|
127
136
|
* @returns {number}
|
|
128
137
|
*/
|
|
129
|
-
static angle(a, b) {
|
|
138
|
+
static angle(a: Vec2, b: Vec2): number {
|
|
130
139
|
return Math.acos(a.dot(b) / Math.sqrt(a.length2() * b.length2()));
|
|
131
140
|
}
|
|
132
141
|
|
|
@@ -137,8 +146,8 @@ export class Vec2 {
|
|
|
137
146
|
* @param {Vec2} tangent - Tangent vector.
|
|
138
147
|
* @returns {Vec2}
|
|
139
148
|
*/
|
|
140
|
-
static orthoNormalize(normal, tangent) {
|
|
141
|
-
normal = normal.
|
|
149
|
+
static orthoNormalize(normal: Vec2, tangent: Vec2): Vec2 {
|
|
150
|
+
normal = normal.normal();
|
|
142
151
|
normal.scale(tangent.dot(normal));
|
|
143
152
|
return tangent.sub(normal).normalize();
|
|
144
153
|
}
|
|
@@ -148,7 +157,7 @@ export class Vec2 {
|
|
|
148
157
|
* @public
|
|
149
158
|
* @returns {Vec3}
|
|
150
159
|
*/
|
|
151
|
-
toVector3() {
|
|
160
|
+
public toVector3(): Vec3 {
|
|
152
161
|
return new Vec3(this.x, this.y, 0);
|
|
153
162
|
}
|
|
154
163
|
|
|
@@ -157,7 +166,7 @@ export class Vec2 {
|
|
|
157
166
|
* @public
|
|
158
167
|
* @returns {Vec2}
|
|
159
168
|
*/
|
|
160
|
-
clone() {
|
|
169
|
+
public clone(): Vec2 {
|
|
161
170
|
return new Vec2(this.x, this.y);
|
|
162
171
|
}
|
|
163
172
|
|
|
@@ -167,7 +176,7 @@ export class Vec2 {
|
|
|
167
176
|
* @param {Vec2} p - Vector to compare.
|
|
168
177
|
* @returns {boolean}
|
|
169
178
|
*/
|
|
170
|
-
equal(p) {
|
|
179
|
+
public equal(p: Vec2): boolean {
|
|
171
180
|
return this.x === p.x && this.y === p.y;
|
|
172
181
|
}
|
|
173
182
|
|
|
@@ -176,7 +185,7 @@ export class Vec2 {
|
|
|
176
185
|
* @param {Vec2} point2 - Vector to copy.
|
|
177
186
|
* @returns {Vec2}
|
|
178
187
|
*/
|
|
179
|
-
copy(point2) {
|
|
188
|
+
public copy(point2: Vec2): Vec2 {
|
|
180
189
|
this.x = point2.x;
|
|
181
190
|
this.y = point2.y;
|
|
182
191
|
return this;
|
|
@@ -187,7 +196,7 @@ export class Vec2 {
|
|
|
187
196
|
* @public
|
|
188
197
|
* @returns {number}
|
|
189
198
|
*/
|
|
190
|
-
length() {
|
|
199
|
+
public length(): number {
|
|
191
200
|
return Math.sqrt(this.x * this.x + this.y * this.y);
|
|
192
201
|
}
|
|
193
202
|
|
|
@@ -196,7 +205,7 @@ export class Vec2 {
|
|
|
196
205
|
* @public
|
|
197
206
|
* @returns {number}
|
|
198
207
|
*/
|
|
199
|
-
length2() {
|
|
208
|
+
public length2(): number {
|
|
200
209
|
return this.x * this.x + this.y * this.y;
|
|
201
210
|
}
|
|
202
211
|
|
|
@@ -206,7 +215,7 @@ export class Vec2 {
|
|
|
206
215
|
* @param {Vec2}
|
|
207
216
|
* @returns {Vec2}
|
|
208
217
|
*/
|
|
209
|
-
addA(v) {
|
|
218
|
+
public addA(v: Vec2): Vec2 {
|
|
210
219
|
this.x += v.x;
|
|
211
220
|
this.y += v.y;
|
|
212
221
|
return this;
|
|
@@ -218,7 +227,7 @@ export class Vec2 {
|
|
|
218
227
|
* @param {Vec2}
|
|
219
228
|
* @returns {Vec2}
|
|
220
229
|
*/
|
|
221
|
-
add(v) {
|
|
230
|
+
public add(v: Vec2): Vec2 {
|
|
222
231
|
return new Vec2(this.x + v.x, this.y + v.y);
|
|
223
232
|
}
|
|
224
233
|
|
|
@@ -228,7 +237,7 @@ export class Vec2 {
|
|
|
228
237
|
* @param {Vec2} v - Subtract vector.
|
|
229
238
|
* @returns {Vec2}
|
|
230
239
|
*/
|
|
231
|
-
subA(v) {
|
|
240
|
+
public subA(v: Vec2): Vec2 {
|
|
232
241
|
this.x -= v.x;
|
|
233
242
|
this.y -= v.y;
|
|
234
243
|
return this;
|
|
@@ -240,7 +249,7 @@ export class Vec2 {
|
|
|
240
249
|
* @param {Vec2} v - Subtract vector.
|
|
241
250
|
* @returns {Vec2}
|
|
242
251
|
*/
|
|
243
|
-
sub(v) {
|
|
252
|
+
public sub(v: Vec2): Vec2 {
|
|
244
253
|
return new Vec2(this.x - v.x, this.y - v.y);
|
|
245
254
|
}
|
|
246
255
|
|
|
@@ -250,7 +259,7 @@ export class Vec2 {
|
|
|
250
259
|
* @param {number} scale - Scale value.
|
|
251
260
|
* @returns {Vec2}
|
|
252
261
|
*/
|
|
253
|
-
scale(scale) {
|
|
262
|
+
public scale(scale: number): Vec2 {
|
|
254
263
|
this.x *= scale;
|
|
255
264
|
this.y *= scale;
|
|
256
265
|
return this;
|
|
@@ -262,7 +271,7 @@ export class Vec2 {
|
|
|
262
271
|
* @param {number} scale - Scale value.
|
|
263
272
|
* @returns {Vec2}
|
|
264
273
|
*/
|
|
265
|
-
scaleTo(scale) {
|
|
274
|
+
public scaleTo(scale: number): Vec2 {
|
|
266
275
|
return new Vec2(this.x * scale, this.y * scale);
|
|
267
276
|
}
|
|
268
277
|
|
|
@@ -272,7 +281,7 @@ export class Vec2 {
|
|
|
272
281
|
* @param {Vec2} vec - Multiply vector.
|
|
273
282
|
* @returns {Vec2}
|
|
274
283
|
*/
|
|
275
|
-
mulA(vec) {
|
|
284
|
+
public mulA(vec: Vec2): Vec2 {
|
|
276
285
|
this.x *= vec.x;
|
|
277
286
|
this.y *= vec.y;
|
|
278
287
|
return this;
|
|
@@ -284,7 +293,7 @@ export class Vec2 {
|
|
|
284
293
|
* @param {Vec2} vec - Multiply vector.
|
|
285
294
|
* @returns {Vec2}
|
|
286
295
|
*/
|
|
287
|
-
mul(vec) {
|
|
296
|
+
public mul(vec: Vec2): Vec2 {
|
|
288
297
|
return new Vec2(this.x * vec.x, this.y * vec.y);
|
|
289
298
|
}
|
|
290
299
|
|
|
@@ -294,7 +303,7 @@ export class Vec2 {
|
|
|
294
303
|
* @param {Vec2}
|
|
295
304
|
* @returns {Vec2}
|
|
296
305
|
*/
|
|
297
|
-
divA(vec) {
|
|
306
|
+
public divA(vec: Vec2): Vec2 {
|
|
298
307
|
this.x /= vec.x;
|
|
299
308
|
this.y /= vec.y;
|
|
300
309
|
return this;
|
|
@@ -306,7 +315,7 @@ export class Vec2 {
|
|
|
306
315
|
* @param {Vec2} v - Another vector.
|
|
307
316
|
* @returns {number}
|
|
308
317
|
*/
|
|
309
|
-
dot(v) {
|
|
318
|
+
public dot(v: Vec2): number {
|
|
310
319
|
return v.x * this.x + v.y * this.y;
|
|
311
320
|
}
|
|
312
321
|
|
|
@@ -316,7 +325,7 @@ export class Vec2 {
|
|
|
316
325
|
* @param {Array.<number>} arr - Array vector. (exactly 2 entries)
|
|
317
326
|
* @returns {number}
|
|
318
327
|
*/
|
|
319
|
-
dotArr(arr) {
|
|
328
|
+
public dotArr(arr: NumberArray2): number {
|
|
320
329
|
return arr[0] * this.x + arr[1] * this.y;
|
|
321
330
|
}
|
|
322
331
|
|
|
@@ -324,9 +333,9 @@ export class Vec2 {
|
|
|
324
333
|
* Gets vectors cross production.
|
|
325
334
|
* @public
|
|
326
335
|
* @param {Vec2} v - Another vector.
|
|
327
|
-
* @returns {
|
|
336
|
+
* @returns {number}
|
|
328
337
|
*/
|
|
329
|
-
cross(v) {
|
|
338
|
+
public cross(v: Vec2): number {
|
|
330
339
|
return this.x * v.y - this.y * v.x;
|
|
331
340
|
}
|
|
332
341
|
|
|
@@ -335,7 +344,7 @@ export class Vec2 {
|
|
|
335
344
|
* @public
|
|
336
345
|
* @returns {Vec2}
|
|
337
346
|
*/
|
|
338
|
-
clear() {
|
|
347
|
+
public clear(): Vec2 {
|
|
339
348
|
this.x = this.y = 0;
|
|
340
349
|
return this;
|
|
341
350
|
}
|
|
@@ -345,11 +354,11 @@ export class Vec2 {
|
|
|
345
354
|
* @public
|
|
346
355
|
* @returns {Vec2}
|
|
347
356
|
*/
|
|
348
|
-
normal() {
|
|
349
|
-
|
|
357
|
+
public normal(): Vec2 {
|
|
358
|
+
let res = new Vec2();
|
|
350
359
|
res.copy(this);
|
|
351
360
|
|
|
352
|
-
|
|
361
|
+
let length = 1.0 / res.length();
|
|
353
362
|
|
|
354
363
|
res.x *= length;
|
|
355
364
|
res.y *= length;
|
|
@@ -362,8 +371,8 @@ export class Vec2 {
|
|
|
362
371
|
* @public
|
|
363
372
|
* @returns {Vec2}
|
|
364
373
|
*/
|
|
365
|
-
normalize() {
|
|
366
|
-
|
|
374
|
+
public normalize(): Vec2 {
|
|
375
|
+
let length = 1.0 / this.length();
|
|
367
376
|
|
|
368
377
|
this.x *= length;
|
|
369
378
|
this.y *= length;
|
|
@@ -376,7 +385,7 @@ export class Vec2 {
|
|
|
376
385
|
* @public
|
|
377
386
|
* @returns {Array.<number>} - (exactly 2 entries)
|
|
378
387
|
*/
|
|
379
|
-
toVec() {
|
|
388
|
+
public toVec(): NumberArray2 {
|
|
380
389
|
return [this.x, this.y];
|
|
381
390
|
}
|
|
382
391
|
|
|
@@ -386,8 +395,8 @@ export class Vec2 {
|
|
|
386
395
|
* @param {Vec2} p - Distant point.
|
|
387
396
|
* @returns {number}
|
|
388
397
|
*/
|
|
389
|
-
distance(p) {
|
|
390
|
-
|
|
398
|
+
public distance(p: Vec2): number {
|
|
399
|
+
let vec = Vec2.sub(this, p);
|
|
391
400
|
return vec.length();
|
|
392
401
|
}
|
|
393
402
|
|
|
@@ -398,7 +407,7 @@ export class Vec2 {
|
|
|
398
407
|
* @param {number} y - Value Y.
|
|
399
408
|
* @returns {Vec2}
|
|
400
409
|
*/
|
|
401
|
-
set(x, y) {
|
|
410
|
+
public set(x: number, y: number): Vec2 {
|
|
402
411
|
this.x = x;
|
|
403
412
|
this.y = y;
|
|
404
413
|
return this;
|
|
@@ -409,7 +418,7 @@ export class Vec2 {
|
|
|
409
418
|
* @public
|
|
410
419
|
* @returns {Vec2}
|
|
411
420
|
*/
|
|
412
|
-
negate() {
|
|
421
|
+
public negate(): Vec2 {
|
|
413
422
|
this.x = -this.x;
|
|
414
423
|
this.y = -this.y;
|
|
415
424
|
return this;
|
|
@@ -420,7 +429,7 @@ export class Vec2 {
|
|
|
420
429
|
* @public
|
|
421
430
|
* @returns {Vec2}
|
|
422
431
|
*/
|
|
423
|
-
negateTo() {
|
|
432
|
+
public negateTo(): Vec2 {
|
|
424
433
|
return new Vec2(-this.x, -this.y);
|
|
425
434
|
}
|
|
426
435
|
|
|
@@ -431,8 +440,8 @@ export class Vec2 {
|
|
|
431
440
|
* @param {Vec2} direction - Ray direction.
|
|
432
441
|
* @returns {Vec2}
|
|
433
442
|
*/
|
|
434
|
-
projToRay(pos, direction) {
|
|
435
|
-
|
|
443
|
+
public projToRay(pos: Vec2, direction: Vec2): Vec2 {
|
|
444
|
+
let v = Vec2.proj_b_to_a(Vec2.sub(this, pos), direction);
|
|
436
445
|
v.add(pos);
|
|
437
446
|
return v;
|
|
438
447
|
}
|
|
@@ -443,7 +452,7 @@ export class Vec2 {
|
|
|
443
452
|
* @param {Vec2} a - Another vector.
|
|
444
453
|
* @returns {number}
|
|
445
454
|
*/
|
|
446
|
-
angle(a) {
|
|
455
|
+
public angle(a: Vec2): number {
|
|
447
456
|
return Vec2.angle(this, a);
|
|
448
457
|
}
|
|
449
458
|
|
|
@@ -454,8 +463,8 @@ export class Vec2 {
|
|
|
454
463
|
* @param {number} l - Interpolate value.
|
|
455
464
|
* @returns {Vec2}
|
|
456
465
|
*/
|
|
457
|
-
lerp(v1, v2, l) {
|
|
458
|
-
|
|
466
|
+
public lerp(v1: Vec2, v2: Vec2, l: number): Vec2 {
|
|
467
|
+
let res = this.clone();
|
|
459
468
|
if (l <= 0.0) {
|
|
460
469
|
res.copy(v1);
|
|
461
470
|
} else if (l >= 1.0) {
|
|
@@ -466,7 +475,7 @@ export class Vec2 {
|
|
|
466
475
|
return res;
|
|
467
476
|
}
|
|
468
477
|
|
|
469
|
-
static get LERP_DELTA() {
|
|
478
|
+
static get LERP_DELTA(): number {
|
|
470
479
|
return 1e-6;
|
|
471
480
|
}
|
|
472
481
|
|
|
@@ -476,23 +485,23 @@ export class Vec2 {
|
|
|
476
485
|
* the vectors are treated as directions rather than points in space. The direction of the returned vector is interpolated
|
|
477
486
|
* by the angle and its magnitude is interpolated between the magnitudes of from and to.
|
|
478
487
|
* @public
|
|
479
|
-
* @param {Vec2} v2
|
|
488
|
+
* @param {Vec2} v2
|
|
480
489
|
* @param {number} t - The parameter t is clamped to the range [0, 1].
|
|
481
490
|
* @returns {Vec2}
|
|
482
491
|
*/
|
|
483
|
-
slerp(v2, t) {
|
|
484
|
-
|
|
492
|
+
public slerp(v2: Vec2, t: number): Vec2 {
|
|
493
|
+
let res = new Vec2();
|
|
485
494
|
|
|
486
495
|
if (t <= 0.0) {
|
|
487
496
|
res.copy(this);
|
|
488
|
-
return;
|
|
497
|
+
return res;
|
|
489
498
|
} else if (t >= 1.0) {
|
|
490
499
|
res.copy(v2);
|
|
491
|
-
return;
|
|
500
|
+
return res;
|
|
492
501
|
}
|
|
493
502
|
|
|
494
|
-
|
|
495
|
-
|
|
503
|
+
let omega, sinom, scale0, scale1;
|
|
504
|
+
let cosom = this.dot(v2);
|
|
496
505
|
|
|
497
506
|
if (1.0 - cosom > Vec2.LERP_DELTA) {
|
|
498
507
|
omega = Math.acos(cosom);
|
|
@@ -515,6 +524,6 @@ export class Vec2 {
|
|
|
515
524
|
* @param {number} [y] - Second value.
|
|
516
525
|
* @returns {Vec2}
|
|
517
526
|
*/
|
|
518
|
-
export function vec2(x, y) {
|
|
527
|
+
export function vec2(x: number = 0, y: number = 0): Vec2 {
|
|
519
528
|
return new Vec2(x, y);
|
|
520
529
|
}
|