@loaders.gl/las 4.0.0-beta.2 → 4.0.0-beta.3
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/dist/dist.dev.js +18609 -0
- package/dist/{dist.min.js → index.cjs} +2884 -2756
- package/dist/{esm/index.js → index.js} +2 -2
- package/dist/index.js.map +1 -0
- package/dist/{esm/las-loader.js → las-loader.js} +1 -1
- package/dist/las-loader.js.map +1 -0
- package/dist/las-worker.js +15797 -15503
- package/dist/lib/get-las-schema.js.map +1 -0
- package/dist/lib/las-types.js.map +1 -0
- package/dist/{esm/lib → lib}/laslaz-decoder.js +28 -29
- package/dist/lib/laslaz-decoder.js.map +1 -0
- package/dist/lib/libs/laz-perf.d.ts.map +1 -1
- package/dist/lib/libs/laz-perf.js +2 -0
- package/dist/lib/libs/laz-perf.js.map +1 -0
- package/dist/{esm/lib → lib}/parse-las.js +2 -2
- package/dist/lib/parse-las.js.map +1 -0
- package/dist/{esm/workers → workers}/las-worker.js +1 -1
- package/dist/workers/las-worker.js.map +1 -0
- package/package.json +16 -8
- package/src/lib/libs/laz-perf.ts +2 -1
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/index.js +0 -44
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/las-loader.js +0 -30
- package/dist/es5/las-loader.js.map +0 -1
- package/dist/es5/lib/get-las-schema.js +0 -38
- package/dist/es5/lib/get-las-schema.js.map +0 -1
- package/dist/es5/lib/las-types.js +0 -2
- package/dist/es5/lib/las-types.js.map +0 -1
- package/dist/es5/lib/laslaz-decoder.js +0 -364
- package/dist/es5/lib/laslaz-decoder.js.map +0 -1
- package/dist/es5/lib/libs/laz-perf.js +0 -2
- package/dist/es5/lib/libs/laz-perf.js.map +0 -1
- package/dist/es5/lib/parse-las.js +0 -187
- package/dist/es5/lib/parse-las.js.map +0 -1
- package/dist/es5/workers/las-worker.js +0 -6
- package/dist/es5/workers/las-worker.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/las-loader.js.map +0 -1
- package/dist/esm/lib/get-las-schema.js.map +0 -1
- package/dist/esm/lib/las-types.js.map +0 -1
- package/dist/esm/lib/laslaz-decoder.js.map +0 -1
- package/dist/esm/lib/libs/laz-perf.js +0 -2
- package/dist/esm/lib/libs/laz-perf.js.map +0 -1
- package/dist/esm/lib/parse-las.js.map +0 -1
- package/dist/esm/workers/las-worker.js.map +0 -1
- package/src/bundle.ts +0 -4
- /package/dist/{esm/lib → lib}/get-las-schema.js +0 -0
- /package/dist/{esm/lib → lib}/las-types.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getMeshBoundingBox } from '@loaders.gl/schema';
|
|
2
|
-
import { LASFile } from
|
|
3
|
-
import { getLASSchema } from
|
|
2
|
+
import { LASFile } from "./laslaz-decoder.js";
|
|
3
|
+
import { getLASSchema } from "./get-las-schema.js";
|
|
4
4
|
export function parseLAS(arrayBuffer, options) {
|
|
5
5
|
return parseLASMesh(arrayBuffer, options);
|
|
6
6
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-las.js","names":["getMeshBoundingBox","LASFile","getLASSchema","parseLAS","arrayBuffer","options","parseLASMesh","_options$las","arguments","length","undefined","pointIndex","positions","colors","intensities","classifications","originalHeader","lasMesh","loader","loaderData","schema","fields","metadata","header","vertexCount","boundingBox","attributes","topology","mode","parseLASChunked","las","skip","_options$las3","_options$onProgress","decoder","lasHeader","_options$las2","total","totalToRead","PositionsType","fp64","Float64Array","Float32Array","pointsFormatId","Uint8Array","Uint16Array","POSITION","value","size","intensity","classification","COLOR_0","batchSize","pointsCount","scale","scaleX","scaleY","scaleZ","offset","offsetX","offsetY","offsetZ","twoByteColor","detectTwoByteColors","colorDepth","i","position","color","getPoint","meshBatch","totalRead","progress","onProgress","call","rawData","onParseData","dataHandler","open","getHeader","Unpacker","getUnpacker","Math","ceil","max","chunk","readData","count","versionAsString","isCompressed","unpacker","buffer","hasMoreData","e","close","console","warn"],"sources":["../../src/lib/parse-las.ts"],"sourcesContent":["// ported and es6-ified from https://github.com/verma/plasio/\n// import type {ArrowTable, ColumnarTable} from '@loaders.gl/schema';\nimport type {LASLoaderOptions} from '../las-loader';\nimport type {LASMesh, LASHeader} from './las-types';\nimport {getMeshBoundingBox /* , convertMesh */} from '@loaders.gl/schema';\nimport {LASFile} from './laslaz-decoder';\nimport {getLASSchema} from './get-las-schema';\n\ntype LASChunk = {\n count: number;\n buffer: ArrayBuffer;\n hasMoreData: boolean;\n versionAsString?: string;\n isCompressed?: boolean;\n};\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nexport function parseLAS(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASMesh {\n return parseLASMesh(arrayBuffer, options);\n // This code breaks pointcloud example on the website\n // const mesh = parseLASMesh(arrayBuffer, options);\n // return convertMesh(mesh, options?.las?.shape || 'mesh') as LASMesh | ArrowTable | ColumnarTable;\n}\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nfunction parseLASMesh(arrayBuffer: ArrayBuffer, options: LASLoaderOptions = {}): LASMesh {\n let pointIndex: number = 0;\n\n let positions: Float32Array | Float64Array;\n let colors: Uint8Array | null;\n let intensities: Uint16Array;\n let classifications: Uint8Array;\n let originalHeader: any;\n\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: {} as LASHeader,\n // shape: 'mesh',\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: 0,\n boundingBox: [\n [0, 0, 0],\n [0, 0, 0]\n ]\n },\n attributes: {},\n topology: 'point-list',\n mode: 0 // GL.POINTS\n };\n\n /* eslint-disable max-statements */\n // @ts-ignore Possibly undefined\n parseLASChunked(arrayBuffer, options.las?.skip, (decoder: any = {}, lasHeader: LASHeader) => {\n if (!originalHeader) {\n originalHeader = lasHeader;\n const total = lasHeader.totalToRead;\n\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n positions = new PositionsType(total * 3);\n // laslaz-decoder.js `pointFormatReaders`\n colors = lasHeader.pointsFormatId >= 2 ? new Uint8Array(total * 4) : null;\n intensities = new Uint16Array(total);\n classifications = new Uint8Array(total);\n\n lasMesh.loaderData = lasHeader;\n lasMesh.attributes = {\n POSITION: {value: positions, size: 3},\n // non-gltf attributes, use non-capitalized names for now\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n lasMesh.attributes.COLOR_0 = {value: colors, size: 4};\n }\n }\n\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n\n positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && colors) {\n if (twoByteColor) {\n colors[pointIndex * 4] = color[0] / 256;\n colors[pointIndex * 4 + 1] = color[1] / 256;\n colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n colors[pointIndex * 4] = color[0];\n colors[pointIndex * 4 + 1] = color[1];\n colors[pointIndex * 4 + 2] = color[2];\n }\n colors[pointIndex * 4 + 3] = 255;\n }\n\n intensities[pointIndex] = intensity;\n classifications[pointIndex] = classification;\n\n pointIndex++;\n }\n\n const meshBatch = {\n ...lasMesh,\n header: {\n vertexCount: lasHeader.totalRead\n },\n progress: lasHeader.totalRead / lasHeader.totalToRead\n };\n\n options?.onProgress?.(meshBatch);\n });\n /* eslint-enable max-statements */\n\n lasMesh.header = {\n vertexCount: originalHeader.totalToRead,\n boundingBox: getMeshBoundingBox(lasMesh?.attributes || {})\n };\n\n if (lasMesh) {\n lasMesh.schema = getLASSchema(lasMesh.loaderData, lasMesh.attributes);\n }\n return lasMesh;\n}\n\n/**\n * parse laz data\n * @param rawData\n * @param skip\n * @param onParseData\n * @return parsed point cloud\n */\n/* eslint-enable max-statements */\nexport function parseLASChunked(rawData: ArrayBuffer, skip: number, onParseData: any = {}): void {\n const dataHandler = new LASFile(rawData);\n\n try {\n // open data\n dataHandler.open();\n\n const header = dataHandler.getHeader();\n // start loading\n const Unpacker = dataHandler.getUnpacker();\n\n const totalToRead = Math.ceil(header.pointsCount / Math.max(1, skip));\n header.totalToRead = totalToRead;\n let totalRead = 0;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n const chunk: LASChunk = dataHandler.readData(1000 * 100, 0, skip);\n\n totalRead += chunk.count;\n\n header.totalRead = totalRead;\n header.versionAsString = chunk.versionAsString;\n header.isCompressed = chunk.isCompressed;\n\n const unpacker = new Unpacker(chunk.buffer, chunk.count, header);\n\n // surface unpacker and progress via call back\n // use unpacker.pointsCount and unpacker.getPoint(i) to handle data in app\n onParseData(unpacker, header);\n\n if (!chunk.hasMoreData || totalRead >= totalToRead) {\n break;\n }\n }\n } catch (e) {\n throw e;\n } finally {\n dataHandler.close();\n }\n}\n\n/**\n * @param decoder\n * @param batchSize\n * @param colorDepth\n * @returns boolean\n */\nfunction detectTwoByteColors(\n decoder: any = {},\n batchSize: number,\n colorDepth?: number | string\n): boolean {\n let twoByteColor = false;\n switch (colorDepth) {\n case 8:\n twoByteColor = false;\n break;\n case 16:\n twoByteColor = true;\n break;\n case 'auto':\n if (decoder.getPoint(0).color) {\n for (let i = 0; i < batchSize; i++) {\n const {color} = decoder.getPoint(i);\n // eslint-disable-next-line max-depth\n if (color[0] > 255 || color[1] > 255 || color[2] > 255) {\n twoByteColor = true;\n }\n }\n }\n break;\n default:\n // eslint-disable-next-line\n console.warn('las: illegal value for options.las.colorDepth');\n break;\n }\n return twoByteColor;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"las-worker.js","names":["createLoaderWorker","LASLoader"],"sources":["../../src/workers/las-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {LASLoader} from '../index';\n\ncreateLoaderWorker(LASLoader);\n"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,0BAA0B;AAAC,SACpDC,SAAS;AAEjBD,kBAAkB,CAACC,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/las",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.3",
|
|
4
4
|
"description": "Framework-independent loader for the LAS and LAZ formats",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
8
9
|
},
|
|
@@ -20,8 +21,15 @@
|
|
|
20
21
|
"LAZ"
|
|
21
22
|
],
|
|
22
23
|
"types": "dist/index.d.ts",
|
|
23
|
-
"main": "dist/
|
|
24
|
-
"module": "dist/
|
|
24
|
+
"main": "dist/index.cjs",
|
|
25
|
+
"module": "dist/index.js",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"import": "./dist/index.js",
|
|
29
|
+
"require": "./dist/index.cjs",
|
|
30
|
+
"types": "./dist/index.d.ts"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
25
33
|
"sideEffects": false,
|
|
26
34
|
"browser": {
|
|
27
35
|
"fs": false,
|
|
@@ -35,14 +43,14 @@
|
|
|
35
43
|
"README.md"
|
|
36
44
|
],
|
|
37
45
|
"scripts": {
|
|
38
|
-
"pre-build": "npm run build-bundle && npm run build-worker",
|
|
39
|
-
"build-bundle": "
|
|
46
|
+
"pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev && npm run build-worker",
|
|
47
|
+
"build-bundle": "ocular-bundle ./src/index.ts",
|
|
40
48
|
"build-worker": "esbuild src/workers/las-worker.ts --bundle --outfile=dist/las-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
41
49
|
},
|
|
42
50
|
"dependencies": {
|
|
43
51
|
"@babel/runtime": "^7.3.1",
|
|
44
|
-
"@loaders.gl/loader-utils": "4.0.0-beta.
|
|
45
|
-
"@loaders.gl/schema": "4.0.0-beta.
|
|
52
|
+
"@loaders.gl/loader-utils": "4.0.0-beta.3",
|
|
53
|
+
"@loaders.gl/schema": "4.0.0-beta.3"
|
|
46
54
|
},
|
|
47
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "7ba9621cc51c7a26c407086ac86171f35b8712af"
|
|
48
56
|
}
|
package/src/lib/libs/laz-perf.ts
CHANGED
|
@@ -63,7 +63,8 @@ export default function getModule() {
|
|
|
63
63
|
if (ENVIRONMENT_IS_WORKER) {
|
|
64
64
|
scriptDirectory = require('path').dirname(scriptDirectory) + '/';
|
|
65
65
|
} else {
|
|
66
|
-
|
|
66
|
+
const dirname = typeof __dirname !== 'undefined' ? __dirname : '';
|
|
67
|
+
scriptDirectory = dirname + '/';
|
|
67
68
|
}
|
|
68
69
|
read_ = function shell_read(filename, binary) {
|
|
69
70
|
var ret = tryParseAsDataURI(filename);
|
package/dist/bundle.d.ts
DELETED
package/dist/bundle.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
|
package/dist/es5/bundle.js
DELETED
package/dist/es5/bundle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
|
package/dist/es5/index.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.LASLoader = void 0;
|
|
8
|
-
Object.defineProperty(exports, "LASWorkerLoader", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
get: function get() {
|
|
11
|
-
return _lasLoader.LASLoader;
|
|
12
|
-
}
|
|
13
|
-
});
|
|
14
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var _lasLoader = require("./las-loader");
|
|
18
|
-
var _parseLas = require("./lib/parse-las");
|
|
19
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
21
|
-
var LASLoader = _objectSpread(_objectSpread({}, _lasLoader.LASLoader), {}, {
|
|
22
|
-
parse: function () {
|
|
23
|
-
var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
|
|
24
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
25
|
-
while (1) switch (_context.prev = _context.next) {
|
|
26
|
-
case 0:
|
|
27
|
-
return _context.abrupt("return", (0, _parseLas.parseLAS)(arrayBuffer, options));
|
|
28
|
-
case 1:
|
|
29
|
-
case "end":
|
|
30
|
-
return _context.stop();
|
|
31
|
-
}
|
|
32
|
-
}, _callee);
|
|
33
|
-
}));
|
|
34
|
-
function parse(_x, _x2) {
|
|
35
|
-
return _parse.apply(this, arguments);
|
|
36
|
-
}
|
|
37
|
-
return parse;
|
|
38
|
-
}(),
|
|
39
|
-
parseSync: function parseSync(arrayBuffer, options) {
|
|
40
|
-
return (0, _parseLas.parseLAS)(arrayBuffer, options);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
exports.LASLoader = LASLoader;
|
|
44
|
-
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_lasLoader","require","_parseLas","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","LASLoader","LASWorkerLoader","parse","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","options","wrap","_callee$","_context","prev","next","abrupt","parseLAS","stop","_x","_x2","parseSync","exports"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {LASLoaderOptions} from './las-loader';\nimport type {LASMesh} from './lib/las-types';\nimport {LASLoader as LASWorkerLoader} from './las-loader';\nimport {parseLAS} from './lib/parse-las';\n\n// LASLoader\n\nexport type {LASLoaderOptions};\nexport {LASWorkerLoader};\n\n/**\n * Loader for the LAS (LASer) point cloud format\n */\nexport const LASLoader: LoaderWithParser<LASMesh, never, LASLoaderOptions> = {\n ...LASWorkerLoader,\n parse: async (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n parseLAS(arrayBuffer, options),\n parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n parseLAS(arrayBuffer, options)\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAGA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAAyC,SAAAE,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAUlC,IAAMY,SAA6D,GAAAb,aAAA,CAAAA,aAAA,KACrEc,oBAAe;EAClBC,KAAK;IAAA,IAAAC,MAAA,OAAAC,kBAAA,CAAAR,OAAA,EAAAS,YAAA,CAAAT,OAAA,CAAAU,IAAA,CAAE,SAAAC,QAAOC,WAAwB,EAAEC,OAA0B;MAAA,OAAAJ,YAAA,CAAAT,OAAA,CAAAc,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WAChE,IAAAC,kBAAQ,EAACR,WAAW,EAAEC,OAAO,CAAC;UAAA;UAAA;YAAA,OAAAG,QAAA,CAAAK,IAAA;QAAA;MAAA,GAAAV,OAAA;IAAA;IAAA,SAAAL,MAAAgB,EAAA,EAAAC,GAAA;MAAA,OAAAhB,MAAA,CAAAjB,KAAA,OAAAI,SAAA;IAAA;IAAA,OAAAY,KAAA;EAAA;EAChCkB,SAAS,EAAE,SAAAA,UAACZ,WAAwB,EAAEC,OAA0B;IAAA,OAC9D,IAAAO,kBAAQ,EAACR,WAAW,EAAEC,OAAO,CAAC;EAAA;AAAA,EACjC;AAACY,OAAA,CAAArB,SAAA,GAAAA,SAAA"}
|
package/dist/es5/las-loader.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.LASLoader = void 0;
|
|
7
|
-
var VERSION = typeof "4.0.0-beta.2" !== 'undefined' ? "4.0.0-beta.2" : 'latest';
|
|
8
|
-
var DEFAULT_LAS_OPTIONS = {
|
|
9
|
-
las: {
|
|
10
|
-
shape: 'mesh',
|
|
11
|
-
fp64: false,
|
|
12
|
-
skip: 1,
|
|
13
|
-
colorDepth: 8
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
var LASLoader = {
|
|
17
|
-
name: 'LAS',
|
|
18
|
-
id: 'las',
|
|
19
|
-
module: 'las',
|
|
20
|
-
version: VERSION,
|
|
21
|
-
worker: true,
|
|
22
|
-
extensions: ['las', 'laz'],
|
|
23
|
-
mimeTypes: ['application/octet-stream'],
|
|
24
|
-
text: true,
|
|
25
|
-
binary: true,
|
|
26
|
-
tests: ['LAS'],
|
|
27
|
-
options: DEFAULT_LAS_OPTIONS
|
|
28
|
-
};
|
|
29
|
-
exports.LASLoader = LASLoader;
|
|
30
|
-
//# sourceMappingURL=las-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"las-loader.js","names":["VERSION","DEFAULT_LAS_OPTIONS","las","shape","fp64","skip","colorDepth","LASLoader","name","id","module","version","worker","extensions","mimeTypes","text","binary","tests","options","exports"],"sources":["../../src/las-loader.ts"],"sourcesContent":["// LASER (LAS) FILE FORMAT\nimport type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {LASMesh} from './lib/las-types';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type LASLoaderOptions = LoaderOptions & {\n las?: {\n shape?: 'mesh' | 'columnar-table' | 'arrow-table';\n fp64?: boolean;\n skip?: number;\n colorDepth?: number | string;\n };\n onProgress?: Function;\n};\n\nconst DEFAULT_LAS_OPTIONS: LASLoaderOptions = {\n las: {\n shape: 'mesh',\n fp64: false,\n skip: 1,\n colorDepth: 8\n }\n};\n\n/**\n * Loader for the LAS (LASer) point cloud format\n */\nexport const LASLoader: Loader<LASMesh, never, LASLoaderOptions> = {\n name: 'LAS',\n id: 'las',\n module: 'las',\n version: VERSION,\n worker: true,\n extensions: ['las', 'laz'], // LAZ is the \"compressed\" flavor of LAS,\n mimeTypes: ['application/octet-stream'], // TODO - text version?\n text: true,\n binary: true,\n tests: ['LAS'],\n options: DEFAULT_LAS_OPTIONS\n};\n"],"mappings":";;;;;;AAMA,IAAMA,OAAO,GAAG,qBAAkB,KAAK,WAAW,oBAAiB,QAAQ;AAY3E,IAAMC,mBAAqC,GAAG;EAC5CC,GAAG,EAAE;IACHC,KAAK,EAAE,MAAM;IACbC,IAAI,EAAE,KAAK;IACXC,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE;EACd;AACF,CAAC;AAKM,IAAMC,SAAmD,GAAG;EACjEC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEX,OAAO;EAChBY,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;EAC1BC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,KAAK,CAAC;EACdC,OAAO,EAAEjB;AACX,CAAC;AAACkB,OAAA,CAAAZ,SAAA,GAAAA,SAAA"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getLASSchema = getLASSchema;
|
|
7
|
-
exports.makeMetadataFromLasHeader = makeMetadataFromLasHeader;
|
|
8
|
-
var _schema = require("@loaders.gl/schema");
|
|
9
|
-
function getLASSchema(lasHeader, attributes) {
|
|
10
|
-
var metadataMap = makeMetadataFromLasHeader(lasHeader);
|
|
11
|
-
var schema = (0, _schema.deduceMeshSchema)(attributes, metadataMap);
|
|
12
|
-
return schema;
|
|
13
|
-
}
|
|
14
|
-
function makeMetadataFromLasHeader(lasHeader) {
|
|
15
|
-
var metadata = {};
|
|
16
|
-
metadata.las_pointsOffset = lasHeader.pointsOffset.toString(10);
|
|
17
|
-
metadata.las_pointsFormatId = lasHeader.pointsFormatId.toString(10);
|
|
18
|
-
metadata.las_pointsStructSize = lasHeader.pointsStructSize.toString(10);
|
|
19
|
-
metadata.las_pointsCount = lasHeader.pointsCount.toString(10);
|
|
20
|
-
metadata.las_scale = JSON.stringify(lasHeader.scale);
|
|
21
|
-
metadata.las_offset = JSON.stringify(lasHeader.offset);
|
|
22
|
-
if (lasHeader.maxs !== undefined) {
|
|
23
|
-
metadata.las_maxs = JSON.stringify(lasHeader.maxs);
|
|
24
|
-
}
|
|
25
|
-
if (lasHeader.mins !== undefined) {
|
|
26
|
-
metadata.las_mins = JSON.stringify(lasHeader.mins);
|
|
27
|
-
}
|
|
28
|
-
metadata.las_totalToRead = lasHeader.totalToRead.toString(10);
|
|
29
|
-
metadata.las_pointsFortotalReadmatId = lasHeader.totalRead.toString(10);
|
|
30
|
-
if (lasHeader.versionAsString !== undefined) {
|
|
31
|
-
metadata.las_versionAsString = lasHeader.versionAsString;
|
|
32
|
-
}
|
|
33
|
-
if (lasHeader.isCompressed !== undefined) {
|
|
34
|
-
metadata.las_isCompressed = lasHeader.isCompressed.toString();
|
|
35
|
-
}
|
|
36
|
-
return metadata;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=get-las-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-las-schema.js","names":["_schema","require","getLASSchema","lasHeader","attributes","metadataMap","makeMetadataFromLasHeader","schema","deduceMeshSchema","metadata","las_pointsOffset","pointsOffset","toString","las_pointsFormatId","pointsFormatId","las_pointsStructSize","pointsStructSize","las_pointsCount","pointsCount","las_scale","JSON","stringify","scale","las_offset","offset","maxs","undefined","las_maxs","mins","las_mins","las_totalToRead","totalToRead","las_pointsFortotalReadmatId","totalRead","versionAsString","las_versionAsString","isCompressed","las_isCompressed"],"sources":["../../../src/lib/get-las-schema.ts"],"sourcesContent":["import {Schema, MeshAttributes, deduceMeshSchema} from '@loaders.gl/schema';\nimport type {LASHeader} from './las-types';\n\n/**\n * Gets schema from PLY header\n * @param lasHeader\n * @param metadata\n * @returns Schema\n */\nexport function getLASSchema(lasHeader: LASHeader, attributes: MeshAttributes): Schema {\n const metadataMap = makeMetadataFromLasHeader(lasHeader);\n const schema = deduceMeshSchema(attributes, metadataMap);\n return schema;\n}\n\n/**\n * Make arrow like schema metadata by LASHeader properties\n * @param lasHeader\n * @returns\n */\nexport function makeMetadataFromLasHeader(lasHeader: LASHeader): Record<string, string> {\n const metadata: Record<string, string> = {};\n /* eslint-disable camelcase */\n metadata.las_pointsOffset = lasHeader.pointsOffset.toString(10);\n metadata.las_pointsFormatId = lasHeader.pointsFormatId.toString(10);\n metadata.las_pointsStructSize = lasHeader.pointsStructSize.toString(10);\n metadata.las_pointsCount = lasHeader.pointsCount.toString(10);\n metadata.las_scale = JSON.stringify(lasHeader.scale);\n metadata.las_offset = JSON.stringify(lasHeader.offset);\n if (lasHeader.maxs !== undefined) {\n metadata.las_maxs = JSON.stringify(lasHeader.maxs);\n }\n if (lasHeader.mins !== undefined) {\n metadata.las_mins = JSON.stringify(lasHeader.mins);\n }\n metadata.las_totalToRead = lasHeader.totalToRead.toString(10);\n metadata.las_pointsFortotalReadmatId = lasHeader.totalRead.toString(10);\n if (lasHeader.versionAsString !== undefined) {\n metadata.las_versionAsString = lasHeader.versionAsString;\n }\n if (lasHeader.isCompressed !== undefined) {\n metadata.las_isCompressed = lasHeader.isCompressed.toString();\n }\n return metadata;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AASO,SAASC,YAAYA,CAACC,SAAoB,EAAEC,UAA0B,EAAU;EACrF,IAAMC,WAAW,GAAGC,yBAAyB,CAACH,SAAS,CAAC;EACxD,IAAMI,MAAM,GAAG,IAAAC,wBAAgB,EAACJ,UAAU,EAAEC,WAAW,CAAC;EACxD,OAAOE,MAAM;AACf;AAOO,SAASD,yBAAyBA,CAACH,SAAoB,EAA0B;EACtF,IAAMM,QAAgC,GAAG,CAAC,CAAC;EAE3CA,QAAQ,CAACC,gBAAgB,GAAGP,SAAS,CAACQ,YAAY,CAACC,QAAQ,CAAC,EAAE,CAAC;EAC/DH,QAAQ,CAACI,kBAAkB,GAAGV,SAAS,CAACW,cAAc,CAACF,QAAQ,CAAC,EAAE,CAAC;EACnEH,QAAQ,CAACM,oBAAoB,GAAGZ,SAAS,CAACa,gBAAgB,CAACJ,QAAQ,CAAC,EAAE,CAAC;EACvEH,QAAQ,CAACQ,eAAe,GAAGd,SAAS,CAACe,WAAW,CAACN,QAAQ,CAAC,EAAE,CAAC;EAC7DH,QAAQ,CAACU,SAAS,GAAGC,IAAI,CAACC,SAAS,CAAClB,SAAS,CAACmB,KAAK,CAAC;EACpDb,QAAQ,CAACc,UAAU,GAAGH,IAAI,CAACC,SAAS,CAAClB,SAAS,CAACqB,MAAM,CAAC;EACtD,IAAIrB,SAAS,CAACsB,IAAI,KAAKC,SAAS,EAAE;IAChCjB,QAAQ,CAACkB,QAAQ,GAAGP,IAAI,CAACC,SAAS,CAAClB,SAAS,CAACsB,IAAI,CAAC;EACpD;EACA,IAAItB,SAAS,CAACyB,IAAI,KAAKF,SAAS,EAAE;IAChCjB,QAAQ,CAACoB,QAAQ,GAAGT,IAAI,CAACC,SAAS,CAAClB,SAAS,CAACyB,IAAI,CAAC;EACpD;EACAnB,QAAQ,CAACqB,eAAe,GAAG3B,SAAS,CAAC4B,WAAW,CAACnB,QAAQ,CAAC,EAAE,CAAC;EAC7DH,QAAQ,CAACuB,2BAA2B,GAAG7B,SAAS,CAAC8B,SAAS,CAACrB,QAAQ,CAAC,EAAE,CAAC;EACvE,IAAIT,SAAS,CAAC+B,eAAe,KAAKR,SAAS,EAAE;IAC3CjB,QAAQ,CAAC0B,mBAAmB,GAAGhC,SAAS,CAAC+B,eAAe;EAC1D;EACA,IAAI/B,SAAS,CAACiC,YAAY,KAAKV,SAAS,EAAE;IACxCjB,QAAQ,CAAC4B,gBAAgB,GAAGlC,SAAS,CAACiC,YAAY,CAACxB,QAAQ,CAAC,CAAC;EAC/D;EACA,OAAOH,QAAQ;AACjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"las-types.js","names":[],"sources":["../../../src/lib/las-types.ts"],"sourcesContent":["import {Mesh} from '@loaders.gl/schema';\n\n/**\n * Type for header of the .las file\n */\nexport type LASHeader = {\n pointsOffset: number;\n pointsFormatId: number;\n pointsStructSize: number;\n pointsCount: number;\n scale: [number, number, number];\n offset: [number, number, number];\n maxs?: number[];\n mins?: number[];\n totalToRead: number;\n totalRead: number;\n versionAsString?: string;\n isCompressed?: boolean;\n};\n\n/**\n * loaders.gl Mesh with Draco specific data\n */\nexport type LASMesh = Mesh & {\n loader: 'las';\n loaderData: LASHeader; // Draco specific data\n topology: 'point-list';\n mode: 0;\n};\n"],"mappings":""}
|
|
@@ -1,364 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.LASModuleWasLoaded = exports.LASFile = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
var _lazPerf = _interopRequireDefault(require("./libs/laz-perf"));
|
|
12
|
-
var Module = null;
|
|
13
|
-
var POINT_FORMAT_READERS = {
|
|
14
|
-
0: function _(dv) {
|
|
15
|
-
return {
|
|
16
|
-
position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
|
|
17
|
-
intensity: dv.getUint16(12, true),
|
|
18
|
-
classification: dv.getUint8(15)
|
|
19
|
-
};
|
|
20
|
-
},
|
|
21
|
-
1: function _(dv) {
|
|
22
|
-
return {
|
|
23
|
-
position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
|
|
24
|
-
intensity: dv.getUint16(12, true),
|
|
25
|
-
classification: dv.getUint8(15)
|
|
26
|
-
};
|
|
27
|
-
},
|
|
28
|
-
2: function _(dv) {
|
|
29
|
-
return {
|
|
30
|
-
position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
|
|
31
|
-
intensity: dv.getUint16(12, true),
|
|
32
|
-
classification: dv.getUint8(15),
|
|
33
|
-
color: [dv.getUint16(20, true), dv.getUint16(22, true), dv.getUint16(24, true)]
|
|
34
|
-
};
|
|
35
|
-
},
|
|
36
|
-
3: function _(dv) {
|
|
37
|
-
return {
|
|
38
|
-
position: [dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
|
|
39
|
-
intensity: dv.getUint16(12, true),
|
|
40
|
-
classification: dv.getUint8(15),
|
|
41
|
-
color: [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)]
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
function readAs(buf) {
|
|
46
|
-
var Type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
47
|
-
var offset = arguments.length > 2 ? arguments[2] : undefined;
|
|
48
|
-
var count = arguments.length > 3 ? arguments[3] : undefined;
|
|
49
|
-
count = count === undefined || count === 0 ? 1 : count;
|
|
50
|
-
var sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count);
|
|
51
|
-
var r = new Type(sub);
|
|
52
|
-
if (count === 1) {
|
|
53
|
-
return r[0];
|
|
54
|
-
}
|
|
55
|
-
var ret = [];
|
|
56
|
-
for (var i = 0; i < count; i++) {
|
|
57
|
-
ret.push(r[i]);
|
|
58
|
-
}
|
|
59
|
-
return ret;
|
|
60
|
-
}
|
|
61
|
-
function parseLASHeader(arraybuffer) {
|
|
62
|
-
var start = 32 * 3 + 35;
|
|
63
|
-
var o = {
|
|
64
|
-
pointsOffset: readAs(arraybuffer, Uint32Array, 32 * 3),
|
|
65
|
-
pointsFormatId: readAs(arraybuffer, Uint8Array, 32 * 3 + 8),
|
|
66
|
-
pointsStructSize: readAs(arraybuffer, Uint16Array, 32 * 3 + 8 + 1),
|
|
67
|
-
pointsCount: readAs(arraybuffer, Uint32Array, 32 * 3 + 11),
|
|
68
|
-
scale: readAs(arraybuffer, Float64Array, start, 3)
|
|
69
|
-
};
|
|
70
|
-
start += 24;
|
|
71
|
-
o.offset = readAs(arraybuffer, Float64Array, start, 3);
|
|
72
|
-
start += 24;
|
|
73
|
-
var bounds = readAs(arraybuffer, Float64Array, start, 6);
|
|
74
|
-
start += 48;
|
|
75
|
-
o.maxs = [bounds[0], bounds[2], bounds[4]];
|
|
76
|
-
o.mins = [bounds[1], bounds[3], bounds[5]];
|
|
77
|
-
return o;
|
|
78
|
-
}
|
|
79
|
-
var LASLoader = function () {
|
|
80
|
-
function LASLoader(arraybuffer) {
|
|
81
|
-
(0, _classCallCheck2.default)(this, LASLoader);
|
|
82
|
-
(0, _defineProperty2.default)(this, "arraybuffer", void 0);
|
|
83
|
-
(0, _defineProperty2.default)(this, "readOffset", 0);
|
|
84
|
-
(0, _defineProperty2.default)(this, "header", {
|
|
85
|
-
pointsOffset: 0,
|
|
86
|
-
pointsFormatId: 0,
|
|
87
|
-
pointsStructSize: 0,
|
|
88
|
-
pointsCount: 0,
|
|
89
|
-
scale: [0, 0, 0],
|
|
90
|
-
offset: [0, 0, 0],
|
|
91
|
-
maxs: [0],
|
|
92
|
-
mins: [0],
|
|
93
|
-
totalToRead: 0,
|
|
94
|
-
totalRead: 0,
|
|
95
|
-
versionAsString: '',
|
|
96
|
-
isCompressed: true
|
|
97
|
-
});
|
|
98
|
-
this.arraybuffer = arraybuffer;
|
|
99
|
-
}
|
|
100
|
-
(0, _createClass2.default)(LASLoader, [{
|
|
101
|
-
key: "open",
|
|
102
|
-
value: function open() {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
}, {
|
|
106
|
-
key: "getHeader",
|
|
107
|
-
value: function getHeader() {
|
|
108
|
-
this.header = parseLASHeader(this.arraybuffer);
|
|
109
|
-
return this.header;
|
|
110
|
-
}
|
|
111
|
-
}, {
|
|
112
|
-
key: "readData",
|
|
113
|
-
value: function readData(count, skip) {
|
|
114
|
-
var header = this.header,
|
|
115
|
-
arraybuffer = this.arraybuffer;
|
|
116
|
-
if (!header) {
|
|
117
|
-
throw new Error('Cannot start reading data till a header request is issued');
|
|
118
|
-
}
|
|
119
|
-
var readOffset = this.readOffset;
|
|
120
|
-
var start;
|
|
121
|
-
if (skip <= 1) {
|
|
122
|
-
count = Math.min(count, header.pointsCount - readOffset);
|
|
123
|
-
start = header.pointsOffset + readOffset * header.pointsStructSize;
|
|
124
|
-
var end = start + count * header.pointsStructSize;
|
|
125
|
-
readOffset += count;
|
|
126
|
-
this.readOffset = readOffset;
|
|
127
|
-
return {
|
|
128
|
-
buffer: arraybuffer.slice(start, end),
|
|
129
|
-
count: count,
|
|
130
|
-
hasMoreData: readOffset < header.pointsCount
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
var pointsToRead = Math.min(count * skip, header.pointsCount - readOffset);
|
|
134
|
-
var bufferSize = Math.ceil(pointsToRead / skip);
|
|
135
|
-
var pointsRead = 0;
|
|
136
|
-
var buf = new Uint8Array(bufferSize * header.pointsStructSize);
|
|
137
|
-
for (var i = 0; i < pointsToRead; i++) {
|
|
138
|
-
if (i % skip === 0) {
|
|
139
|
-
start = header.pointsOffset + readOffset * header.pointsStructSize;
|
|
140
|
-
var src = new Uint8Array(arraybuffer, start, header.pointsStructSize);
|
|
141
|
-
buf.set(src, pointsRead * header.pointsStructSize);
|
|
142
|
-
pointsRead++;
|
|
143
|
-
}
|
|
144
|
-
readOffset++;
|
|
145
|
-
}
|
|
146
|
-
this.readOffset = readOffset;
|
|
147
|
-
return {
|
|
148
|
-
buffer: buf.buffer,
|
|
149
|
-
count: pointsRead,
|
|
150
|
-
hasMoreData: readOffset < header.pointsCount
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}, {
|
|
154
|
-
key: "close",
|
|
155
|
-
value: function close() {
|
|
156
|
-
this.arraybuffer = null;
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
}]);
|
|
160
|
-
return LASLoader;
|
|
161
|
-
}();
|
|
162
|
-
var LAZLoader = function () {
|
|
163
|
-
function LAZLoader(arraybuffer) {
|
|
164
|
-
(0, _classCallCheck2.default)(this, LAZLoader);
|
|
165
|
-
(0, _defineProperty2.default)(this, "arraybuffer", void 0);
|
|
166
|
-
(0, _defineProperty2.default)(this, "instance", null);
|
|
167
|
-
(0, _defineProperty2.default)(this, "header", null);
|
|
168
|
-
this.arraybuffer = arraybuffer;
|
|
169
|
-
if (!Module) {
|
|
170
|
-
Module = (0, _lazPerf.default)();
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
(0, _createClass2.default)(LAZLoader, [{
|
|
174
|
-
key: "open",
|
|
175
|
-
value: function open() {
|
|
176
|
-
try {
|
|
177
|
-
var arraybuffer = this.arraybuffer;
|
|
178
|
-
this.instance = new Module.LASZip();
|
|
179
|
-
var abInt = new Uint8Array(arraybuffer);
|
|
180
|
-
var buf = Module._malloc(arraybuffer.byteLength);
|
|
181
|
-
this.instance.arraybuffer = arraybuffer;
|
|
182
|
-
this.instance.buf = buf;
|
|
183
|
-
Module.HEAPU8.set(abInt, buf);
|
|
184
|
-
this.instance.open(buf, arraybuffer.byteLength);
|
|
185
|
-
this.instance.readOffset = 0;
|
|
186
|
-
return true;
|
|
187
|
-
} catch (error) {
|
|
188
|
-
throw new Error("Failed to open file: ".concat(error.message));
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}, {
|
|
192
|
-
key: "getHeader",
|
|
193
|
-
value: function getHeader() {
|
|
194
|
-
if (!this.instance) {
|
|
195
|
-
throw new Error('You need to open the file before trying to read header');
|
|
196
|
-
}
|
|
197
|
-
try {
|
|
198
|
-
var header = parseLASHeader(this.instance.arraybuffer);
|
|
199
|
-
header.pointsFormatId &= 0x3f;
|
|
200
|
-
this.header = header;
|
|
201
|
-
return header;
|
|
202
|
-
} catch (error) {
|
|
203
|
-
throw new Error("Failed to get header: ".concat(error.message));
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}, {
|
|
207
|
-
key: "readData",
|
|
208
|
-
value: function readData(count, offset, skip) {
|
|
209
|
-
if (!this.instance) {
|
|
210
|
-
throw new Error('You need to open the file before trying to read stuff');
|
|
211
|
-
}
|
|
212
|
-
var header = this.header,
|
|
213
|
-
instance = this.instance;
|
|
214
|
-
if (!header) {
|
|
215
|
-
throw new Error('You need to query header before reading, I maintain state that way, sorry :(');
|
|
216
|
-
}
|
|
217
|
-
try {
|
|
218
|
-
var pointsToRead = Math.min(count * skip, header.pointsCount - instance.readOffset);
|
|
219
|
-
var bufferSize = Math.ceil(pointsToRead / skip);
|
|
220
|
-
var pointsRead = 0;
|
|
221
|
-
var thisBuf = new Uint8Array(bufferSize * header.pointsStructSize);
|
|
222
|
-
var bufRead = Module._malloc(header.pointsStructSize);
|
|
223
|
-
for (var i = 0; i < pointsToRead; i++) {
|
|
224
|
-
instance.getPoint(bufRead);
|
|
225
|
-
if (i % skip === 0) {
|
|
226
|
-
var a = new Uint8Array(Module.HEAPU8.buffer, bufRead, header.pointsStructSize);
|
|
227
|
-
thisBuf.set(a, pointsRead * header.pointsStructSize);
|
|
228
|
-
pointsRead++;
|
|
229
|
-
}
|
|
230
|
-
instance.readOffset++;
|
|
231
|
-
}
|
|
232
|
-
return {
|
|
233
|
-
buffer: thisBuf.buffer,
|
|
234
|
-
count: pointsRead,
|
|
235
|
-
hasMoreData: instance.readOffset < header.pointsCount
|
|
236
|
-
};
|
|
237
|
-
} catch (error) {
|
|
238
|
-
throw new Error("Failed to read data: ".concat(error.message));
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}, {
|
|
242
|
-
key: "close",
|
|
243
|
-
value: function close() {
|
|
244
|
-
try {
|
|
245
|
-
if (this.instance !== null) {
|
|
246
|
-
this.instance.delete();
|
|
247
|
-
this.instance = null;
|
|
248
|
-
}
|
|
249
|
-
return true;
|
|
250
|
-
} catch (error) {
|
|
251
|
-
throw new Error("Failed to close file: ".concat(error.message));
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}]);
|
|
255
|
-
return LAZLoader;
|
|
256
|
-
}();
|
|
257
|
-
var LASDecoder = function () {
|
|
258
|
-
function LASDecoder(buffer, len, header) {
|
|
259
|
-
(0, _classCallCheck2.default)(this, LASDecoder);
|
|
260
|
-
(0, _defineProperty2.default)(this, "arrayb", void 0);
|
|
261
|
-
(0, _defineProperty2.default)(this, "decoder", void 0);
|
|
262
|
-
(0, _defineProperty2.default)(this, "pointsCount", void 0);
|
|
263
|
-
(0, _defineProperty2.default)(this, "pointSize", void 0);
|
|
264
|
-
(0, _defineProperty2.default)(this, "scale", void 0);
|
|
265
|
-
(0, _defineProperty2.default)(this, "offset", void 0);
|
|
266
|
-
(0, _defineProperty2.default)(this, "mins", void 0);
|
|
267
|
-
(0, _defineProperty2.default)(this, "maxs", void 0);
|
|
268
|
-
this.arrayb = buffer;
|
|
269
|
-
this.decoder = POINT_FORMAT_READERS[header.pointsFormatId];
|
|
270
|
-
this.pointsCount = len;
|
|
271
|
-
this.pointSize = header.pointsStructSize;
|
|
272
|
-
this.scale = header.scale;
|
|
273
|
-
this.offset = header.offset;
|
|
274
|
-
this.mins = header.mins;
|
|
275
|
-
this.maxs = header.maxs;
|
|
276
|
-
}
|
|
277
|
-
(0, _createClass2.default)(LASDecoder, [{
|
|
278
|
-
key: "getPoint",
|
|
279
|
-
value: function getPoint(index) {
|
|
280
|
-
if (index < 0 || index >= this.pointsCount) {
|
|
281
|
-
throw new Error('Point index out of range');
|
|
282
|
-
}
|
|
283
|
-
var dv = new DataView(this.arrayb, index * this.pointSize, this.pointSize);
|
|
284
|
-
return this.decoder(dv);
|
|
285
|
-
}
|
|
286
|
-
}]);
|
|
287
|
-
return LASDecoder;
|
|
288
|
-
}();
|
|
289
|
-
var LASFile = function () {
|
|
290
|
-
function LASFile(arraybuffer) {
|
|
291
|
-
(0, _classCallCheck2.default)(this, LASFile);
|
|
292
|
-
(0, _defineProperty2.default)(this, "arraybuffer", void 0);
|
|
293
|
-
(0, _defineProperty2.default)(this, "formatId", 0);
|
|
294
|
-
(0, _defineProperty2.default)(this, "loader", void 0);
|
|
295
|
-
(0, _defineProperty2.default)(this, "isCompressed", true);
|
|
296
|
-
(0, _defineProperty2.default)(this, "isOpen", false);
|
|
297
|
-
(0, _defineProperty2.default)(this, "version", 0);
|
|
298
|
-
(0, _defineProperty2.default)(this, "versionAsString", '');
|
|
299
|
-
this.arraybuffer = arraybuffer;
|
|
300
|
-
if (this.determineVersion() > 13) {
|
|
301
|
-
throw new Error('Only file versions <= 1.3 are supported at this time');
|
|
302
|
-
}
|
|
303
|
-
this.determineFormat();
|
|
304
|
-
if (POINT_FORMAT_READERS[this.formatId] === undefined) {
|
|
305
|
-
throw new Error('The point format ID is not supported');
|
|
306
|
-
}
|
|
307
|
-
this.loader = this.isCompressed ? new LAZLoader(this.arraybuffer) : new LASLoader(this.arraybuffer);
|
|
308
|
-
}
|
|
309
|
-
(0, _createClass2.default)(LASFile, [{
|
|
310
|
-
key: "determineFormat",
|
|
311
|
-
value: function determineFormat() {
|
|
312
|
-
var formatId = readAs(this.arraybuffer, Uint8Array, 32 * 3 + 8);
|
|
313
|
-
var bit7 = (formatId & 0x80) >> 7;
|
|
314
|
-
var bit6 = (formatId & 0x40) >> 6;
|
|
315
|
-
if (bit7 === 1 && bit6 === 1) {
|
|
316
|
-
throw new Error('Old style compression not supported');
|
|
317
|
-
}
|
|
318
|
-
this.formatId = formatId & 0x3f;
|
|
319
|
-
this.isCompressed = bit7 === 1 || bit6 === 1;
|
|
320
|
-
}
|
|
321
|
-
}, {
|
|
322
|
-
key: "determineVersion",
|
|
323
|
-
value: function determineVersion() {
|
|
324
|
-
var ver = new Int8Array(this.arraybuffer, 24, 2);
|
|
325
|
-
this.version = ver[0] * 10 + ver[1];
|
|
326
|
-
this.versionAsString = "".concat(ver[0], ".").concat(ver[1]);
|
|
327
|
-
return this.version;
|
|
328
|
-
}
|
|
329
|
-
}, {
|
|
330
|
-
key: "open",
|
|
331
|
-
value: function open() {
|
|
332
|
-
if (this.loader.open()) {
|
|
333
|
-
this.isOpen = true;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}, {
|
|
337
|
-
key: "getHeader",
|
|
338
|
-
value: function getHeader() {
|
|
339
|
-
return this.loader.getHeader();
|
|
340
|
-
}
|
|
341
|
-
}, {
|
|
342
|
-
key: "readData",
|
|
343
|
-
value: function readData(count, start, skip) {
|
|
344
|
-
return this.loader.readData(count, start, skip);
|
|
345
|
-
}
|
|
346
|
-
}, {
|
|
347
|
-
key: "close",
|
|
348
|
-
value: function close() {
|
|
349
|
-
if (this.loader.close()) {
|
|
350
|
-
this.isOpen = false;
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
}, {
|
|
354
|
-
key: "getUnpacker",
|
|
355
|
-
value: function getUnpacker() {
|
|
356
|
-
return LASDecoder;
|
|
357
|
-
}
|
|
358
|
-
}]);
|
|
359
|
-
return LASFile;
|
|
360
|
-
}();
|
|
361
|
-
exports.LASFile = LASFile;
|
|
362
|
-
var LASModuleWasLoaded = false;
|
|
363
|
-
exports.LASModuleWasLoaded = LASModuleWasLoaded;
|
|
364
|
-
//# sourceMappingURL=laslaz-decoder.js.map
|