@loaders.gl/las 3.3.0-alpha.5 → 3.3.0-alpha.7
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/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/index.js +4 -16
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/las-loader.js +3 -1
- package/dist/es5/las-loader.js.map +1 -1
- package/dist/es5/lib/get-las-schema.js +0 -8
- package/dist/es5/lib/get-las-schema.js.map +1 -1
- package/dist/es5/lib/las-types.js.map +1 -1
- package/dist/es5/lib/laslaz-decoder.js +40 -57
- package/dist/es5/lib/laslaz-decoder.js.map +1 -1
- package/dist/es5/lib/libs/laz-perf.js.map +1 -1
- package/dist/es5/lib/parse-las.js +17 -49
- package/dist/es5/lib/parse-las.js.map +1 -1
- package/dist/es5/workers/las-worker.js +0 -2
- package/dist/es5/workers/las-worker.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/las-loader.js +4 -1
- package/dist/esm/las-loader.js.map +1 -1
- package/dist/esm/lib/get-las-schema.js +1 -6
- package/dist/esm/lib/get-las-schema.js.map +1 -1
- package/dist/esm/lib/las-types.js.map +1 -1
- package/dist/esm/lib/laslaz-decoder.js +6 -63
- package/dist/esm/lib/laslaz-decoder.js.map +1 -1
- package/dist/esm/lib/libs/laz-perf.js.map +1 -1
- package/dist/esm/lib/parse-las.js +18 -26
- package/dist/esm/lib/parse-las.js.map +1 -1
- package/dist/esm/workers/las-worker.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/las-worker.js +1 -1
- package/package.json +4 -4
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
import { Schema, getMeshBoundingBox } from '@loaders.gl/schema';
|
|
2
4
|
import { LASFile } from './laslaz-decoder';
|
|
3
5
|
import { getLASSchema } from './get-las-schema';
|
|
@@ -5,9 +7,9 @@ export default function parseLAS(arrayBuffer, options) {
|
|
|
5
7
|
return parseLASMesh(arrayBuffer, options);
|
|
6
8
|
}
|
|
7
9
|
|
|
8
|
-
function parseLASMesh(arrayBuffer
|
|
10
|
+
function parseLASMesh(arrayBuffer) {
|
|
9
11
|
var _options$las;
|
|
10
|
-
|
|
12
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
11
13
|
let pointIndex = 0;
|
|
12
14
|
let positions;
|
|
13
15
|
let colors;
|
|
@@ -26,12 +28,13 @@ function parseLASMesh(arrayBuffer, options = {}) {
|
|
|
26
28
|
topology: 'point-list',
|
|
27
29
|
mode: 0
|
|
28
30
|
};
|
|
29
|
-
parseLASChunked(arrayBuffer, (_options$las = options.las) === null || _options$las === void 0 ? void 0 : _options$las.skip, (decoder = {}, lasHeader) => {
|
|
30
|
-
var _options$las3, _options$onProgress;
|
|
31
31
|
|
|
32
|
+
parseLASChunked(arrayBuffer, (_options$las = options.las) === null || _options$las === void 0 ? void 0 : _options$las.skip, function () {
|
|
33
|
+
var _options$las3, _options$onProgress;
|
|
34
|
+
let decoder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
35
|
+
let lasHeader = arguments.length > 1 ? arguments[1] : undefined;
|
|
32
36
|
if (!originalHeader) {
|
|
33
37
|
var _options$las2;
|
|
34
|
-
|
|
35
38
|
originalHeader = lasHeader;
|
|
36
39
|
const total = lasHeader.totalToRead;
|
|
37
40
|
const PositionsType = (_options$las2 = options.las) !== null && _options$las2 !== void 0 && _options$las2.fp64 ? Float64Array : Float32Array;
|
|
@@ -54,7 +57,6 @@ function parseLASMesh(arrayBuffer, options = {}) {
|
|
|
54
57
|
size: 1
|
|
55
58
|
}
|
|
56
59
|
};
|
|
57
|
-
|
|
58
60
|
if (colors) {
|
|
59
61
|
lasMesh.attributes.COLOR_0 = {
|
|
60
62
|
value: colors,
|
|
@@ -62,14 +64,12 @@ function parseLASMesh(arrayBuffer, options = {}) {
|
|
|
62
64
|
};
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
|
-
|
|
66
67
|
const batchSize = decoder.pointsCount;
|
|
67
68
|
const {
|
|
68
69
|
scale: [scaleX, scaleY, scaleZ],
|
|
69
70
|
offset: [offsetX, offsetY, offsetZ]
|
|
70
71
|
} = lasHeader;
|
|
71
72
|
const twoByteColor = detectTwoByteColors(decoder, batchSize, (_options$las3 = options.las) === null || _options$las3 === void 0 ? void 0 : _options$las3.colorDepth);
|
|
72
|
-
|
|
73
73
|
for (let i = 0; i < batchSize; i++) {
|
|
74
74
|
const {
|
|
75
75
|
position,
|
|
@@ -80,7 +80,6 @@ function parseLASMesh(arrayBuffer, options = {}) {
|
|
|
80
80
|
positions[pointIndex * 3] = position[0] * scaleX + offsetX;
|
|
81
81
|
positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;
|
|
82
82
|
positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;
|
|
83
|
-
|
|
84
83
|
if (color && colors) {
|
|
85
84
|
if (twoByteColor) {
|
|
86
85
|
colors[pointIndex * 4] = color[0] / 256;
|
|
@@ -91,16 +90,14 @@ function parseLASMesh(arrayBuffer, options = {}) {
|
|
|
91
90
|
colors[pointIndex * 4 + 1] = color[1];
|
|
92
91
|
colors[pointIndex * 4 + 2] = color[2];
|
|
93
92
|
}
|
|
94
|
-
|
|
95
93
|
colors[pointIndex * 4 + 3] = 255;
|
|
96
94
|
}
|
|
97
|
-
|
|
98
95
|
intensities[pointIndex] = intensity;
|
|
99
96
|
classifications[pointIndex] = classification;
|
|
100
97
|
pointIndex++;
|
|
101
98
|
}
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
const meshBatch = {
|
|
100
|
+
...lasMesh,
|
|
104
101
|
header: {
|
|
105
102
|
vertexCount: lasHeader.totalRead
|
|
106
103
|
},
|
|
@@ -108,21 +105,20 @@ function parseLASMesh(arrayBuffer, options = {}) {
|
|
|
108
105
|
};
|
|
109
106
|
options === null || options === void 0 ? void 0 : (_options$onProgress = options.onProgress) === null || _options$onProgress === void 0 ? void 0 : _options$onProgress.call(options, meshBatch);
|
|
110
107
|
});
|
|
108
|
+
|
|
111
109
|
lasMesh.header = {
|
|
112
110
|
vertexCount: originalHeader.totalToRead,
|
|
113
111
|
boundingBox: getMeshBoundingBox((lasMesh === null || lasMesh === void 0 ? void 0 : lasMesh.attributes) || {})
|
|
114
112
|
};
|
|
115
|
-
|
|
116
113
|
if (lasMesh) {
|
|
117
114
|
lasMesh.schema = getLASSchema(lasMesh.loaderData, lasMesh.attributes);
|
|
118
115
|
}
|
|
119
|
-
|
|
120
116
|
return lasMesh;
|
|
121
117
|
}
|
|
122
118
|
|
|
123
|
-
export function parseLASChunked(rawData, skip
|
|
119
|
+
export function parseLASChunked(rawData, skip) {
|
|
120
|
+
let onParseData = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
124
121
|
const dataHandler = new LASFile(rawData);
|
|
125
|
-
|
|
126
122
|
try {
|
|
127
123
|
dataHandler.open();
|
|
128
124
|
const header = dataHandler.getHeader();
|
|
@@ -138,8 +134,8 @@ export function parseLASChunked(rawData, skip, onParseData = {}) {
|
|
|
138
134
|
header.versionAsString = chunk.versionAsString;
|
|
139
135
|
header.isCompressed = chunk.isCompressed;
|
|
140
136
|
const unpacker = new Unpacker(chunk.buffer, chunk.count, header);
|
|
141
|
-
onParseData(unpacker, header);
|
|
142
137
|
|
|
138
|
+
onParseData(unpacker, header);
|
|
143
139
|
if (!chunk.hasMoreData || totalRead >= totalToRead) {
|
|
144
140
|
break;
|
|
145
141
|
}
|
|
@@ -151,38 +147,34 @@ export function parseLASChunked(rawData, skip, onParseData = {}) {
|
|
|
151
147
|
}
|
|
152
148
|
}
|
|
153
149
|
|
|
154
|
-
function detectTwoByteColors(
|
|
150
|
+
function detectTwoByteColors() {
|
|
151
|
+
let decoder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
152
|
+
let batchSize = arguments.length > 1 ? arguments[1] : undefined;
|
|
153
|
+
let colorDepth = arguments.length > 2 ? arguments[2] : undefined;
|
|
155
154
|
let twoByteColor = false;
|
|
156
|
-
|
|
157
155
|
switch (colorDepth) {
|
|
158
156
|
case 8:
|
|
159
157
|
twoByteColor = false;
|
|
160
158
|
break;
|
|
161
|
-
|
|
162
159
|
case 16:
|
|
163
160
|
twoByteColor = true;
|
|
164
161
|
break;
|
|
165
|
-
|
|
166
162
|
case 'auto':
|
|
167
163
|
if (decoder.getPoint(0).color) {
|
|
168
164
|
for (let i = 0; i < batchSize; i++) {
|
|
169
165
|
const {
|
|
170
166
|
color
|
|
171
167
|
} = decoder.getPoint(i);
|
|
172
|
-
|
|
173
168
|
if (color[0] > 255 || color[1] > 255 || color[2] > 255) {
|
|
174
169
|
twoByteColor = true;
|
|
175
170
|
}
|
|
176
171
|
}
|
|
177
172
|
}
|
|
178
|
-
|
|
179
173
|
break;
|
|
180
|
-
|
|
181
174
|
default:
|
|
182
175
|
console.warn('las: illegal value for options.las.colorDepth');
|
|
183
176
|
break;
|
|
184
177
|
}
|
|
185
|
-
|
|
186
178
|
return twoByteColor;
|
|
187
179
|
}
|
|
188
180
|
//# sourceMappingURL=parse-las.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/parse-las.ts"],"names":["Schema","getMeshBoundingBox","LASFile","getLASSchema","parseLAS","arrayBuffer","options","parseLASMesh","pointIndex","positions","colors","intensities","classifications","originalHeader","lasMesh","loader","loaderData","schema","header","vertexCount","boundingBox","attributes","topology","mode","parseLASChunked","las","skip","decoder","lasHeader","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","rawData","onParseData","dataHandler","open","getHeader","Unpacker","getUnpacker","Math","ceil","max","chunk","readData","count","versionAsString","isCompressed","unpacker","buffer","hasMoreData","e","close","console","warn"],"mappings":"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","sourcesContent":["// ported and es6-ified from https://github.com/verma/plasio/\nimport type {ArrowTable, ColumnarTable} from '@loaders.gl/schema';\nimport type {LASLoaderOptions} from '../las-loader';\nimport type {LASMesh, LASHeader} from './las-types';\nimport {Schema, 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 default function parseLAS(\n arrayBuffer: ArrayBuffer,\n options?: LASLoaderOptions\n): LASMesh | ArrowTable | ColumnarTable {\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: new Schema([]),\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"],"file":"parse-las.js"}
|
|
1
|
+
{"version":3,"file":"parse-las.js","names":["Schema","getMeshBoundingBox","LASFile","getLASSchema","parseLAS","arrayBuffer","options","parseLASMesh","pointIndex","positions","colors","intensities","classifications","originalHeader","lasMesh","loader","loaderData","schema","header","vertexCount","boundingBox","attributes","topology","mode","parseLASChunked","las","skip","decoder","lasHeader","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","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/\nimport type {ArrowTable, ColumnarTable} from '@loaders.gl/schema';\nimport type {LASLoaderOptions} from '../las-loader';\nimport type {LASMesh, LASHeader} from './las-types';\nimport {Schema, 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 default function parseLAS(\n arrayBuffer: ArrayBuffer,\n options?: LASLoaderOptions\n): LASMesh | ArrowTable | ColumnarTable {\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: new Schema([]),\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":";;AAIA,SAAQA,MAAM,EAAEC,kBAAkB,QAA2B,oBAAoB;AACjF,SAAQC,OAAO,QAAO,kBAAkB;AACxC,SAAQC,YAAY,QAAO,kBAAkB;AAgB7C,eAAe,SAASC,QAAQ,CAC9BC,WAAwB,EACxBC,OAA0B,EACY;EACtC,OAAOC,YAAY,CAACF,WAAW,EAAEC,OAAO,CAAC;AAI3C;;AAQA,SAASC,YAAY,CAACF,WAAwB,EAA2C;EAAA;EAAA,IAAzCC,OAAyB,uEAAG,CAAC,CAAC;EAC5E,IAAIE,UAAkB,GAAG,CAAC;EAE1B,IAAIC,SAAsC;EAC1C,IAAIC,MAAyB;EAC7B,IAAIC,WAAwB;EAC5B,IAAIC,eAA2B;EAC/B,IAAIC,cAAmB;EAEvB,MAAMC,OAAgB,GAAG;IACvBC,MAAM,EAAE,KAAK;IACbC,UAAU,EAAE,CAAC,CAAc;IAE3BC,MAAM,EAAE,IAAIjB,MAAM,CAAC,EAAE,CAAC;IACtBkB,MAAM,EAAE;MACNC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAE,CACX,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAEb,CAAC;IACDC,UAAU,EAAE,CAAC,CAAC;IACdC,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAE;EACR,CAAC;;EAIDC,eAAe,CAACnB,WAAW,kBAAEC,OAAO,CAACmB,GAAG,iDAAX,aAAaC,IAAI,EAAE,YAA6C;IAAA;IAAA,IAA5CC,OAAY,uEAAG,CAAC,CAAC;IAAA,IAAEC,SAAoB;IACtF,IAAI,CAACf,cAAc,EAAE;MAAA;MACnBA,cAAc,GAAGe,SAAS;MAC1B,MAAMC,KAAK,GAAGD,SAAS,CAACE,WAAW;MAEnC,MAAMC,aAAa,GAAG,iBAAAzB,OAAO,CAACmB,GAAG,0CAAX,cAAaO,IAAI,GAAGC,YAAY,GAAGC,YAAY;MACrEzB,SAAS,GAAG,IAAIsB,aAAa,CAACF,KAAK,GAAG,CAAC,CAAC;MAExCnB,MAAM,GAAGkB,SAAS,CAACO,cAAc,IAAI,CAAC,GAAG,IAAIC,UAAU,CAACP,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI;MACzElB,WAAW,GAAG,IAAI0B,WAAW,CAACR,KAAK,CAAC;MACpCjB,eAAe,GAAG,IAAIwB,UAAU,CAACP,KAAK,CAAC;MAEvCf,OAAO,CAACE,UAAU,GAAGY,SAAS;MAC9Bd,OAAO,CAACO,UAAU,GAAG;QACnBiB,QAAQ,EAAE;UAACC,KAAK,EAAE9B,SAAS;UAAE+B,IAAI,EAAE;QAAC,CAAC;QAErCC,SAAS,EAAE;UAACF,KAAK,EAAE5B,WAAW;UAAE6B,IAAI,EAAE;QAAC,CAAC;QACxCE,cAAc,EAAE;UAACH,KAAK,EAAE3B,eAAe;UAAE4B,IAAI,EAAE;QAAC;MAClD,CAAC;MAED,IAAI9B,MAAM,EAAE;QACVI,OAAO,CAACO,UAAU,CAACsB,OAAO,GAAG;UAACJ,KAAK,EAAE7B,MAAM;UAAE8B,IAAI,EAAE;QAAC,CAAC;MACvD;IACF;IAEA,MAAMI,SAAS,GAAGjB,OAAO,CAACkB,WAAW;IACrC,MAAM;MACJC,KAAK,EAAE,CAACC,MAAM,EAAEC,MAAM,EAAEC,MAAM,CAAC;MAC/BC,MAAM,EAAE,CAACC,OAAO,EAAEC,OAAO,EAAEC,OAAO;IACpC,CAAC,GAAGzB,SAAS;IAEb,MAAM0B,YAAY,GAAGC,mBAAmB,CAAC5B,OAAO,EAAEiB,SAAS,mBAAEtC,OAAO,CAACmB,GAAG,kDAAX,cAAa+B,UAAU,CAAC;IAErF,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,SAAS,EAAEa,CAAC,EAAE,EAAE;MAClC,MAAM;QAACC,QAAQ;QAAEC,KAAK;QAAElB,SAAS;QAAEC;MAAc,CAAC,GAAGf,OAAO,CAACiC,QAAQ,CAACH,CAAC,CAAC;MAExEhD,SAAS,CAACD,UAAU,GAAG,CAAC,CAAC,GAAGkD,QAAQ,CAAC,CAAC,CAAC,GAAGX,MAAM,GAAGI,OAAO;MAC1D1C,SAAS,CAACD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGkD,QAAQ,CAAC,CAAC,CAAC,GAAGV,MAAM,GAAGI,OAAO;MAC9D3C,SAAS,CAACD,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGkD,QAAQ,CAAC,CAAC,CAAC,GAAGT,MAAM,GAAGI,OAAO;MAE9D,IAAIM,KAAK,IAAIjD,MAAM,EAAE;QACnB,IAAI4C,YAAY,EAAE;UAChB5C,MAAM,CAACF,UAAU,GAAG,CAAC,CAAC,GAAGmD,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;UACvCjD,MAAM,CAACF,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGmD,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;UAC3CjD,MAAM,CAACF,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGmD,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG;QAC7C,CAAC,MAAM;UACLjD,MAAM,CAACF,UAAU,GAAG,CAAC,CAAC,GAAGmD,KAAK,CAAC,CAAC,CAAC;UACjCjD,MAAM,CAACF,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGmD,KAAK,CAAC,CAAC,CAAC;UACrCjD,MAAM,CAACF,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGmD,KAAK,CAAC,CAAC,CAAC;QACvC;QACAjD,MAAM,CAACF,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;MAClC;MAEAG,WAAW,CAACH,UAAU,CAAC,GAAGiC,SAAS;MACnC7B,eAAe,CAACJ,UAAU,CAAC,GAAGkC,cAAc;MAE5ClC,UAAU,EAAE;IACd;IAEA,MAAMqD,SAAS,GAAG;MAChB,GAAG/C,OAAO;MACVI,MAAM,EAAE;QACNC,WAAW,EAAES,SAAS,CAACkC;MACzB,CAAC;MACDC,QAAQ,EAAEnC,SAAS,CAACkC,SAAS,GAAGlC,SAAS,CAACE;IAC5C,CAAC;IAEDxB,OAAO,aAAPA,OAAO,8CAAPA,OAAO,CAAE0D,UAAU,wDAAnB,yBAAA1D,OAAO,EAAeuD,SAAS,CAAC;EAClC,CAAC,CAAC;;EAGF/C,OAAO,CAACI,MAAM,GAAG;IACfC,WAAW,EAAEN,cAAc,CAACiB,WAAW;IACvCV,WAAW,EAAEnB,kBAAkB,CAAC,CAAAa,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,UAAU,KAAI,CAAC,CAAC;EAC3D,CAAC;EAED,IAAIP,OAAO,EAAE;IACXA,OAAO,CAACG,MAAM,GAAGd,YAAY,CAACW,OAAO,CAACE,UAAU,EAAEF,OAAO,CAACO,UAAU,CAAC;EACvE;EACA,OAAOP,OAAO;AAChB;;AAUA,OAAO,SAASU,eAAe,CAACyC,OAAoB,EAAEvC,IAAY,EAA+B;EAAA,IAA7BwC,WAAgB,uEAAG,CAAC,CAAC;EACvF,MAAMC,WAAW,GAAG,IAAIjE,OAAO,CAAC+D,OAAO,CAAC;EAExC,IAAI;IAEFE,WAAW,CAACC,IAAI,EAAE;IAElB,MAAMlD,MAAM,GAAGiD,WAAW,CAACE,SAAS,EAAE;IAEtC,MAAMC,QAAQ,GAAGH,WAAW,CAACI,WAAW,EAAE;IAE1C,MAAMzC,WAAW,GAAG0C,IAAI,CAACC,IAAI,CAACvD,MAAM,CAAC2B,WAAW,GAAG2B,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEhD,IAAI,CAAC,CAAC;IACrER,MAAM,CAACY,WAAW,GAAGA,WAAW;IAChC,IAAIgC,SAAS,GAAG,CAAC;;IAGjB,OAAO,IAAI,EAAE;MACX,MAAMa,KAAe,GAAGR,WAAW,CAACS,QAAQ,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,EAAElD,IAAI,CAAC;MAEjEoC,SAAS,IAAIa,KAAK,CAACE,KAAK;MAExB3D,MAAM,CAAC4C,SAAS,GAAGA,SAAS;MAC5B5C,MAAM,CAAC4D,eAAe,GAAGH,KAAK,CAACG,eAAe;MAC9C5D,MAAM,CAAC6D,YAAY,GAAGJ,KAAK,CAACI,YAAY;MAExC,MAAMC,QAAQ,GAAG,IAAIV,QAAQ,CAACK,KAAK,CAACM,MAAM,EAAEN,KAAK,CAACE,KAAK,EAAE3D,MAAM,CAAC;;MAIhEgD,WAAW,CAACc,QAAQ,EAAE9D,MAAM,CAAC;MAE7B,IAAI,CAACyD,KAAK,CAACO,WAAW,IAAIpB,SAAS,IAAIhC,WAAW,EAAE;QAClD;MACF;IACF;EACF,CAAC,CAAC,OAAOqD,CAAC,EAAE;IACV,MAAMA,CAAC;EACT,CAAC,SAAS;IACRhB,WAAW,CAACiB,KAAK,EAAE;EACrB;AACF;;AAQA,SAAS7B,mBAAmB,GAIjB;EAAA,IAHT5B,OAAY,uEAAG,CAAC,CAAC;EAAA,IACjBiB,SAAiB;EAAA,IACjBY,UAA4B;EAE5B,IAAIF,YAAY,GAAG,KAAK;EACxB,QAAQE,UAAU;IAChB,KAAK,CAAC;MACJF,YAAY,GAAG,KAAK;MACpB;IACF,KAAK,EAAE;MACLA,YAAY,GAAG,IAAI;MACnB;IACF,KAAK,MAAM;MACT,IAAI3B,OAAO,CAACiC,QAAQ,CAAC,CAAC,CAAC,CAACD,KAAK,EAAE;QAC7B,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,SAAS,EAAEa,CAAC,EAAE,EAAE;UAClC,MAAM;YAACE;UAAK,CAAC,GAAGhC,OAAO,CAACiC,QAAQ,CAACH,CAAC,CAAC;UAEnC,IAAIE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAIA,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAIA,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;YACtDL,YAAY,GAAG,IAAI;UACrB;QACF;MACF;MACA;IACF;MAEE+B,OAAO,CAACC,IAAI,CAAC,+CAA+C,CAAC;MAC7D;EAAM;EAEV,OAAOhC,YAAY;AACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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;AAC3D,SAAQC,SAAS,QAAO,UAAU;AAElCD,kBAAkB,CAACC,SAAS,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export { LASWorkerLoader };
|
|
|
7
7
|
* Loader for the LAS (LASer) point cloud format
|
|
8
8
|
*/
|
|
9
9
|
export declare const LASLoader: {
|
|
10
|
-
parse: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions
|
|
11
|
-
parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions
|
|
10
|
+
parse: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) => Promise<import("./lib/las-types").LASMesh | import("@loaders.gl/schema").ArrowTable | import("@loaders.gl/schema").ColumnarTable>;
|
|
11
|
+
parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) => import("./lib/las-types").LASMesh | import("@loaders.gl/schema").ArrowTable | import("@loaders.gl/schema").ColumnarTable;
|
|
12
12
|
name: string;
|
|
13
13
|
id: string;
|
|
14
14
|
module: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,SAAS,IAAI,eAAe,EAAC,MAAM,cAAc,CAAC;AAK1D,YAAY,EAAC,gBAAgB,EAAC,CAAC;AAC/B,OAAO,EAAC,eAAe,EAAC,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,SAAS;yBAEO,WAAW;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,SAAS,IAAI,eAAe,EAAC,MAAM,cAAc,CAAC;AAK1D,YAAY,EAAC,gBAAgB,EAAC,CAAC;AAC/B,OAAO,EAAC,eAAe,EAAC,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,SAAS;yBAEO,WAAW,YAAY,gBAAgB;6BAEzC,WAAW,YAAY,gBAAgB;;;;;;;;;;;;CAEjE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAA4B,CAAC"}
|
package/dist/las-worker.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/las",
|
|
3
|
-
"version": "3.3.0-alpha.
|
|
3
|
+
"version": "3.3.0-alpha.7",
|
|
4
4
|
"description": "Framework-independent loader for the LAS and LAZ formats",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@babel/runtime": "^7.3.1",
|
|
44
|
-
"@loaders.gl/loader-utils": "3.3.0-alpha.
|
|
45
|
-
"@loaders.gl/schema": "3.3.0-alpha.
|
|
44
|
+
"@loaders.gl/loader-utils": "3.3.0-alpha.7",
|
|
45
|
+
"@loaders.gl/schema": "3.3.0-alpha.7",
|
|
46
46
|
"apache-arrow": "^4.0.0"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "29b08f3519c50984e84bf4234e607cab7c7d1c3e"
|
|
49
49
|
}
|