@openglobus/og 0.28.7 → 1.0.0-rc1
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/LICENSE.md +218 -4
- package/README.md +30 -17
- package/lib/Deferred.d.ts +2 -2
- package/lib/Events.d.ts +1 -1
- package/lib/Globe.d.ts +8 -5
- package/lib/Object3d.d.ts +17 -14
- package/lib/Popup.d.ts +2 -2
- package/lib/assets/LabelWorker.worker-DYd7xn3M.js.map +1 -0
- package/lib/assets/PlainSegmentWorker.worker-JsKldq-e.js.map +1 -0
- package/lib/assets/TerrainWorker.worker-CqUJvMOv.js.map +1 -0
- package/lib/bv/index.d.ts +2 -2
- package/lib/camera/Camera.d.ts +280 -27
- package/lib/camera/Frustum.d.ts +100 -15
- package/lib/camera/PlanetCamera.d.ts +93 -8
- package/lib/camera/index.d.ts +2 -2
- package/lib/control/CameraFrameComposer.d.ts +2 -2
- package/lib/control/CameraFrameHandler.d.ts +1 -1
- package/lib/control/CompassButton.d.ts +2 -2
- package/lib/control/EarthCoordinates.d.ts +5 -2
- package/lib/control/FramebufferPreview.d.ts +3 -3
- package/lib/control/GeoImageDragControl.d.ts +1 -1
- package/lib/control/LayerAnimation.d.ts +2 -2
- package/lib/control/LayerSwitcher.d.ts +3 -0
- package/lib/control/Lighting.d.ts +4 -2
- package/lib/control/Navigation.d.ts +15 -11
- package/lib/control/OrthoSwitcher.d.ts +18 -0
- package/lib/control/SimpleTouchNavigation.d.ts +44 -0
- package/lib/control/Sun.d.ts +4 -2
- package/lib/control/TouchNavigation.d.ts +4 -8
- package/lib/control/atmosphere/Atmosphere.d.ts +2 -0
- package/lib/control/atmosphere/AtmosphereConfig.d.ts +2 -6
- package/lib/control/cameraDepthHandler/CameraDepthHandler.d.ts +17 -3
- package/lib/control/cameraDepthHandler/camera_depth.d.ts +2 -2
- package/lib/control/drawing/LineStringDrawingScene.d.ts +1 -0
- package/lib/control/drawing/PolygonDrawingScene.d.ts +13 -13
- package/lib/control/elevationProfile/ElevationProfile.d.ts +1 -1
- package/lib/control/elevationProfile/ElevationProfileLegend.d.ts +1 -1
- package/lib/control/elevationProfile/ElevationProfileScene.d.ts +8 -11
- package/lib/control/elevationProfile/ElevationProfileView.d.ts +16 -5
- package/lib/control/entityEditor/EntityEditor.d.ts +19 -0
- package/lib/control/{geoObjectEditor/GeoObjectEditorDialog.d.ts → entityEditor/EntityEditorDialog.d.ts} +9 -8
- package/lib/control/{geoObjectEditor/GeoObjectEditorScene.d.ts → entityEditor/EntityEditorScene.d.ts} +11 -11
- package/lib/control/{geoObjectEditor → entityEditor}/colors.d.ts +2 -2
- package/lib/control/entityTree/EntityTree.d.ts +46 -0
- package/lib/control/entityTree/EntityTreeView.d.ts +24 -0
- package/lib/control/heightRuler/HeightRulerScene.d.ts +1 -1
- package/lib/control/index.d.ts +5 -3
- package/lib/control/ruler/RulerScene.d.ts +7 -7
- package/lib/control/selection/SelectionScene.d.ts +5 -5
- package/lib/control/timeline/TimelineControl.d.ts +2 -2
- package/lib/control/timeline/TimelineModel.d.ts +1 -1
- package/lib/control/timeline/TimelineView.d.ts +52 -13
- package/lib/control/visibleExtent/segment.d.ts +7 -0
- package/lib/ellipsoid/index.d.ts +4 -4
- package/lib/entity/Entity.d.ts +114 -100
- package/lib/entity/EntityCollection.d.ts +95 -70
- package/lib/entity/{BaseBillboard.d.ts → billboard/BaseBillboard.d.ts} +16 -17
- package/lib/entity/{BaseBillboardHandler.d.ts → billboard/BaseBillboardHandler.d.ts} +24 -9
- package/lib/entity/{Billboard.d.ts → billboard/Billboard.d.ts} +4 -4
- package/lib/entity/{BillboardHandler.d.ts → billboard/BillboardHandler.d.ts} +1 -1
- package/lib/entity/{GeoObject.d.ts → geoObject/GeoObject.d.ts} +7 -6
- package/lib/entity/{GeoObjectHandler.d.ts → geoObject/GeoObjectHandler.d.ts} +29 -11
- package/lib/entity/{InstanceData.d.ts → geoObject/InstanceData.d.ts} +18 -13
- package/lib/entity/{Geometry.d.ts → geometry/Geometry.d.ts} +10 -10
- package/lib/entity/{GeometryHandler.d.ts → geometry/GeometryHandler.d.ts} +7 -7
- package/lib/entity/index.d.ts +8 -8
- package/lib/entity/{Label.d.ts → label/Label.d.ts} +12 -13
- package/lib/entity/{LabelHandler.d.ts → label/LabelHandler.d.ts} +31 -7
- package/lib/entity/{LabelWorker.d.ts → label/LabelWorker.d.ts} +3 -3
- package/lib/entity/{PointCloud.d.ts → pointCloud/PointCloud.d.ts} +18 -12
- package/lib/entity/{PointCloudHandler.d.ts → pointCloud/PointCloudHandler.d.ts} +4 -4
- package/lib/entity/polyline/Polyline.d.ts +242 -0
- package/lib/entity/polyline/PolylineBatchRenderer.d.ts +443 -0
- package/lib/entity/{PolylineHandler.d.ts → polyline/PolylineHandler.d.ts} +19 -7
- package/lib/entity/{Ray.d.ts → ray/Ray.d.ts} +27 -9
- package/lib/entity/{RayHandler.d.ts → ray/RayHandler.d.ts} +18 -8
- package/lib/entity/{Strip.d.ts → strip/Strip.d.ts} +21 -17
- package/lib/entity/{StripHandler.d.ts → strip/StripHandler.d.ts} +11 -6
- package/lib/index.d.ts +47 -42
- package/lib/layer/BaseGeoImage.d.ts +20 -17
- package/lib/layer/CanvasTiles.d.ts +14 -12
- package/lib/layer/GeoImage.d.ts +1 -1
- package/lib/layer/GeoTexture2d.d.ts +2 -2
- package/lib/layer/KML.d.ts +19 -18
- package/lib/layer/Layer.d.ts +72 -53
- package/lib/layer/Vector.d.ts +47 -30
- package/lib/layer/WMS.d.ts +1 -1
- package/lib/layer/XYZ.d.ts +11 -12
- package/lib/layer/index.d.ts +12 -12
- package/lib/math/Line2.d.ts +1 -1
- package/lib/math/Line3.d.ts +1 -1
- package/lib/math/Mat3.d.ts +3 -13
- package/lib/math/Mat4.d.ts +16 -10
- package/lib/math/Plane.d.ts +1 -1
- package/lib/math/Quat.d.ts +14 -12
- package/lib/math/Ray.d.ts +4 -3
- package/lib/math/Vec2.d.ts +25 -17
- package/lib/math/Vec3.d.ts +33 -31
- package/lib/math/Vec4.d.ts +1 -1
- package/lib/math/coder.d.ts +1 -1
- package/lib/math/index.d.ts +13 -14
- package/lib/mercator.d.ts +4 -4
- package/lib/og.css +1 -1
- package/lib/og.es.js +1 -1
- package/lib/og.es.js.map +1 -1
- package/lib/quadTree/EntityCollectionNode.d.ts +10 -10
- package/lib/quadTree/EntityCollectionsTreeStrategy.d.ts +5 -5
- package/lib/quadTree/QuadTreeStrategy.d.ts +3 -4
- package/lib/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +4 -4
- package/lib/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +4 -4
- package/lib/renderer/AtmosphereDeferredShading.d.ts +12 -0
- package/lib/renderer/IDeferredShadingPass.d.ts +8 -0
- package/lib/renderer/ITransparencyPass.d.ts +8 -0
- package/lib/renderer/PhongDeferredShading.d.ts +16 -0
- package/lib/renderer/Renderer.d.ts +166 -99
- package/lib/renderer/RendererEvents.d.ts +15 -5
- package/lib/renderer/WOITPass.d.ts +14 -0
- package/lib/res/night-4326.png +0 -0
- package/lib/res/night.png +0 -0
- package/lib/scene/AltitudeNearPlaneStrategy.d.ts +17 -0
- package/lib/scene/Axes.d.ts +3 -3
- package/lib/scene/Planet.d.ts +244 -69
- package/lib/scene/{RenderNode.d.ts → Scene.d.ts} +50 -46
- package/lib/scene/SkyBox.d.ts +5 -3
- package/lib/scene/index.d.ts +2 -2
- package/lib/segment/Segment.d.ts +29 -15
- package/lib/segment/SegmentLonLat.d.ts +0 -1
- package/lib/shadeModeConstants.d.ts +7 -0
- package/lib/shaders/applyDeferredDepth.d.ts +2 -0
- package/lib/shaders/atmos/atmos.d.ts +3 -3
- package/lib/shaders/billboard/billboard.d.ts +4 -3
- package/lib/shaders/deferredShading/deferredShading.d.ts +2 -0
- package/lib/shaders/deferredShading/deferredShadingAtmos.d.ts +3 -0
- package/lib/shaders/depth.d.ts +2 -2
- package/lib/shaders/geo_object/geo_object.d.ts +8 -4
- package/lib/shaders/label/label.d.ts +4 -4
- package/lib/shaders/pointCloud.d.ts +2 -2
- package/lib/shaders/polyline/polyline.d.ts +7 -3
- package/lib/shaders/ray/ray.d.ts +3 -2
- package/lib/shaders/screenFrame.d.ts +2 -2
- package/lib/shaders/segment/segment.d.ts +7 -0
- package/lib/shaders/skybox.d.ts +2 -2
- package/lib/shaders/strip/strip.d.ts +3 -0
- package/lib/shaders/tone_mapping/toneMapping.d.ts +2 -2
- package/lib/shaders/weightedOITResolve.d.ts +2 -0
- package/lib/terrain/BilTerrain.d.ts +1 -1
- package/lib/terrain/EmptyTerrain.d.ts +5 -6
- package/lib/terrain/GlobusTerrain.d.ts +18 -23
- package/lib/terrain/RgbTerrain.d.ts +8 -8
- package/lib/terrain/index.d.ts +5 -5
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/ui/Button.d.ts +7 -5
- package/lib/ui/ButtonGroup.d.ts +1 -1
- package/lib/ui/Checkbox.d.ts +2 -2
- package/lib/ui/Color.d.ts +2 -2
- package/lib/ui/Dialog.d.ts +30 -3
- package/lib/ui/Input.d.ts +2 -2
- package/lib/ui/Slider.d.ts +3 -2
- package/lib/ui/ToggleButton.d.ts +2 -2
- package/lib/ui/View.d.ts +1 -1
- package/lib/ui/icons.d.ts +1 -1
- package/lib/ui/index.d.ts +9 -9
- package/lib/utils/FontAtlas.d.ts +10 -3
- package/lib/utils/GeoImageCreator.d.ts +2 -2
- package/lib/utils/ImagesCacheManager.d.ts +3 -3
- package/lib/utils/Loader.d.ts +2 -2
- package/lib/utils/PlainSegmentWorker.d.ts +2 -2
- package/lib/utils/TerrainWorker.d.ts +2 -2
- package/lib/utils/TextureAtlas.d.ts +7 -2
- package/lib/utils/TextureResourceManager.d.ts +162 -0
- package/lib/utils/VectorTileCreator.d.ts +1 -1
- package/lib/utils/colorSpace.d.ts +9 -0
- package/lib/utils/gltf/gltfParser.d.ts +9 -2
- package/lib/utils/gltf/types.d.ts +20 -2
- package/lib/utils/shared.d.ts +11 -5
- package/lib/utils/textureResourceMeta.d.ts +9 -0
- package/lib/webgl/BaseFramebuffer.d.ts +7 -0
- package/lib/webgl/Framebuffer.d.ts +9 -6
- package/lib/webgl/Handler.d.ts +81 -99
- package/lib/webgl/ShaderProgram.d.ts +190 -0
- package/lib/webgl/index.d.ts +2 -2
- package/lib/webgl/variableHandlers.d.ts +2 -1
- package/package.json +77 -76
- package/lib/assets/LabelWorker.worker-BT1uJgYn.js.map +0 -1
- package/lib/assets/PlainSegmentWorker.worker-CT1cj8jj.js.map +0 -1
- package/lib/assets/TerrainWorker.worker-DmikdfB2.js.map +0 -1
- package/lib/control/OldMouseNavigation.d.ts +0 -65
- package/lib/control/ZoomControl.d.ts +0 -28
- package/lib/control/geoObjectEditor/GeoObjectEditor.d.ts +0 -13
- package/lib/control/visibleExtent/drawnode.d.ts +0 -7
- package/lib/entity/Polyline.d.ts +0 -417
- package/lib/light/LightSource.d.ts +0 -36
- package/lib/scene/BaseNode.d.ts +0 -61
- package/lib/shaders/drawnode/drawnode.d.ts +0 -8
- package/lib/webgl/Program.d.ts +0 -161
- package/lib/webgl/ProgramController.d.ts +0 -87
- /package/lib/control/{geoObjectEditor → entityEditor}/ArrowEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/AxisTrackEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/MoveAxisEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/MovePlaneEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/RotateEntity.d.ts +0 -0
- /package/lib/entity/{LabelWorker.worker.d.ts → label/LabelWorker.worker.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TerrainWorker.worker-CqUJvMOv.js","sources":["../src/utils/TerrainWorker.worker.js"],"sourcesContent":["/* eslint-env worker */\n\"use strict\";\n//\n//Terrain worker\n//\n\nfunction binarySearchFast(arr, x) {\n let start = 0,\n end = arr.length - 1;\n while (start <= end) {\n let k = Math.floor((start + end) * 0.5);\n if (Math.abs(arr[k] - x) < 1e-3) return k;\n else if (arr[k] < x) start = k + 1;\n else end = k - 1;\n }\n return -1;\n}\n\nfunction checkNoDataValue(noDataValues, value) {\n return binarySearchFast(noDataValues, value) !== -1;\n}\n\nvar Vec3 = function (x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n};\n\nvar doubleToTwoFloats = function (v, high, low) {\n let x = v.x,\n y = v.y,\n z = v.z;\n\n var doubleHigh;\n\n if (x >= 0.0) {\n doubleHigh = Math.floor(x / 65536.0) * 65536.0;\n high.x = Math.fround(doubleHigh);\n low.x = Math.fround(x - doubleHigh);\n } else {\n doubleHigh = Math.floor(-x / 65536.0) * 65536.0;\n high.x = Math.fround(-doubleHigh);\n low.x = Math.fround(x + doubleHigh);\n }\n\n if (y >= 0.0) {\n doubleHigh = Math.floor(y / 65536.0) * 65536.0;\n high.y = Math.fround(doubleHigh);\n low.y = Math.fround(y - doubleHigh);\n } else {\n doubleHigh = Math.floor(-y / 65536.0) * 65536.0;\n high.y = Math.fround(-doubleHigh);\n low.y = Math.fround(y + doubleHigh);\n }\n\n if (z >= 0.0) {\n doubleHigh = Math.floor(z / 65536.0) * 65536.0;\n high.z = Math.fround(doubleHigh);\n low.z = Math.fround(z - doubleHigh);\n } else {\n doubleHigh = Math.floor(-z / 65536.0) * 65536.0;\n high.z = Math.fround(-doubleHigh);\n low.z = Math.fround(z + doubleHigh);\n }\n};\n\nVec3.prototype.sub = function (v) {\n return new Vec3(this.x - v.x, this.y - v.y, this.z - v.z);\n};\n\nVec3.prototype.add = function (v) {\n return new Vec3(this.x + v.x, this.y + v.y, this.z + v.z);\n};\n\nVec3.prototype.cross = function (v) {\n return new Vec3(this.y * v.z - this.z * v.y, this.z * v.x - this.x * v.z, this.x * v.y - this.y * v.x);\n};\n\nVec3.prototype.normalize = function () {\n var x = this.x,\n y = this.y,\n z = this.z;\n var length = 1.0 / Math.sqrt(x * x + y * y + z * z);\n this.x = x * length;\n this.y = y * length;\n this.z = z * length;\n return this;\n};\n\nVec3.prototype.distance = function (v) {\n return this.sub(v).length();\n};\n\nVec3.prototype.length = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n};\n\nvar blerp = function (x, y, fQ11, fQ21, fQ12, fQ22) {\n return fQ11 * (1.0 - x) * (1.0 - y) + fQ21 * x * (1.0 - y) + fQ12 * (1.0 - x) * y + fQ22 * x * y;\n};\n\nvar _tempVec = new Vec3(0.0, 0.0, 0.0);\nvar _rtcTempVec = new Vec3(0.0, 0.0, 0.0);\n\nvar _tempHigh = new Vec3(0.0, 0.0, 0.0),\n _tempLow = new Vec3(0.0, 0.0, 0.0);\n\nself.onmessage = function (e) {\n var elevations = e.data.elevations,\n this_plainVertices = e.data.this_plainVertices,\n this_plainNormals = e.data.this_plainNormals,\n this_normalMapVertices = e.data.this_normalMapVertices,\n this_normalMapNormals = e.data.this_normalMapNormals,\n heightFactor = e.data.heightFactor,\n gridSize = e.data.gridSize,\n noDataValues = e.data.noDataValues,\n id = e.data.id;\n\n let rtc_x = e.data.relativeCenter[0],\n rtc_y = e.data.relativeCenter[1],\n rtc_z = e.data.relativeCenter[2];\n\n var xmin = 549755748352.0,\n xmax = -549755748352.0,\n ymin = 549755748352.0,\n ymax = -549755748352.0,\n zmin = 549755748352.0,\n zmax = -549755748352.0;\n\n const fileGridSize = Math.sqrt(elevations.length) - 1;\n\n const fileGridSize_one = fileGridSize + 1;\n const fileGridSize_one_x2 = fileGridSize_one * fileGridSize_one;\n const tgs = gridSize;\n const dg = fileGridSize / tgs;\n const gs = tgs + 1;\n const hf = heightFactor;\n\n var vInd = 0,\n noDataInd = 0;\n\n var gsgs3 = gs * gs * 3;\n\n var terrainVertices = new Float64Array(gsgs3),\n terrainVerticesHigh = new Float32Array(gsgs3),\n terrainVerticesLow = new Float32Array(gsgs3),\n noDataVertices = new Uint8Array(gs * gs);\n\n var normalMapNormals, normalMapVertices;\n\n var nv = this_normalMapVertices,\n nn = this_normalMapNormals;\n\n if (fileGridSize >= tgs) {\n normalMapNormals = new Float32Array(fileGridSize_one_x2 * 3);\n normalMapVertices = new Float64Array(fileGridSize_one_x2 * 3);\n\n for (let k = 0; k < fileGridSize_one_x2; k++) {\n var j = k % fileGridSize_one,\n i = ~~(k / fileGridSize_one);\n\n //\n // V0\n //\n var hInd0 = k;\n var vInd0 = hInd0 * 3;\n var currElv = elevations[hInd0];\n if (checkNoDataValue(noDataValues, currElv)) {\n currElv = 0.0;\n }\n var h0 = hf * currElv;\n var v0 = new Vec3(\n rtc_x + nv[vInd0] + h0 * nn[vInd0],\n rtc_y + nv[vInd0 + 1] + h0 * nn[vInd0 + 1],\n rtc_z + nv[vInd0 + 2] + h0 * nn[vInd0 + 2]\n );\n\n normalMapVertices[vInd0] = v0.x - rtc_x;\n normalMapVertices[vInd0 + 1] = v0.y - rtc_y;\n normalMapVertices[vInd0 + 2] = v0.z - rtc_z;\n\n //\n // The vertex goes into screen buffer\n if (i % dg === 0 && j % dg === 0) {\n let currVert = new Vec3(rtc_x + nv[vInd0], rtc_y + nv[vInd0 + 1], rtc_z + nv[vInd0 + 2]);\n let nextVert = new Vec3(rtc_x + nv[vInd0 + 3], rtc_y + nv[vInd0 + 4], rtc_z + nv[vInd0 + 5]);\n\n let nextElv = elevations[hInd0 + 1];\n if (checkNoDataValue(noDataValues, nextElv)) {\n nextElv = 0.0;\n }\n\n let eps = false;\n if (noDataValues.length === 0) {\n let step = currVert.distance(nextVert);\n let deltaElv = Math.abs(currElv - nextElv);\n eps = deltaElv / step > 10.0 || currElv < -5000;\n }\n\n if (eps) {\n noDataVertices[noDataInd] = 1;\n } else {\n noDataVertices[noDataInd] = 0;\n if (v0.x < xmin) xmin = v0.x;\n if (v0.x > xmax) xmax = v0.x;\n if (v0.y < ymin) ymin = v0.y;\n if (v0.y > ymax) ymax = v0.y;\n if (v0.z < zmin) zmin = v0.z;\n if (v0.z > zmax) zmax = v0.z;\n }\n\n let rtc_v0 = new Vec3(v0.x - rtc_x, v0.y - rtc_y, v0.z - rtc_z);\n doubleToTwoFloats(rtc_v0, _tempHigh, _tempLow);\n\n terrainVerticesHigh[vInd] = _tempHigh.x;\n terrainVerticesLow[vInd] = _tempLow.x;\n terrainVertices[vInd++] = rtc_v0.x;\n\n terrainVerticesHigh[vInd] = _tempHigh.y;\n terrainVerticesLow[vInd] = _tempLow.y;\n terrainVertices[vInd++] = rtc_v0.y;\n\n terrainVerticesHigh[vInd] = _tempHigh.z;\n terrainVerticesLow[vInd] = _tempLow.z;\n terrainVertices[vInd++] = rtc_v0.z;\n\n noDataInd++;\n }\n\n if (i !== fileGridSize && j !== fileGridSize) {\n //\n // V1\n //\n var hInd1 = k + 1;\n var vInd1 = hInd1 * 3;\n var elv = elevations[hInd1];\n if (checkNoDataValue(noDataValues, elv)) {\n elv = 0.0;\n }\n var h1 = hf * elv;\n var v1 = new Vec3(\n rtc_x + nv[vInd1] + h1 * nn[vInd1],\n rtc_y + nv[vInd1 + 1] + h1 * nn[vInd1 + 1],\n rtc_z + nv[vInd1 + 2] + h1 * nn[vInd1 + 2]\n );\n\n normalMapVertices[vInd1] = v1.x - rtc_x;\n normalMapVertices[vInd1 + 1] = v1.y - rtc_y;\n normalMapVertices[vInd1 + 2] = v1.z - rtc_z;\n\n //\n // V2\n //\n var hInd2 = k + fileGridSize_one;\n var vInd2 = hInd2 * 3;\n elv = elevations[hInd2];\n if (checkNoDataValue(noDataValues, elv)) {\n elv = 0.0;\n }\n var h2 = hf * elv;\n var v2 = new Vec3(\n rtc_x + nv[vInd2] + h2 * nn[vInd2],\n rtc_y + nv[vInd2 + 1] + h2 * nn[vInd2 + 1],\n rtc_z + nv[vInd2 + 2] + h2 * nn[vInd2 + 2]\n );\n\n normalMapVertices[vInd2] = v2.x - rtc_x;\n normalMapVertices[vInd2 + 1] = v2.y - rtc_y;\n normalMapVertices[vInd2 + 2] = v2.z - rtc_z;\n\n //\n // V3\n //\n var hInd3 = k + fileGridSize_one + 1;\n var vInd3 = hInd3 * 3;\n elv = elevations[hInd3];\n if (checkNoDataValue(noDataValues, elv)) {\n elv = 0.0;\n }\n var h3 = hf * elv;\n var v3 = new Vec3(\n rtc_x + nv[vInd3] + h3 * nn[vInd3],\n rtc_y + nv[vInd3 + 1] + h3 * nn[vInd3 + 1],\n rtc_z + nv[vInd3 + 2] + h3 * nn[vInd3 + 2]\n );\n\n normalMapVertices[vInd3] = v3.x - rtc_x;\n normalMapVertices[vInd3 + 1] = v3.y - rtc_y;\n normalMapVertices[vInd3 + 2] = v3.z - rtc_z;\n\n //\n // Normal\n //\n var e10 = v1.sub(v0),\n e20 = v2.sub(v0),\n e30 = v3.sub(v0);\n\n var sw = e20.cross(e30).normalize();\n var ne = e30.cross(e10).normalize();\n var n0 = ne.add(sw).normalize();\n\n normalMapNormals[vInd0] += n0.x;\n normalMapNormals[vInd0 + 1] += n0.y;\n normalMapNormals[vInd0 + 2] += n0.z;\n\n normalMapNormals[vInd1] += ne.x;\n normalMapNormals[vInd1 + 1] += ne.y;\n normalMapNormals[vInd1 + 2] += ne.z;\n\n normalMapNormals[vInd2] += sw.x;\n normalMapNormals[vInd2 + 1] += sw.y;\n normalMapNormals[vInd2 + 2] += sw.z;\n\n normalMapNormals[vInd3] += n0.x;\n normalMapNormals[vInd3 + 1] += n0.y;\n normalMapNormals[vInd3 + 2] += n0.z;\n }\n }\n } else {\n normalMapNormals = new Float32Array(gsgs3);\n normalMapVertices = new Float64Array(gsgs3);\n\n var oneSize = tgs / fileGridSize;\n var gsgs = gsgs3 / 3;\n var fgsOne = fileGridSize + 1;\n\n for (let i = 0; i < gsgs; i++) {\n let ii = Math.floor(i / gs),\n ij = i % gs;\n\n let qii = ii % oneSize,\n qij = ij % oneSize;\n\n let hlt_ind = Math.floor(ii / oneSize) * fgsOne + Math.floor(ij / oneSize);\n\n if (ij === tgs) {\n hlt_ind -= 1;\n qij = oneSize;\n }\n\n if (ii === tgs) {\n hlt_ind -= fgsOne;\n qii = oneSize;\n }\n\n let hrt_ind = hlt_ind + 1,\n hlb_ind = hlt_ind + fgsOne,\n hrb_ind = hlb_ind + 1;\n\n let h_lt = elevations[hlt_ind],\n h_rt = elevations[hrt_ind],\n h_lb = elevations[hlb_ind],\n h_rb = elevations[hrb_ind];\n\n if (checkNoDataValue(noDataValues, h_lt)) {\n h_lt = 0.0;\n }\n\n if (checkNoDataValue(noDataValues, h_rt)) {\n h_rt = 0.0;\n }\n\n if (checkNoDataValue(noDataValues, h_lb)) {\n h_lb = 0.0;\n }\n\n if (checkNoDataValue(noDataValues, h_rb)) {\n h_rb = 0.0;\n }\n\n let hi = blerp(qij / oneSize, qii / oneSize, h_lt, h_rt, h_lb, h_rb);\n\n let i3 = i * 3;\n\n _rtcTempVec.x = this_plainVertices[i3] + hi * this_plainNormals[i3];\n _rtcTempVec.y = this_plainVertices[i3 + 1] + hi * this_plainNormals[i3 + 1];\n _rtcTempVec.z = this_plainVertices[i3 + 2] + hi * this_plainNormals[i3 + 2];\n\n doubleToTwoFloats(_rtcTempVec, _tempHigh, _tempLow);\n\n terrainVertices[i3] = _rtcTempVec.x;\n terrainVertices[i3 + 1] = _rtcTempVec.y;\n terrainVertices[i3 + 2] = _rtcTempVec.z;\n\n terrainVerticesHigh[i3] = _tempHigh.x;\n terrainVerticesHigh[i3 + 1] = _tempHigh.y;\n terrainVerticesHigh[i3 + 2] = _tempHigh.z;\n\n terrainVerticesLow[i3] = _tempLow.x;\n terrainVerticesLow[i3 + 1] = _tempLow.y;\n terrainVerticesLow[i3 + 2] = _tempLow.z;\n\n _tempVec.x = _rtcTempVec.x + rtc_x;\n _tempVec.y = _rtcTempVec.y + rtc_y;\n _tempVec.z = _rtcTempVec.z + rtc_z;\n\n if (_tempVec.x < xmin) xmin = _tempVec.x;\n if (_tempVec.x > xmax) xmax = _tempVec.x;\n if (_tempVec.y < ymin) ymin = _tempVec.y;\n if (_tempVec.y > ymax) ymax = _tempVec.y;\n if (_tempVec.z < zmin) zmin = _tempVec.z;\n if (_tempVec.z > zmax) zmax = _tempVec.z;\n }\n\n normalMapVertices.set(terrainVertices);\n\n for (let k = 0; k < gsgs; k++) {\n let j = k % gs,\n i = ~~(k / gs);\n\n if (i !== tgs && j !== tgs) {\n let v0ind = k * 3,\n v1ind = v0ind + 3,\n v2ind = v0ind + gs * 3,\n v3ind = v2ind + 3;\n\n let v0 = new Vec3(\n terrainVertices[v0ind] + rtc_x,\n terrainVertices[v0ind + 1] + rtc_y,\n terrainVertices[v0ind + 2] + rtc_z\n ),\n v1 = new Vec3(\n terrainVertices[v1ind] + rtc_x,\n terrainVertices[v1ind + 1] + rtc_y,\n terrainVertices[v1ind + 2] + rtc_z\n ),\n v2 = new Vec3(\n terrainVertices[v2ind] + rtc_x,\n terrainVertices[v2ind + 1] + rtc_y,\n terrainVertices[v2ind + 2] + rtc_z\n ),\n v3 = new Vec3(\n terrainVertices[v3ind] + rtc_x,\n terrainVertices[v3ind + 1] + rtc_y,\n terrainVertices[v3ind + 2] + rtc_z\n );\n\n let e10 = v1.sub(v0).normalize(),\n e20 = v2.sub(v0).normalize(),\n e30 = v3.sub(v0).normalize();\n\n let sw = e20.cross(e30).normalize();\n let ne = e30.cross(e10).normalize();\n let n0 = ne.add(sw).normalize();\n\n normalMapNormals[v0ind] += n0.x;\n normalMapNormals[v0ind + 1] += n0.y;\n normalMapNormals[v0ind + 2] += n0.z;\n\n normalMapNormals[v1ind] += ne.x;\n normalMapNormals[v1ind + 1] += ne.y;\n normalMapNormals[v1ind + 2] += ne.z;\n\n normalMapNormals[v2ind] += sw.x;\n normalMapNormals[v2ind + 1] += sw.y;\n normalMapNormals[v2ind + 2] += sw.z;\n\n normalMapNormals[v3ind] += n0.x;\n normalMapNormals[v3ind + 1] += n0.y;\n normalMapNormals[v3ind + 2] += n0.z;\n }\n }\n }\n\n self.postMessage(\n {\n id: id,\n normalMapNormals: normalMapNormals,\n normalMapVertices: normalMapVertices,\n terrainVertices: terrainVertices,\n terrainVerticesHigh: terrainVerticesHigh,\n terrainVerticesLow: terrainVerticesLow,\n noDataVertices: noDataVertices,\n bounds: [xmin, ymin, zmin, xmax, ymax, zmax],\n relativeCenter: e.data.relativeCenter\n },\n [\n normalMapNormals.buffer,\n normalMapVertices.buffer,\n terrainVertices.buffer,\n terrainVerticesHigh.buffer,\n terrainVerticesLow.buffer,\n noDataVertices.buffer\n ]\n );\n};\n"],"names":["checkNoDataValue","noDataValues","value","arr","x","start","end","length","k","Math","floor","abs","Vec3","y","z","this","doubleToTwoFloats","v","high","low","doubleHigh","fround","prototype","sub","add","cross","normalize","sqrt","distance","_tempVec","_rtcTempVec","_tempHigh","_tempLow","self","onmessage","e","elevations","data","this_plainVertices","this_plainNormals","this_normalMapVertices","this_normalMapNormals","heightFactor","gridSize","id","rtc_x","relativeCenter","rtc_y","rtc_z","xmin","xmax","ymin","ymax","zmin","zmax","fileGridSize","fileGridSize_one","fileGridSize_one_x2","tgs","dg","gs","hf","normalMapNormals","normalMapVertices","vInd","noDataInd","gsgs3","terrainVertices","Float64Array","terrainVerticesHigh","Float32Array","terrainVerticesLow","noDataVertices","Uint8Array","nv","nn","j","i","hInd0","vInd0","currElv","h0","v0","currVert","nextVert","nextElv","eps","step","rtc_v0","hInd1","vInd1","elv","h1","v1","hInd2","vInd2","h2","v2","hInd3","vInd3","h3","v3","e10","e20","e30","sw","ne","n0","oneSize","gsgs","fgsOne","ii","ij","qii","qij","hlt_ind","hrt_ind","hlb_ind","hrb_ind","h_lt","h_rt","h_lb","h_rb","hi","i3","set","v0ind","v1ind","v2ind","v3ind","postMessage","bounds","buffer"],"mappings":"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"}
|
package/lib/bv/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Box } from
|
|
2
|
-
import { Sphere } from
|
|
1
|
+
import { Box } from "./Box";
|
|
2
|
+
import { Sphere } from "./Sphere";
|
|
3
3
|
export { Box, Sphere };
|
package/lib/camera/Camera.d.ts
CHANGED
|
@@ -9,10 +9,11 @@ import { Vec2 } from "../math/Vec2";
|
|
|
9
9
|
import type { NumberArray2 } from "../math/Vec2";
|
|
10
10
|
import { Vec3 } from "../math/Vec3";
|
|
11
11
|
import { Sphere } from "../bv/Sphere";
|
|
12
|
+
import { Ray } from "../math/Ray";
|
|
12
13
|
import { Quat } from "../math/Quat";
|
|
13
14
|
import { EasingFunction } from "../utils/easing";
|
|
14
15
|
import { LonLat } from "../LonLat";
|
|
15
|
-
export type CameraEvents = ["viewchange", "moveend", "flystart", "flyend", "flystop"];
|
|
16
|
+
export type CameraEvents = ["viewchange", "moveend", "flystart", "flyend", "flystop", "frustumschanged"];
|
|
16
17
|
export interface ICameraParams {
|
|
17
18
|
eye?: Vec3;
|
|
18
19
|
viewAngle?: number;
|
|
@@ -23,6 +24,7 @@ export interface ICameraParams {
|
|
|
23
24
|
height?: number;
|
|
24
25
|
isOrthographic?: boolean;
|
|
25
26
|
focusDistance?: number;
|
|
27
|
+
reverseDepth?: boolean;
|
|
26
28
|
}
|
|
27
29
|
export interface IFlyCartesianParams extends IFlyBaseParams {
|
|
28
30
|
look?: Vec3 | LonLat;
|
|
@@ -61,8 +63,8 @@ type CameraFlight = {
|
|
|
61
63
|
* @param {Vec3} [options.look=[0,0,0]] - Camera look position. Default (0,0,0)
|
|
62
64
|
* @param {Vec3} [options.up=[0,1,0]] - Camera eye position. Default (0,1,0)
|
|
63
65
|
*
|
|
64
|
-
* @fires
|
|
65
|
-
* @fires
|
|
66
|
+
* @fires viewchange
|
|
67
|
+
* @fires moveend
|
|
66
68
|
*/
|
|
67
69
|
declare class Camera {
|
|
68
70
|
static __counter__: number;
|
|
@@ -150,18 +152,74 @@ declare class Camera {
|
|
|
150
152
|
FARTHEST_FRUSTUM_INDEX: number;
|
|
151
153
|
currentFrustumIndex: number;
|
|
152
154
|
frustumColorIndex: number;
|
|
153
|
-
|
|
155
|
+
isFarthestFrustumActive: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Reverse-Z depth: GREATER test, clear 0, infinite projection; single frustum with large `far` for culling.
|
|
158
|
+
* @protected
|
|
159
|
+
*/
|
|
160
|
+
protected _reverseDepth: boolean;
|
|
161
|
+
protected _depthZeroToOne: boolean;
|
|
154
162
|
_width: number;
|
|
155
163
|
_height: number;
|
|
156
164
|
protected _flight: CameraFlight | null;
|
|
157
165
|
protected _completeCallback: Function | null;
|
|
158
166
|
protected _frameCallback: Function | null;
|
|
159
167
|
protected _flying: boolean;
|
|
168
|
+
slope: number;
|
|
160
169
|
constructor(options?: ICameraParams);
|
|
170
|
+
/**
|
|
171
|
+
* Returns current projection mode.
|
|
172
|
+
* @public
|
|
173
|
+
* @returns {boolean} `true` when orthographic projection is enabled.
|
|
174
|
+
*/
|
|
161
175
|
get isOrthographic(): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Returns reverse depth flag.
|
|
178
|
+
* @public
|
|
179
|
+
* @returns {boolean} `true` when reverse depth mode is enabled.
|
|
180
|
+
*/
|
|
181
|
+
get reverseDepth(): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Returns active reverse depth state.
|
|
184
|
+
* @public
|
|
185
|
+
* @returns {boolean} `true` for perspective reverse-Z mode.
|
|
186
|
+
*/
|
|
187
|
+
get reverseDepthActive(): boolean;
|
|
188
|
+
/**
|
|
189
|
+
* Returns active depth range mode.
|
|
190
|
+
* @public
|
|
191
|
+
* @returns {boolean} `true` when ZERO_TO_ONE depth range is active.
|
|
192
|
+
*/
|
|
193
|
+
get depthZeroToOne(): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* Enables or disables ZERO_TO_ONE depth range mode.
|
|
196
|
+
* @public
|
|
197
|
+
* @param {boolean} enabled - Depth range mode flag.
|
|
198
|
+
*/
|
|
199
|
+
setDepthZeroToOne(enabled: boolean): void;
|
|
200
|
+
/**
|
|
201
|
+
* Enables or disables orthographic projection mode.
|
|
202
|
+
* @public
|
|
203
|
+
* @param {boolean} isOrthographic - Orthographic mode flag.
|
|
204
|
+
*/
|
|
162
205
|
set isOrthographic(isOrthographic: boolean);
|
|
206
|
+
/**
|
|
207
|
+
* Returns focus distance used for orthographic projection size.
|
|
208
|
+
* @public
|
|
209
|
+
* @returns {number} Focus distance.
|
|
210
|
+
*/
|
|
163
211
|
get focusDistance(): number;
|
|
212
|
+
/**
|
|
213
|
+
* Sets focus distance used for orthographic projection size.
|
|
214
|
+
* @public
|
|
215
|
+
* @param {number} dist - Focus distance.
|
|
216
|
+
*/
|
|
164
217
|
set focusDistance(dist: number);
|
|
218
|
+
/**
|
|
219
|
+
* Returns camera identifier.
|
|
220
|
+
* @public
|
|
221
|
+
* @returns {number} Camera id.
|
|
222
|
+
*/
|
|
165
223
|
get id(): number;
|
|
166
224
|
/**
|
|
167
225
|
* Flies to the cartesian coordinates.
|
|
@@ -186,7 +244,16 @@ declare class Camera {
|
|
|
186
244
|
* @returns {boolean}
|
|
187
245
|
*/
|
|
188
246
|
isFlying(): boolean;
|
|
247
|
+
/**
|
|
248
|
+
* Checks whether the camera stopped moving and dispatches `moveend`.
|
|
249
|
+
* @public
|
|
250
|
+
*/
|
|
189
251
|
checkMoveEnd(): void;
|
|
252
|
+
/**
|
|
253
|
+
* Binds picking colors for all frustums.
|
|
254
|
+
* @public
|
|
255
|
+
* @param {Renderer} renderer - Renderer instance.
|
|
256
|
+
*/
|
|
190
257
|
bindFrustumsPickingColors(renderer: Renderer): void;
|
|
191
258
|
/**
|
|
192
259
|
* Camera initialization.
|
|
@@ -200,11 +267,41 @@ declare class Camera {
|
|
|
200
267
|
* @param {Vec3} [options.up] - Camera eye position. Default (0,1,0)
|
|
201
268
|
*/
|
|
202
269
|
protected _init(options: ICameraParams): void;
|
|
270
|
+
/**
|
|
271
|
+
* Returns up direction vector.
|
|
272
|
+
* @public
|
|
273
|
+
* @returns {Vec3} Up direction.
|
|
274
|
+
*/
|
|
203
275
|
getUp(): Vec3;
|
|
276
|
+
/**
|
|
277
|
+
* Returns down direction vector.
|
|
278
|
+
* @public
|
|
279
|
+
* @returns {Vec3} Down direction.
|
|
280
|
+
*/
|
|
204
281
|
getDown(): Vec3;
|
|
282
|
+
/**
|
|
283
|
+
* Returns right direction vector.
|
|
284
|
+
* @public
|
|
285
|
+
* @returns {Vec3} Right direction.
|
|
286
|
+
*/
|
|
205
287
|
getRight(): Vec3;
|
|
288
|
+
/**
|
|
289
|
+
* Returns left direction vector.
|
|
290
|
+
* @public
|
|
291
|
+
* @returns {Vec3} Left direction.
|
|
292
|
+
*/
|
|
206
293
|
getLeft(): Vec3;
|
|
294
|
+
/**
|
|
295
|
+
* Returns forward direction vector.
|
|
296
|
+
* @public
|
|
297
|
+
* @returns {Vec3} Forward direction.
|
|
298
|
+
*/
|
|
207
299
|
getForward(): Vec3;
|
|
300
|
+
/**
|
|
301
|
+
* Returns backward direction vector.
|
|
302
|
+
* @public
|
|
303
|
+
* @returns {Vec3} Backward direction.
|
|
304
|
+
*/
|
|
208
305
|
getBackward(): Vec3;
|
|
209
306
|
/**
|
|
210
307
|
* Updates camera view space
|
|
@@ -217,22 +314,52 @@ declare class Camera {
|
|
|
217
314
|
* @public
|
|
218
315
|
*/
|
|
219
316
|
refresh(): void;
|
|
317
|
+
/**
|
|
318
|
+
* Returns viewport width.
|
|
319
|
+
* @public
|
|
320
|
+
* @returns {number} Viewport width in pixels.
|
|
321
|
+
*/
|
|
220
322
|
get width(): number;
|
|
323
|
+
/**
|
|
324
|
+
* Returns viewport height.
|
|
325
|
+
* @public
|
|
326
|
+
* @returns {number} Viewport height in pixels.
|
|
327
|
+
*/
|
|
221
328
|
get height(): number;
|
|
329
|
+
/**
|
|
330
|
+
* Sets viewport size and updates projection.
|
|
331
|
+
* @public
|
|
332
|
+
* @param {number} width - Viewport width in pixels.
|
|
333
|
+
* @param {number} height - Viewport height in pixels.
|
|
334
|
+
*/
|
|
222
335
|
setViewportSize(width: number, height: number): void;
|
|
223
336
|
/**
|
|
224
|
-
* Returns aspect ratio
|
|
337
|
+
* Returns aspect ratio.
|
|
225
338
|
* @public
|
|
226
|
-
* @returns {number}
|
|
339
|
+
* @returns {number} Aspect ratio.
|
|
227
340
|
*/
|
|
228
341
|
getAspectRatio(): number;
|
|
229
342
|
/**
|
|
230
|
-
* Sets
|
|
343
|
+
* Sets camera projection.
|
|
231
344
|
* @public
|
|
232
|
-
* @param {number} viewAngle - Camera view angle
|
|
233
|
-
* @param {number} aspect - Screen aspect ratio
|
|
345
|
+
* @param {number} viewAngle - Camera view angle.
|
|
346
|
+
* @param {number} aspect - Screen aspect ratio.
|
|
234
347
|
*/
|
|
235
348
|
protected _setProj(viewAngle: number, aspect: number): void;
|
|
349
|
+
/**
|
|
350
|
+
* Updates near/far planes for one frustum.
|
|
351
|
+
* @public
|
|
352
|
+
* @param {number} near - Near clipping plane distance.
|
|
353
|
+
* @param {number} [far] - Far clipping plane distance.
|
|
354
|
+
* @param {number} [frustumIndex=0] - Frustum index.
|
|
355
|
+
*/
|
|
356
|
+
setNearFar(near: number, far?: number, frustumIndex?: number): void;
|
|
357
|
+
/**
|
|
358
|
+
* Replaces camera frustum ranges.
|
|
359
|
+
* @public
|
|
360
|
+
* @param {Array.<NumberArray2>} frustums - Array of `[near, far]` ranges.
|
|
361
|
+
*/
|
|
362
|
+
setFrustums(frustums: [number, number][]): void;
|
|
236
363
|
protected _updateViewportParameters(): void;
|
|
237
364
|
/**
|
|
238
365
|
* Sets camera view angle in degrees
|
|
@@ -241,13 +368,28 @@ declare class Camera {
|
|
|
241
368
|
*/
|
|
242
369
|
setViewAngle(angle: number): void;
|
|
243
370
|
/**
|
|
244
|
-
*
|
|
371
|
+
* Returns camera vertical view angle in degrees.
|
|
245
372
|
* @public
|
|
246
|
-
* @returns {number} angle
|
|
373
|
+
* @returns {number} View angle in degrees.
|
|
247
374
|
*/
|
|
248
375
|
getViewAngle(): number;
|
|
376
|
+
/**
|
|
377
|
+
* Returns camera vertical view angle in degrees.
|
|
378
|
+
* @public
|
|
379
|
+
* @returns {number} Vertical view angle.
|
|
380
|
+
*/
|
|
249
381
|
get viewAngle(): number;
|
|
382
|
+
/**
|
|
383
|
+
* Returns camera vertical view angle in degrees.
|
|
384
|
+
* @public
|
|
385
|
+
* @returns {number} Vertical view angle.
|
|
386
|
+
*/
|
|
250
387
|
get verticalViewAngle(): number;
|
|
388
|
+
/**
|
|
389
|
+
* Returns camera horizontal view angle in degrees.
|
|
390
|
+
* @public
|
|
391
|
+
* @returns {number} Horizontal view angle.
|
|
392
|
+
*/
|
|
251
393
|
get horizontalViewAngle(): number;
|
|
252
394
|
/**
|
|
253
395
|
* Sets camera to eye position
|
|
@@ -291,34 +433,108 @@ declare class Camera {
|
|
|
291
433
|
* @param {number} angle - Delta yaw angle in radians
|
|
292
434
|
*/
|
|
293
435
|
setYaw(angle: number): void;
|
|
436
|
+
/**
|
|
437
|
+
* Sets camera orientation from Euler angles.
|
|
438
|
+
* @public
|
|
439
|
+
* @param {number} pitch - Pitch angle in radians.
|
|
440
|
+
* @param {number} yaw - Yaw angle in radians.
|
|
441
|
+
* @param {number} roll - Roll angle in radians.
|
|
442
|
+
*/
|
|
294
443
|
setPitchYawRoll(pitch: number, yaw: number, roll: number): void;
|
|
444
|
+
/**
|
|
445
|
+
* Returns pitch angle.
|
|
446
|
+
* @public
|
|
447
|
+
* @returns {number} Pitch angle in radians.
|
|
448
|
+
*/
|
|
295
449
|
getPitch(): number;
|
|
450
|
+
/**
|
|
451
|
+
* Returns yaw angle.
|
|
452
|
+
* @public
|
|
453
|
+
* @returns {number} Yaw angle in radians.
|
|
454
|
+
*/
|
|
296
455
|
getYaw(): number;
|
|
456
|
+
/**
|
|
457
|
+
* Returns roll angle.
|
|
458
|
+
* @public
|
|
459
|
+
* @returns {number} Roll angle in radians.
|
|
460
|
+
*/
|
|
297
461
|
getRoll(): number;
|
|
462
|
+
/**
|
|
463
|
+
* Returns absolute pitch angle.
|
|
464
|
+
* @public
|
|
465
|
+
* @returns {number} Absolute pitch angle in radians.
|
|
466
|
+
*/
|
|
298
467
|
getAbsolutePitch(): number;
|
|
468
|
+
/**
|
|
469
|
+
* Returns absolute yaw angle.
|
|
470
|
+
* @public
|
|
471
|
+
* @returns {number} Absolute yaw angle in radians.
|
|
472
|
+
*/
|
|
299
473
|
getAbsoluteYaw(): number;
|
|
474
|
+
/**
|
|
475
|
+
* Returns absolute roll angle.
|
|
476
|
+
* @public
|
|
477
|
+
* @returns {number} Absolute roll angle in radians.
|
|
478
|
+
*/
|
|
300
479
|
getAbsoluteRoll(): number;
|
|
301
480
|
/**
|
|
302
|
-
* Returns camera quaternion
|
|
481
|
+
* Returns camera rotation quaternion.
|
|
482
|
+
* @public
|
|
483
|
+
* @returns {Quat} Camera rotation quaternion.
|
|
303
484
|
*/
|
|
304
485
|
getRotation(): Quat;
|
|
486
|
+
/**
|
|
487
|
+
* Sets camera orientation from a quaternion.
|
|
488
|
+
* @public
|
|
489
|
+
* @param {Quat} rot - Rotation quaternion.
|
|
490
|
+
* @param {Vec3} [up] - Base up vector.
|
|
491
|
+
* @param {Vec3} [right] - Base right vector.
|
|
492
|
+
* @param {Vec3} [back] - Base backward vector.
|
|
493
|
+
*/
|
|
305
494
|
setRotation(rot: Quat, up?: Vec3, right?: Vec3, back?: Vec3): void;
|
|
495
|
+
/**
|
|
496
|
+
* Rotates current camera basis by quaternion.
|
|
497
|
+
* @public
|
|
498
|
+
* @param {Quat} rot - Rotation quaternion.
|
|
499
|
+
*/
|
|
306
500
|
rotate(rot: Quat): void;
|
|
307
501
|
/**
|
|
308
502
|
* Returns normal vector direction to the unprojected screen point from camera eye
|
|
309
503
|
* @public
|
|
310
|
-
* @param {Vec2} pos - Screen
|
|
311
|
-
* @
|
|
504
|
+
* @param {Vec2} pos - Screen coordinates in pixels.
|
|
505
|
+
* @param {number} [dist] - Optional projection distance for orthographic mode.
|
|
506
|
+
* @param {Vec3} [outPos] - Optional output world position for orthographic mode.
|
|
507
|
+
* @returns {Vec3} - Direction vector.
|
|
312
508
|
*/
|
|
313
509
|
unproject2v(pos: Vec2, dist?: number, outPos?: Vec3): Vec3;
|
|
314
510
|
/**
|
|
315
511
|
* Returns normal vector direction to the unprojected screen point from camera eye
|
|
316
512
|
* @public
|
|
317
|
-
* @param {number} x - Screen X coordinate
|
|
318
|
-
* @param {number} y - Screen Y coordinate
|
|
319
|
-
* @
|
|
513
|
+
* @param {number} x - Screen X coordinate in pixels.
|
|
514
|
+
* @param {number} y - Screen Y coordinate in pixels.
|
|
515
|
+
* @param {number} [dist] - Optional projection distance for orthographic mode.
|
|
516
|
+
* @param {Vec3} [outPos] - Optional output world position for orthographic mode.
|
|
517
|
+
* @returns {Vec3} - Direction vector.
|
|
320
518
|
*/
|
|
321
519
|
unproject(x: number, y: number, dist?: number, outPos?: Vec3): Vec3;
|
|
520
|
+
/**
|
|
521
|
+
* Returns a world-space ray corresponding to the given screen point.
|
|
522
|
+
* For perspective camera the ray shares camera eye as origin.
|
|
523
|
+
* For orthographic camera the origin is offset across the view plane,
|
|
524
|
+
* and the direction equals the camera forward vector.
|
|
525
|
+
* @public
|
|
526
|
+
* @param {number} x - Screen X coordinate in pixels.
|
|
527
|
+
* @param {number} y - Screen Y coordinate in pixels.
|
|
528
|
+
* @returns {Ray}
|
|
529
|
+
*/
|
|
530
|
+
getRay(x: number, y: number, res?: Ray): Ray;
|
|
531
|
+
/**
|
|
532
|
+
* Returns a world-space ray corresponding to the given screen point.
|
|
533
|
+
* @public
|
|
534
|
+
* @param {Vec2} pos - Screen coordinates in pixels.
|
|
535
|
+
* @returns {Ray}
|
|
536
|
+
*/
|
|
537
|
+
getRay2v(pos: Vec2): Ray;
|
|
322
538
|
/**
|
|
323
539
|
* Gets projected 3d point to the 2d screen coordinates
|
|
324
540
|
* @public
|
|
@@ -377,47 +593,84 @@ declare class Camera {
|
|
|
377
593
|
*/
|
|
378
594
|
getViewMatrix(): NumberArray16;
|
|
379
595
|
/**
|
|
380
|
-
* Returns normal matrix.
|
|
596
|
+
* Returns camera normal matrix.
|
|
381
597
|
* @public
|
|
382
|
-
* @returns {NumberArray9}
|
|
598
|
+
* @returns {NumberArray9}
|
|
383
599
|
*/
|
|
384
600
|
getNormalMatrix(): NumberArray9;
|
|
601
|
+
/**
|
|
602
|
+
* Sets current active frustum index.
|
|
603
|
+
* @public
|
|
604
|
+
* @param {number} k - Frustum index.
|
|
605
|
+
*/
|
|
385
606
|
setCurrentFrustum(k: number): void;
|
|
607
|
+
/**
|
|
608
|
+
* Returns current active frustum index.
|
|
609
|
+
* @public
|
|
610
|
+
* @returns {number} Current frustum index.
|
|
611
|
+
*/
|
|
386
612
|
getCurrentFrustum(): number;
|
|
613
|
+
/**
|
|
614
|
+
* Checks whether sphere intersects any camera frustum.
|
|
615
|
+
* @public
|
|
616
|
+
* @param {Sphere} sphere - Bounding sphere.
|
|
617
|
+
* @returns {boolean} `true` when visible in at least one frustum.
|
|
618
|
+
*/
|
|
387
619
|
containsSphere(sphere: Sphere): boolean;
|
|
620
|
+
/**
|
|
621
|
+
* Returns current active frustum.
|
|
622
|
+
* @public
|
|
623
|
+
* @returns {Frustum} Active frustum instance.
|
|
624
|
+
*/
|
|
388
625
|
get frustum(): Frustum;
|
|
389
626
|
/**
|
|
390
627
|
* Returns projection matrix.
|
|
391
628
|
* @public
|
|
392
|
-
* @returns {
|
|
629
|
+
* @returns {NumberArray16} Projection matrix.
|
|
393
630
|
*/
|
|
394
631
|
getProjectionMatrix(): NumberArray16;
|
|
395
632
|
/**
|
|
396
|
-
* Returns projection
|
|
633
|
+
* Returns projection-view matrix.
|
|
397
634
|
* @public
|
|
398
|
-
* @
|
|
635
|
+
* @returns {NumberArray16} Projection-view matrix.
|
|
399
636
|
*/
|
|
400
637
|
getProjectionViewMatrix(): NumberArray16;
|
|
401
638
|
/**
|
|
402
|
-
* Returns projection
|
|
639
|
+
* Returns projection-view RTE matrix.
|
|
403
640
|
* @public
|
|
404
|
-
* @
|
|
641
|
+
* @returns {NumberArray16} Projection-view RTE matrix.
|
|
405
642
|
*/
|
|
406
643
|
getProjectionViewRTEMatrix(): NumberArray16;
|
|
407
644
|
/**
|
|
408
|
-
* Returns inverse projection
|
|
645
|
+
* Returns inverse projection-view matrix.
|
|
409
646
|
* @public
|
|
410
|
-
* @returns {
|
|
647
|
+
* @returns {NumberArray16} Inverse projection-view matrix.
|
|
411
648
|
*/
|
|
412
649
|
getInverseProjectionViewMatrix(): NumberArray16;
|
|
413
650
|
/**
|
|
414
651
|
* Returns inverse projection matrix.
|
|
415
652
|
* @public
|
|
416
|
-
* @returns {
|
|
653
|
+
* @returns {NumberArray16} Inverse projection matrix.
|
|
417
654
|
*/
|
|
418
655
|
getInverseProjectionMatrix(): NumberArray16;
|
|
656
|
+
/**
|
|
657
|
+
* Places camera at a fixed distance from a point and looks at it.
|
|
658
|
+
* @public
|
|
659
|
+
* @param {Vec3} cartesian - Target cartesian point.
|
|
660
|
+
* @param {number} [distance=10000.0] - Distance from the target.
|
|
661
|
+
*/
|
|
419
662
|
viewDistance(cartesian: Vec3, distance?: number): void;
|
|
663
|
+
/**
|
|
664
|
+
* Copies camera pose and projection settings from another camera.
|
|
665
|
+
* @public
|
|
666
|
+
* @param {Camera} cam - Source camera.
|
|
667
|
+
*/
|
|
420
668
|
copy(cam: Camera): void;
|
|
669
|
+
/**
|
|
670
|
+
* Returns camera altitude value for base camera.
|
|
671
|
+
* @public
|
|
672
|
+
* @returns {number} Camera `y` coordinate.
|
|
673
|
+
*/
|
|
421
674
|
getAltitude(): number;
|
|
422
675
|
}
|
|
423
676
|
export { Camera };
|