@loaders.gl/pcd 4.2.0-alpha.4 → 4.2.0-alpha.5
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 +97 -61
- package/dist/dist.min.js +17 -0
- package/dist/index.cjs +24 -63
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/lib/decompress-lzf.js +55 -48
- package/dist/lib/get-pcd-schema.d.ts +1 -1
- package/dist/lib/get-pcd-schema.d.ts.map +1 -1
- package/dist/lib/get-pcd-schema.js +27 -46
- package/dist/lib/parse-pcd.d.ts +1 -1
- package/dist/lib/parse-pcd.d.ts.map +1 -1
- package/dist/lib/parse-pcd.js +296 -255
- package/dist/lib/pcd-types.js +0 -1
- package/dist/pcd-loader.d.ts +1 -1
- package/dist/pcd-loader.d.ts.map +1 -1
- package/dist/pcd-loader.js +18 -11
- package/dist/workers/pcd-worker.js +0 -1
- package/package.json +10 -6
- package/dist/index.js.map +0 -1
- package/dist/lib/decompress-lzf.js.map +0 -1
- package/dist/lib/get-pcd-schema.js.map +0 -1
- package/dist/lib/parse-pcd.js.map +0 -1
- package/dist/lib/pcd-types.js.map +0 -1
- package/dist/pcd-loader.js.map +0 -1
- package/dist/workers/pcd-worker.js.map +0 -1
package/dist/dist.dev.js
CHANGED
|
@@ -2,14 +2,19 @@
|
|
|
2
2
|
if (typeof exports === 'object' && typeof module === 'object')
|
|
3
3
|
module.exports = factory();
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
|
-
else if (typeof exports === 'object') exports['
|
|
6
|
-
else root['
|
|
5
|
+
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
|
+
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
7
|
"use strict";
|
|
8
8
|
var __exports__ = (() => {
|
|
9
|
+
var __create = Object.create;
|
|
9
10
|
var __defProp = Object.defineProperty;
|
|
10
11
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
11
12
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
12
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
15
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
16
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
17
|
+
};
|
|
13
18
|
var __export = (target, all) => {
|
|
14
19
|
for (var name in all)
|
|
15
20
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -22,14 +27,31 @@ var __exports__ = (() => {
|
|
|
22
27
|
}
|
|
23
28
|
return to;
|
|
24
29
|
};
|
|
30
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
31
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
32
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
33
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
34
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
35
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
36
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
37
|
+
mod
|
|
38
|
+
));
|
|
25
39
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
40
|
|
|
27
|
-
//
|
|
28
|
-
var
|
|
29
|
-
|
|
41
|
+
// external-global-plugin:@loaders.gl/core
|
|
42
|
+
var require_core = __commonJS({
|
|
43
|
+
"external-global-plugin:@loaders.gl/core"(exports, module) {
|
|
44
|
+
module.exports = globalThis.loaders;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// bundle.ts
|
|
49
|
+
var bundle_exports = {};
|
|
50
|
+
__export(bundle_exports, {
|
|
30
51
|
PCDLoader: () => PCDLoader2,
|
|
31
52
|
PCDWorkerLoader: () => PCDLoader
|
|
32
53
|
});
|
|
54
|
+
__reExport(bundle_exports, __toESM(require_core(), 1));
|
|
33
55
|
|
|
34
56
|
// ../schema/src/lib/mesh/mesh-utils.ts
|
|
35
57
|
function getMeshBoundingBox(attributes) {
|
|
@@ -52,7 +74,10 @@ var __exports__ = (() => {
|
|
|
52
74
|
maxY = y > maxY ? y : maxY;
|
|
53
75
|
maxZ = z > maxZ ? z : maxZ;
|
|
54
76
|
}
|
|
55
|
-
return [
|
|
77
|
+
return [
|
|
78
|
+
[minX, minY, minZ],
|
|
79
|
+
[maxX, maxY, maxZ]
|
|
80
|
+
];
|
|
56
81
|
}
|
|
57
82
|
|
|
58
83
|
// src/lib/decompress-lzf.ts
|
|
@@ -114,46 +139,22 @@ var __exports__ = (() => {
|
|
|
114
139
|
if (offset.x !== void 0) {
|
|
115
140
|
fields.push({
|
|
116
141
|
name: "POSITION",
|
|
117
|
-
type: {
|
|
118
|
-
type: "fixed-size-list",
|
|
119
|
-
listSize: 3,
|
|
120
|
-
children: [{
|
|
121
|
-
name: "xyz",
|
|
122
|
-
type: "float32"
|
|
123
|
-
}]
|
|
124
|
-
}
|
|
142
|
+
type: { type: "fixed-size-list", listSize: 3, children: [{ name: "xyz", type: "float32" }] }
|
|
125
143
|
});
|
|
126
144
|
}
|
|
127
145
|
if (offset.normal_x !== void 0) {
|
|
128
146
|
fields.push({
|
|
129
147
|
name: "NORMAL",
|
|
130
|
-
type: {
|
|
131
|
-
type: "fixed-size-list",
|
|
132
|
-
listSize: 3,
|
|
133
|
-
children: [{
|
|
134
|
-
name: "xyz",
|
|
135
|
-
type: "float32"
|
|
136
|
-
}]
|
|
137
|
-
}
|
|
148
|
+
type: { type: "fixed-size-list", listSize: 3, children: [{ name: "xyz", type: "float32" }] }
|
|
138
149
|
});
|
|
139
150
|
}
|
|
140
151
|
if (offset.rgb !== void 0) {
|
|
141
152
|
fields.push({
|
|
142
153
|
name: "COLOR_0",
|
|
143
|
-
type: {
|
|
144
|
-
type: "fixed-size-list",
|
|
145
|
-
listSize: 3,
|
|
146
|
-
children: [{
|
|
147
|
-
name: "rgb",
|
|
148
|
-
type: "uint8"
|
|
149
|
-
}]
|
|
150
|
-
}
|
|
154
|
+
type: { type: "fixed-size-list", listSize: 3, children: [{ name: "rgb", type: "uint8" }] }
|
|
151
155
|
});
|
|
152
156
|
}
|
|
153
|
-
return {
|
|
154
|
-
fields,
|
|
155
|
-
metadata
|
|
156
|
-
};
|
|
157
|
+
return { fields, metadata };
|
|
157
158
|
}
|
|
158
159
|
|
|
159
160
|
// src/lib/parse-pcd.ts
|
|
@@ -177,7 +178,10 @@ var __exports__ = (() => {
|
|
|
177
178
|
}
|
|
178
179
|
attributes = getMeshAttributes(attributes);
|
|
179
180
|
const header = getMeshHeader(pcdHeader, attributes);
|
|
180
|
-
const metadata = Object.fromEntries([
|
|
181
|
+
const metadata = Object.fromEntries([
|
|
182
|
+
["mode", "0"],
|
|
183
|
+
["boundingBox", JSON.stringify(header.boundingBox)]
|
|
184
|
+
]);
|
|
181
185
|
const schema = getPCDSchema(pcdHeader, metadata);
|
|
182
186
|
return {
|
|
183
187
|
loader: "pcd",
|
|
@@ -185,6 +189,7 @@ var __exports__ = (() => {
|
|
|
185
189
|
header,
|
|
186
190
|
schema,
|
|
187
191
|
mode: 0,
|
|
192
|
+
// POINTS
|
|
188
193
|
topology: "point-list",
|
|
189
194
|
attributes
|
|
190
195
|
};
|
|
@@ -205,6 +210,7 @@ var __exports__ = (() => {
|
|
|
205
210
|
function getMeshAttributes(attributes) {
|
|
206
211
|
const normalizedAttributes = {
|
|
207
212
|
POSITION: {
|
|
213
|
+
// Binary PCD is only 32 bit
|
|
208
214
|
value: new Float32Array(attributes.position),
|
|
209
215
|
size: 3
|
|
210
216
|
}
|
|
@@ -344,11 +350,7 @@ var __exports__ = (() => {
|
|
|
344
350
|
}
|
|
345
351
|
}
|
|
346
352
|
}
|
|
347
|
-
return {
|
|
348
|
-
position,
|
|
349
|
-
normal,
|
|
350
|
-
color
|
|
351
|
-
};
|
|
353
|
+
return { position, normal, color };
|
|
352
354
|
}
|
|
353
355
|
function parsePCDBinary(pcdHeader, data) {
|
|
354
356
|
const position = [];
|
|
@@ -381,13 +383,7 @@ var __exports__ = (() => {
|
|
|
381
383
|
label.push(dataview.getInt32(row + offset.label, LITTLE_ENDIAN));
|
|
382
384
|
}
|
|
383
385
|
}
|
|
384
|
-
return {
|
|
385
|
-
position,
|
|
386
|
-
normal,
|
|
387
|
-
color,
|
|
388
|
-
intensity,
|
|
389
|
-
label
|
|
390
|
-
};
|
|
386
|
+
return { position, normal, color, intensity, label };
|
|
391
387
|
}
|
|
392
388
|
function parsePCDBinaryCompressed(pcdHeader, data) {
|
|
393
389
|
const position = [];
|
|
@@ -398,32 +394,72 @@ var __exports__ = (() => {
|
|
|
398
394
|
const sizes = new Uint32Array(data.slice(pcdHeader.headerLen, pcdHeader.headerLen + 8));
|
|
399
395
|
const compressedSize = sizes[0];
|
|
400
396
|
const decompressedSize = sizes[1];
|
|
401
|
-
const decompressed = decompressLZF(
|
|
397
|
+
const decompressed = decompressLZF(
|
|
398
|
+
new Uint8Array(data, pcdHeader.headerLen + 8, compressedSize),
|
|
399
|
+
decompressedSize
|
|
400
|
+
);
|
|
402
401
|
const dataview = new DataView(decompressed.buffer);
|
|
403
402
|
const offset = pcdHeader.offset;
|
|
404
403
|
for (let i = 0; i < pcdHeader.points; i++) {
|
|
405
404
|
if (offset.x !== void 0) {
|
|
406
|
-
position.push(
|
|
407
|
-
|
|
408
|
-
|
|
405
|
+
position.push(
|
|
406
|
+
dataview.getFloat32(pcdHeader.points * offset.x + pcdHeader.size[0] * i, LITTLE_ENDIAN)
|
|
407
|
+
);
|
|
408
|
+
position.push(
|
|
409
|
+
dataview.getFloat32(pcdHeader.points * offset.y + pcdHeader.size[1] * i, LITTLE_ENDIAN)
|
|
410
|
+
);
|
|
411
|
+
position.push(
|
|
412
|
+
dataview.getFloat32(pcdHeader.points * offset.z + pcdHeader.size[2] * i, LITTLE_ENDIAN)
|
|
413
|
+
);
|
|
409
414
|
}
|
|
410
415
|
if (offset.rgb !== void 0) {
|
|
411
|
-
color.push(
|
|
412
|
-
|
|
413
|
-
|
|
416
|
+
color.push(
|
|
417
|
+
dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 0) / 255
|
|
418
|
+
);
|
|
419
|
+
color.push(
|
|
420
|
+
dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 1) / 255
|
|
421
|
+
);
|
|
422
|
+
color.push(
|
|
423
|
+
dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 2) / 255
|
|
424
|
+
);
|
|
414
425
|
}
|
|
415
426
|
if (offset.normal_x !== void 0) {
|
|
416
|
-
normal.push(
|
|
417
|
-
|
|
418
|
-
|
|
427
|
+
normal.push(
|
|
428
|
+
dataview.getFloat32(
|
|
429
|
+
pcdHeader.points * offset.normal_x + pcdHeader.size[4] * i,
|
|
430
|
+
LITTLE_ENDIAN
|
|
431
|
+
)
|
|
432
|
+
);
|
|
433
|
+
normal.push(
|
|
434
|
+
dataview.getFloat32(
|
|
435
|
+
pcdHeader.points * offset.normal_y + pcdHeader.size[5] * i,
|
|
436
|
+
LITTLE_ENDIAN
|
|
437
|
+
)
|
|
438
|
+
);
|
|
439
|
+
normal.push(
|
|
440
|
+
dataview.getFloat32(
|
|
441
|
+
pcdHeader.points * offset.normal_z + pcdHeader.size[6] * i,
|
|
442
|
+
LITTLE_ENDIAN
|
|
443
|
+
)
|
|
444
|
+
);
|
|
419
445
|
}
|
|
420
446
|
if (offset.intensity !== void 0) {
|
|
421
447
|
const intensityIndex = pcdHeader.fields.indexOf("intensity");
|
|
422
|
-
intensity.push(
|
|
448
|
+
intensity.push(
|
|
449
|
+
dataview.getFloat32(
|
|
450
|
+
pcdHeader.points * offset.intensity + pcdHeader.size[intensityIndex] * i,
|
|
451
|
+
LITTLE_ENDIAN
|
|
452
|
+
)
|
|
453
|
+
);
|
|
423
454
|
}
|
|
424
455
|
if (offset.label !== void 0) {
|
|
425
456
|
const labelIndex = pcdHeader.fields.indexOf("label");
|
|
426
|
-
label.push(
|
|
457
|
+
label.push(
|
|
458
|
+
dataview.getInt32(
|
|
459
|
+
pcdHeader.points * offset.label + pcdHeader.size[labelIndex] * i,
|
|
460
|
+
LITTLE_ENDIAN
|
|
461
|
+
)
|
|
462
|
+
);
|
|
427
463
|
}
|
|
428
464
|
}
|
|
429
465
|
return {
|
|
@@ -436,7 +472,7 @@ var __exports__ = (() => {
|
|
|
436
472
|
}
|
|
437
473
|
|
|
438
474
|
// src/pcd-loader.ts
|
|
439
|
-
var VERSION =
|
|
475
|
+
var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
|
|
440
476
|
var PCDLoader = {
|
|
441
477
|
name: "PCD (Point Cloud Data)",
|
|
442
478
|
id: "pcd",
|
|
@@ -456,7 +492,7 @@ var __exports__ = (() => {
|
|
|
456
492
|
parse: async (arrayBuffer) => parsePCD(arrayBuffer),
|
|
457
493
|
parseSync: parsePCD
|
|
458
494
|
};
|
|
459
|
-
return __toCommonJS(
|
|
495
|
+
return __toCommonJS(bundle_exports);
|
|
460
496
|
})();
|
|
461
497
|
/** Parse compressed PCD data in in binary_compressed form ( https://pointclouds.org/documentation/tutorials/pcd_file_format.html)
|
|
462
498
|
* from https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PCDLoader.js
|
package/dist/dist.min.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if (typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
|
+
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
|
+
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
|
+
"use strict";var __exports__=(()=>{var D=Object.create;var y=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,L=Object.prototype.hasOwnProperty;var P=(t,o)=>()=>(o||t((o={exports:{}}).exports,o),o.exports),B=(t,o)=>{for(var n in o)y(t,n,{get:o[n],enumerable:!0})},x=(t,o,n,e)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of v(o))!L.call(t,i)&&i!==n&&y(t,i,{get:()=>o[i],enumerable:!(e=C(o,i))||e.enumerable});return t},w=(t,o,n)=>(x(t,o,"default"),n&&x(n,o,"default")),E=(t,o,n)=>(n=t!=null?D(O(t)):{},x(o||!t||!t.__esModule?y(n,"default",{value:t,enumerable:!0}):n,t)),U=t=>x(y({},"__esModule",{value:!0}),t);var F=P((W,z)=>{z.exports=globalThis.loaders});var d={};B(d,{PCDLoader:()=>Z,PCDWorkerLoader:()=>T});w(d,E(F(),1));function I(t){let o=1/0,n=1/0,e=1/0,i=-1/0,r=-1/0,p=-1/0,s=t.POSITION?t.POSITION.value:[],l=s&&s.length;for(let c=0;c<l;c+=3){let f=s[c],a=s[c+1],u=s[c+2];o=f<o?f:o,n=a<n?a:n,e=u<e?u:e,i=f>i?f:i,r=a>r?a:r,p=u>p?u:p}return[[o,n,e],[i,r,p]]}function S(t,o){let n=t.length,e=new Uint8Array(o),i=0,r=0,p,s,l;do if(p=t[i++],p<1<<5){if(p++,r+p>o)throw new Error("Output buffer is not large enough");if(i+p>n)throw new Error("Invalid compressed data");do e[r++]=t[i++];while(--p)}else{if(s=p>>5,l=r-((p&31)<<8)-1,i>=n)throw new Error("Invalid compressed data");if(s===7&&(s+=t[i++],i>=n))throw new Error("Invalid compressed data");if(l-=t[i++],r+s+2>o)throw new Error("Output buffer is not large enough");if(l<0)throw new Error("Invalid compressed data");if(l>=r)throw new Error("Invalid compressed data");do e[r++]=e[l++];while(--s+2)}while(i<n);return e}function A(t,o){let n=t.offset,e=[];return n.x!==void 0&&e.push({name:"POSITION",type:{type:"fixed-size-list",listSize:3,children:[{name:"xyz",type:"float32"}]}}),n.normal_x!==void 0&&e.push({name:"NORMAL",type:{type:"fixed-size-list",listSize:3,children:[{name:"xyz",type:"float32"}]}}),n.rgb!==void 0&&e.push({name:"COLOR_0",type:{type:"fixed-size-list",listSize:3,children:[{name:"rgb",type:"uint8"}]}}),{fields:e,metadata:o}}var h=!0;function b(t){let o=new TextDecoder().decode(t),n=M(o),e={};switch(n.data){case"ascii":e=R(n,o);break;case"binary":e=k(n,t);break;case"binary_compressed":e=V(n,t);break;default:throw new Error(`PCD: ${n.data} files are not supported`)}e=N(e);let i=_(n,e),r=Object.fromEntries([["mode","0"],["boundingBox",JSON.stringify(i.boundingBox)]]),p=A(n,r);return{loader:"pcd",loaderData:n,header:i,schema:p,mode:0,topology:"point-list",attributes:e}}function _(t,o){return typeof t.width=="number"&&typeof t.height=="number"?{vertexCount:t.width*t.height,boundingBox:I(o)}:{vertexCount:t.vertexCount,boundingBox:t.boundingBox}}function N(t){let o={POSITION:{value:new Float32Array(t.position),size:3}};return t.normal&&t.normal.length>0&&(o.NORMAL={value:new Float32Array(t.normal),size:3}),t.color&&t.color.length>0&&(o.COLOR_0={value:new Uint8Array(t.color),size:3}),t.intensity&&t.intensity.length>0&&(o.COLOR_0={value:new Uint8Array(t.color),size:3}),t.label&&t.label.length>0&&(o.COLOR_0={value:new Uint8Array(t.label),size:3}),o}function M(t){let o=t.search(/[\r\n]DATA\s(\S*)\s/i),n=/[\r\n]DATA\s(\S*)\s/i.exec(t.substr(o-1)),e={};if(e.data=n&&n[1],n!==null&&(e.headerLen=(n&&n[0].length)+o),e.str=t.substr(0,e.headerLen),e.str=e.str.replace(/\#.*/gi,""),e.version=/VERSION (.*)/i.exec(e.str),e.fields=/FIELDS (.*)/i.exec(e.str),e.size=/SIZE (.*)/i.exec(e.str),e.type=/TYPE (.*)/i.exec(e.str),e.count=/COUNT (.*)/i.exec(e.str),e.width=/WIDTH (.*)/i.exec(e.str),e.height=/HEIGHT (.*)/i.exec(e.str),e.viewpoint=/VIEWPOINT (.*)/i.exec(e.str),e.points=/POINTS (.*)/i.exec(e.str),e.version!==null&&(e.version=parseFloat(e.version[1])),e.fields!==null&&(e.fields=e.fields[1].split(" ")),e.type!==null&&(e.type=e.type[1].split(" ")),e.width!==null&&(e.width=parseInt(e.width[1],10)),e.height!==null&&(e.height=parseInt(e.height[1],10)),e.viewpoint!==null&&(e.viewpoint=e.viewpoint[1]),e.points!==null&&(e.points=parseInt(e.points[1],10)),e.points===null&&typeof e.width=="number"&&typeof e.height=="number"&&(e.points=e.width*e.height),e.size!==null&&(e.size=e.size[1].split(" ").map(r=>parseInt(r,10))),e.count!==null)e.count=e.count[1].split(" ").map(r=>parseInt(r,10));else if(e.count=[],e.fields!==null)for(let r=0;r<e.fields.length;r++)e.count.push(1);e.offset={};let i=0;if(e.fields!==null&&e.size!==null)for(let r=0;r<e.fields.length;r++)e.data==="ascii"?e.offset[e.fields[r]]=r:(e.offset[e.fields[r]]=i,i+=e.size[r]);return e.rowSize=i,e}function R(t,o){let n=[],e=[],i=[],r=[],p=[],s=t.offset,c=o.substr(t.headerLen).split(`
|
|
8
|
+
`);for(let f=0;f<c.length;f++)if(c[f]!==""){let a=c[f].split(" ");if(s.x!==void 0&&(n.push(parseFloat(a[s.x])),n.push(parseFloat(a[s.y])),n.push(parseFloat(a[s.z]))),s.rgb!==void 0){let u=parseFloat(a[s.rgb]),m=new Float32Array([u]),g=new DataView(m.buffer,0);i.push(g.getUint8(0)),i.push(g.getUint8(1)),i.push(g.getUint8(2))}s.normal_x!==void 0&&(e.push(parseFloat(a[s.normal_x])),e.push(parseFloat(a[s.normal_y])),e.push(parseFloat(a[s.normal_z]))),s.intensity!==void 0&&r.push(parseFloat(a[s.intensity])),s.label!==void 0&&p.push(parseInt(a[s.label]))}return{position:n,normal:e,color:i}}function k(t,o){let n=[],e=[],i=[],r=[],p=[],s=new DataView(o,t.headerLen),l=t.offset;for(let c=0,f=0;c<t.points;c++,f+=t.rowSize)l.x!==void 0&&(n.push(s.getFloat32(f+l.x,h)),n.push(s.getFloat32(f+l.y,h)),n.push(s.getFloat32(f+l.z,h))),l.rgb!==void 0&&(i.push(s.getUint8(f+l.rgb+0)),i.push(s.getUint8(f+l.rgb+1)),i.push(s.getUint8(f+l.rgb+2))),l.normal_x!==void 0&&(e.push(s.getFloat32(f+l.normal_x,h)),e.push(s.getFloat32(f+l.normal_y,h)),e.push(s.getFloat32(f+l.normal_z,h))),l.intensity!==void 0&&r.push(s.getFloat32(f+l.intensity,h)),l.label!==void 0&&p.push(s.getInt32(f+l.label,h));return{position:n,normal:e,color:i,intensity:r,label:p}}function V(t,o){let n=[],e=[],i=[],r=[],p=[],s=new Uint32Array(o.slice(t.headerLen,t.headerLen+8)),l=s[0],c=s[1],f=S(new Uint8Array(o,t.headerLen+8,l),c),a=new DataView(f.buffer),u=t.offset;for(let m=0;m<t.points;m++){if(u.x!==void 0&&(n.push(a.getFloat32(t.points*u.x+t.size[0]*m,h)),n.push(a.getFloat32(t.points*u.y+t.size[1]*m,h)),n.push(a.getFloat32(t.points*u.z+t.size[2]*m,h))),u.rgb!==void 0&&(i.push(a.getUint8(t.points*u.rgb+t.size[3]*m+0)/255),i.push(a.getUint8(t.points*u.rgb+t.size[3]*m+1)/255),i.push(a.getUint8(t.points*u.rgb+t.size[3]*m+2)/255)),u.normal_x!==void 0&&(e.push(a.getFloat32(t.points*u.normal_x+t.size[4]*m,h)),e.push(a.getFloat32(t.points*u.normal_y+t.size[5]*m,h)),e.push(a.getFloat32(t.points*u.normal_z+t.size[6]*m,h))),u.intensity!==void 0){let g=t.fields.indexOf("intensity");r.push(a.getFloat32(t.points*u.intensity+t.size[g]*m,h))}if(u.label!==void 0){let g=t.fields.indexOf("label");p.push(a.getInt32(t.points*u.label+t.size[g]*m,h))}}return{position:n,normal:e,color:i,intensity:r,label:p}}var Y="4.2.0-alpha.4",T={name:"PCD (Point Cloud Data)",id:"pcd",module:"pcd",version:Y,worker:!0,extensions:["pcd"],mimeTypes:["text/plain"],options:{pcd:{}}};var Z={...T,parse:async t=>b(t),parseSync:b};return U(d);})();
|
|
9
|
+
/** Parse compressed PCD data in in binary_compressed form ( https://pointclouds.org/documentation/tutorials/pcd_file_format.html)
|
|
10
|
+
* from https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PCDLoader.js
|
|
11
|
+
* @license MIT (http://opensource.org/licenses/MIT)
|
|
12
|
+
* @param pcdHeader
|
|
13
|
+
* @param data
|
|
14
|
+
* @returns [attributes]
|
|
15
|
+
*/
|
|
16
|
+
return __exports__;
|
|
17
|
+
});
|
package/dist/index.cjs
CHANGED
|
@@ -17,18 +17,18 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
//
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
20
|
+
// dist/index.js
|
|
21
|
+
var dist_exports = {};
|
|
22
|
+
__export(dist_exports, {
|
|
23
23
|
PCDLoader: () => PCDLoader2,
|
|
24
24
|
PCDWorkerLoader: () => PCDLoader
|
|
25
25
|
});
|
|
26
|
-
module.exports = __toCommonJS(
|
|
26
|
+
module.exports = __toCommonJS(dist_exports);
|
|
27
27
|
|
|
28
|
-
//
|
|
28
|
+
// dist/lib/parse-pcd.js
|
|
29
29
|
var import_schema = require("@loaders.gl/schema");
|
|
30
30
|
|
|
31
|
-
//
|
|
31
|
+
// dist/lib/decompress-lzf.js
|
|
32
32
|
function decompressLZF(inData, outLength) {
|
|
33
33
|
const inLength = inData.length;
|
|
34
34
|
const outData = new Uint8Array(outLength);
|
|
@@ -80,7 +80,7 @@ function decompressLZF(inData, outLength) {
|
|
|
80
80
|
return outData;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
//
|
|
83
|
+
// dist/lib/get-pcd-schema.js
|
|
84
84
|
function getPCDSchema(PCDheader, metadata) {
|
|
85
85
|
const offset = PCDheader.offset;
|
|
86
86
|
const fields = [];
|
|
@@ -105,7 +105,7 @@ function getPCDSchema(PCDheader, metadata) {
|
|
|
105
105
|
return { fields, metadata };
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
//
|
|
108
|
+
// dist/lib/parse-pcd.js
|
|
109
109
|
var LITTLE_ENDIAN = true;
|
|
110
110
|
function parsePCD(data) {
|
|
111
111
|
const textData = new TextDecoder().decode(data);
|
|
@@ -342,72 +342,32 @@ function parsePCDBinaryCompressed(pcdHeader, data) {
|
|
|
342
342
|
const sizes = new Uint32Array(data.slice(pcdHeader.headerLen, pcdHeader.headerLen + 8));
|
|
343
343
|
const compressedSize = sizes[0];
|
|
344
344
|
const decompressedSize = sizes[1];
|
|
345
|
-
const decompressed = decompressLZF(
|
|
346
|
-
new Uint8Array(data, pcdHeader.headerLen + 8, compressedSize),
|
|
347
|
-
decompressedSize
|
|
348
|
-
);
|
|
345
|
+
const decompressed = decompressLZF(new Uint8Array(data, pcdHeader.headerLen + 8, compressedSize), decompressedSize);
|
|
349
346
|
const dataview = new DataView(decompressed.buffer);
|
|
350
347
|
const offset = pcdHeader.offset;
|
|
351
348
|
for (let i = 0; i < pcdHeader.points; i++) {
|
|
352
349
|
if (offset.x !== void 0) {
|
|
353
|
-
position.push(
|
|
354
|
-
|
|
355
|
-
);
|
|
356
|
-
position.push(
|
|
357
|
-
dataview.getFloat32(pcdHeader.points * offset.y + pcdHeader.size[1] * i, LITTLE_ENDIAN)
|
|
358
|
-
);
|
|
359
|
-
position.push(
|
|
360
|
-
dataview.getFloat32(pcdHeader.points * offset.z + pcdHeader.size[2] * i, LITTLE_ENDIAN)
|
|
361
|
-
);
|
|
350
|
+
position.push(dataview.getFloat32(pcdHeader.points * offset.x + pcdHeader.size[0] * i, LITTLE_ENDIAN));
|
|
351
|
+
position.push(dataview.getFloat32(pcdHeader.points * offset.y + pcdHeader.size[1] * i, LITTLE_ENDIAN));
|
|
352
|
+
position.push(dataview.getFloat32(pcdHeader.points * offset.z + pcdHeader.size[2] * i, LITTLE_ENDIAN));
|
|
362
353
|
}
|
|
363
354
|
if (offset.rgb !== void 0) {
|
|
364
|
-
color.push(
|
|
365
|
-
|
|
366
|
-
);
|
|
367
|
-
color.push(
|
|
368
|
-
dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 1) / 255
|
|
369
|
-
);
|
|
370
|
-
color.push(
|
|
371
|
-
dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 2) / 255
|
|
372
|
-
);
|
|
355
|
+
color.push(dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 0) / 255);
|
|
356
|
+
color.push(dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 1) / 255);
|
|
357
|
+
color.push(dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 2) / 255);
|
|
373
358
|
}
|
|
374
359
|
if (offset.normal_x !== void 0) {
|
|
375
|
-
normal.push(
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
LITTLE_ENDIAN
|
|
379
|
-
)
|
|
380
|
-
);
|
|
381
|
-
normal.push(
|
|
382
|
-
dataview.getFloat32(
|
|
383
|
-
pcdHeader.points * offset.normal_y + pcdHeader.size[5] * i,
|
|
384
|
-
LITTLE_ENDIAN
|
|
385
|
-
)
|
|
386
|
-
);
|
|
387
|
-
normal.push(
|
|
388
|
-
dataview.getFloat32(
|
|
389
|
-
pcdHeader.points * offset.normal_z + pcdHeader.size[6] * i,
|
|
390
|
-
LITTLE_ENDIAN
|
|
391
|
-
)
|
|
392
|
-
);
|
|
360
|
+
normal.push(dataview.getFloat32(pcdHeader.points * offset.normal_x + pcdHeader.size[4] * i, LITTLE_ENDIAN));
|
|
361
|
+
normal.push(dataview.getFloat32(pcdHeader.points * offset.normal_y + pcdHeader.size[5] * i, LITTLE_ENDIAN));
|
|
362
|
+
normal.push(dataview.getFloat32(pcdHeader.points * offset.normal_z + pcdHeader.size[6] * i, LITTLE_ENDIAN));
|
|
393
363
|
}
|
|
394
364
|
if (offset.intensity !== void 0) {
|
|
395
365
|
const intensityIndex = pcdHeader.fields.indexOf("intensity");
|
|
396
|
-
intensity.push(
|
|
397
|
-
dataview.getFloat32(
|
|
398
|
-
pcdHeader.points * offset.intensity + pcdHeader.size[intensityIndex] * i,
|
|
399
|
-
LITTLE_ENDIAN
|
|
400
|
-
)
|
|
401
|
-
);
|
|
366
|
+
intensity.push(dataview.getFloat32(pcdHeader.points * offset.intensity + pcdHeader.size[intensityIndex] * i, LITTLE_ENDIAN));
|
|
402
367
|
}
|
|
403
368
|
if (offset.label !== void 0) {
|
|
404
369
|
const labelIndex = pcdHeader.fields.indexOf("label");
|
|
405
|
-
label.push(
|
|
406
|
-
dataview.getInt32(
|
|
407
|
-
pcdHeader.points * offset.label + pcdHeader.size[labelIndex] * i,
|
|
408
|
-
LITTLE_ENDIAN
|
|
409
|
-
)
|
|
410
|
-
);
|
|
370
|
+
label.push(dataview.getInt32(pcdHeader.points * offset.label + pcdHeader.size[labelIndex] * i, LITTLE_ENDIAN));
|
|
411
371
|
}
|
|
412
372
|
}
|
|
413
373
|
return {
|
|
@@ -419,8 +379,8 @@ function parsePCDBinaryCompressed(pcdHeader, data) {
|
|
|
419
379
|
};
|
|
420
380
|
}
|
|
421
381
|
|
|
422
|
-
//
|
|
423
|
-
var VERSION =
|
|
382
|
+
// dist/pcd-loader.js
|
|
383
|
+
var VERSION = true ? "4.2.0-alpha.4" : "latest";
|
|
424
384
|
var PCDLoader = {
|
|
425
385
|
name: "PCD (Point Cloud Data)",
|
|
426
386
|
id: "pcd",
|
|
@@ -434,7 +394,7 @@ var PCDLoader = {
|
|
|
434
394
|
}
|
|
435
395
|
};
|
|
436
396
|
|
|
437
|
-
//
|
|
397
|
+
// dist/index.js
|
|
438
398
|
var PCDLoader2 = {
|
|
439
399
|
...PCDLoader,
|
|
440
400
|
parse: async (arrayBuffer) => parsePCD(arrayBuffer),
|
|
@@ -447,3 +407,4 @@ var PCDLoader2 = {
|
|
|
447
407
|
* @param data
|
|
448
408
|
* @returns [attributes]
|
|
449
409
|
*/
|
|
410
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["index.js", "lib/parse-pcd.js", "lib/decompress-lzf.js", "lib/get-pcd-schema.js", "pcd-loader.js"],
|
|
4
|
+
"sourcesContent": ["import parsePCDSync from \"./lib/parse-pcd.js\";\nimport { PCDLoader as PCDWorkerLoader } from \"./pcd-loader.js\";\nexport { PCDWorkerLoader };\n/**\n * Loader for PCD - Point Cloud Data\n */\nexport const PCDLoader = {\n ...PCDWorkerLoader,\n parse: async (arrayBuffer) => parsePCDSync(arrayBuffer),\n parseSync: parsePCDSync\n};\n", "// PCD Loader, adapted from THREE.js (MIT license)\n// Description: A loader for PCD ascii and binary files.\n// Limitations: Compressed binary files are not supported.\n//\n// Attributions per original THREE.js source file:\n// @author Filipe Caixeta / http://filipecaixeta.com.br\n// @author Mugen87 / https://github.com/Mugen87\nimport { getMeshBoundingBox } from '@loaders.gl/schema';\nimport { decompressLZF } from \"./decompress-lzf.js\";\nimport { getPCDSchema } from \"./get-pcd-schema.js\";\nconst LITTLE_ENDIAN = true;\n/**\n *\n * @param data\n * @returns\n */\nexport default function parsePCD(data) {\n // parse header (always ascii format)\n const textData = new TextDecoder().decode(data);\n const pcdHeader = parsePCDHeader(textData);\n let attributes = {};\n // parse data\n switch (pcdHeader.data) {\n case 'ascii':\n attributes = parsePCDASCII(pcdHeader, textData);\n break;\n case 'binary':\n attributes = parsePCDBinary(pcdHeader, data);\n break;\n case 'binary_compressed':\n attributes = parsePCDBinaryCompressed(pcdHeader, data);\n break;\n default:\n throw new Error(`PCD: ${pcdHeader.data} files are not supported`);\n }\n attributes = getMeshAttributes(attributes);\n const header = getMeshHeader(pcdHeader, attributes);\n const metadata = Object.fromEntries([\n ['mode', '0'],\n ['boundingBox', JSON.stringify(header.boundingBox)]\n ]);\n const schema = getPCDSchema(pcdHeader, metadata);\n return {\n loader: 'pcd',\n loaderData: pcdHeader,\n header,\n schema,\n mode: 0, // POINTS\n topology: 'point-list',\n attributes\n };\n}\n// Create a header that contains common data for PointCloud category loaders\nfunction getMeshHeader(pcdHeader, attributes) {\n if (typeof pcdHeader.width === 'number' && typeof pcdHeader.height === 'number') {\n const pointCount = pcdHeader.width * pcdHeader.height; // Supports \"organized\" point sets\n return {\n vertexCount: pointCount,\n boundingBox: getMeshBoundingBox(attributes)\n };\n }\n return {\n vertexCount: pcdHeader.vertexCount,\n boundingBox: pcdHeader.boundingBox\n };\n}\n/**\n * @param attributes\n * @returns Normalized attributes\n */\nfunction getMeshAttributes(attributes) {\n const normalizedAttributes = {\n POSITION: {\n // Binary PCD is only 32 bit\n value: new Float32Array(attributes.position),\n size: 3\n }\n };\n if (attributes.normal && attributes.normal.length > 0) {\n normalizedAttributes.NORMAL = {\n value: new Float32Array(attributes.normal),\n size: 3\n };\n }\n if (attributes.color && attributes.color.length > 0) {\n // TODO - RGBA\n normalizedAttributes.COLOR_0 = {\n value: new Uint8Array(attributes.color),\n size: 3\n };\n }\n if (attributes.intensity && attributes.intensity.length > 0) {\n // TODO - RGBA\n normalizedAttributes.COLOR_0 = {\n value: new Uint8Array(attributes.color),\n size: 3\n };\n }\n if (attributes.label && attributes.label.length > 0) {\n // TODO - RGBA\n normalizedAttributes.COLOR_0 = {\n value: new Uint8Array(attributes.label),\n size: 3\n };\n }\n return normalizedAttributes;\n}\n/**\n * Incoming data parsing\n * @param data\n * @returns Header\n */\n/* eslint-disable complexity, max-statements */\nfunction parsePCDHeader(data) {\n const result1 = data.search(/[\\r\\n]DATA\\s(\\S*)\\s/i);\n const result2 = /[\\r\\n]DATA\\s(\\S*)\\s/i.exec(data.substr(result1 - 1));\n const pcdHeader = {};\n pcdHeader.data = result2 && result2[1];\n if (result2 !== null) {\n pcdHeader.headerLen = (result2 && result2[0].length) + result1;\n }\n pcdHeader.str = data.substr(0, pcdHeader.headerLen);\n // remove comments\n pcdHeader.str = pcdHeader.str.replace(/\\#.*/gi, '');\n // parse\n pcdHeader.version = /VERSION (.*)/i.exec(pcdHeader.str);\n pcdHeader.fields = /FIELDS (.*)/i.exec(pcdHeader.str);\n pcdHeader.size = /SIZE (.*)/i.exec(pcdHeader.str);\n pcdHeader.type = /TYPE (.*)/i.exec(pcdHeader.str);\n pcdHeader.count = /COUNT (.*)/i.exec(pcdHeader.str);\n pcdHeader.width = /WIDTH (.*)/i.exec(pcdHeader.str);\n pcdHeader.height = /HEIGHT (.*)/i.exec(pcdHeader.str);\n pcdHeader.viewpoint = /VIEWPOINT (.*)/i.exec(pcdHeader.str);\n pcdHeader.points = /POINTS (.*)/i.exec(pcdHeader.str);\n // evaluate\n if (pcdHeader.version !== null) {\n pcdHeader.version = parseFloat(pcdHeader.version[1]);\n }\n if (pcdHeader.fields !== null) {\n pcdHeader.fields = pcdHeader.fields[1].split(' ');\n }\n if (pcdHeader.type !== null) {\n pcdHeader.type = pcdHeader.type[1].split(' ');\n }\n if (pcdHeader.width !== null) {\n pcdHeader.width = parseInt(pcdHeader.width[1], 10);\n }\n if (pcdHeader.height !== null) {\n pcdHeader.height = parseInt(pcdHeader.height[1], 10);\n }\n if (pcdHeader.viewpoint !== null) {\n pcdHeader.viewpoint = pcdHeader.viewpoint[1];\n }\n if (pcdHeader.points !== null) {\n pcdHeader.points = parseInt(pcdHeader.points[1], 10);\n }\n if (pcdHeader.points === null &&\n typeof pcdHeader.width === 'number' &&\n typeof pcdHeader.height === 'number') {\n pcdHeader.points = pcdHeader.width * pcdHeader.height;\n }\n if (pcdHeader.size !== null) {\n pcdHeader.size = pcdHeader.size[1].split(' ').map((x) => parseInt(x, 10));\n }\n if (pcdHeader.count !== null) {\n pcdHeader.count = pcdHeader.count[1].split(' ').map((x) => parseInt(x, 10));\n }\n else {\n pcdHeader.count = [];\n if (pcdHeader.fields !== null) {\n for (let i = 0; i < pcdHeader.fields.length; i++) {\n pcdHeader.count.push(1);\n }\n }\n }\n pcdHeader.offset = {};\n let sizeSum = 0;\n if (pcdHeader.fields !== null && pcdHeader.size !== null) {\n for (let i = 0; i < pcdHeader.fields.length; i++) {\n if (pcdHeader.data === 'ascii') {\n pcdHeader.offset[pcdHeader.fields[i]] = i;\n }\n else {\n pcdHeader.offset[pcdHeader.fields[i]] = sizeSum;\n sizeSum += pcdHeader.size[i];\n }\n }\n }\n // for binary only\n pcdHeader.rowSize = sizeSum;\n return pcdHeader;\n}\n/**\n * @param pcdHeader\n * @param textData\n * @returns [attributes]\n */\n// eslint-enable-next-line complexity, max-statements\nfunction parsePCDASCII(pcdHeader, textData) {\n const position = [];\n const normal = [];\n const color = [];\n const intensity = [];\n const label = [];\n const offset = pcdHeader.offset;\n const pcdData = textData.substr(pcdHeader.headerLen);\n const lines = pcdData.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i] !== '') {\n const line = lines[i].split(' ');\n if (offset.x !== undefined) {\n position.push(parseFloat(line[offset.x]));\n position.push(parseFloat(line[offset.y]));\n position.push(parseFloat(line[offset.z]));\n }\n if (offset.rgb !== undefined) {\n const floatValue = parseFloat(line[offset.rgb]);\n const binaryColor = new Float32Array([floatValue]);\n const dataview = new DataView(binaryColor.buffer, 0);\n color.push(dataview.getUint8(0));\n color.push(dataview.getUint8(1));\n color.push(dataview.getUint8(2));\n // TODO - handle alpha channel / RGBA?\n }\n if (offset.normal_x !== undefined) {\n normal.push(parseFloat(line[offset.normal_x]));\n normal.push(parseFloat(line[offset.normal_y]));\n normal.push(parseFloat(line[offset.normal_z]));\n }\n if (offset.intensity !== undefined) {\n intensity.push(parseFloat(line[offset.intensity]));\n }\n if (offset.label !== undefined) {\n label.push(parseInt(line[offset.label]));\n }\n }\n }\n return { position, normal, color };\n}\n/**\n * @param pcdHeader\n * @param data\n * @returns [attributes]\n */\nfunction parsePCDBinary(pcdHeader, data) {\n const position = [];\n const normal = [];\n const color = [];\n const intensity = [];\n const label = [];\n const dataview = new DataView(data, pcdHeader.headerLen);\n const offset = pcdHeader.offset;\n for (let i = 0, row = 0; i < pcdHeader.points; i++, row += pcdHeader.rowSize) {\n if (offset.x !== undefined) {\n position.push(dataview.getFloat32(row + offset.x, LITTLE_ENDIAN));\n position.push(dataview.getFloat32(row + offset.y, LITTLE_ENDIAN));\n position.push(dataview.getFloat32(row + offset.z, LITTLE_ENDIAN));\n }\n if (offset.rgb !== undefined) {\n color.push(dataview.getUint8(row + offset.rgb + 0));\n color.push(dataview.getUint8(row + offset.rgb + 1));\n color.push(dataview.getUint8(row + offset.rgb + 2));\n }\n if (offset.normal_x !== undefined) {\n normal.push(dataview.getFloat32(row + offset.normal_x, LITTLE_ENDIAN));\n normal.push(dataview.getFloat32(row + offset.normal_y, LITTLE_ENDIAN));\n normal.push(dataview.getFloat32(row + offset.normal_z, LITTLE_ENDIAN));\n }\n if (offset.intensity !== undefined) {\n intensity.push(dataview.getFloat32(row + offset.intensity, LITTLE_ENDIAN));\n }\n if (offset.label !== undefined) {\n label.push(dataview.getInt32(row + offset.label, LITTLE_ENDIAN));\n }\n }\n return { position, normal, color, intensity, label };\n}\n/** Parse compressed PCD data in in binary_compressed form ( https://pointclouds.org/documentation/tutorials/pcd_file_format.html)\n * from https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/PCDLoader.js\n * @license MIT (http://opensource.org/licenses/MIT)\n * @param pcdHeader\n * @param data\n * @returns [attributes]\n */\n// eslint-enable-next-line complexity, max-statements\nfunction parsePCDBinaryCompressed(pcdHeader, data) {\n const position = [];\n const normal = [];\n const color = [];\n const intensity = [];\n const label = [];\n const sizes = new Uint32Array(data.slice(pcdHeader.headerLen, pcdHeader.headerLen + 8));\n const compressedSize = sizes[0];\n const decompressedSize = sizes[1];\n const decompressed = decompressLZF(new Uint8Array(data, pcdHeader.headerLen + 8, compressedSize), decompressedSize);\n const dataview = new DataView(decompressed.buffer);\n const offset = pcdHeader.offset;\n for (let i = 0; i < pcdHeader.points; i++) {\n if (offset.x !== undefined) {\n position.push(dataview.getFloat32(pcdHeader.points * offset.x + pcdHeader.size[0] * i, LITTLE_ENDIAN));\n position.push(dataview.getFloat32(pcdHeader.points * offset.y + pcdHeader.size[1] * i, LITTLE_ENDIAN));\n position.push(dataview.getFloat32(pcdHeader.points * offset.z + pcdHeader.size[2] * i, LITTLE_ENDIAN));\n }\n if (offset.rgb !== undefined) {\n color.push(dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 0) / 255.0);\n color.push(dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 1) / 255.0);\n color.push(dataview.getUint8(pcdHeader.points * offset.rgb + pcdHeader.size[3] * i + 2) / 255.0);\n }\n if (offset.normal_x !== undefined) {\n normal.push(dataview.getFloat32(pcdHeader.points * offset.normal_x + pcdHeader.size[4] * i, LITTLE_ENDIAN));\n normal.push(dataview.getFloat32(pcdHeader.points * offset.normal_y + pcdHeader.size[5] * i, LITTLE_ENDIAN));\n normal.push(dataview.getFloat32(pcdHeader.points * offset.normal_z + pcdHeader.size[6] * i, LITTLE_ENDIAN));\n }\n if (offset.intensity !== undefined) {\n const intensityIndex = pcdHeader.fields.indexOf('intensity');\n intensity.push(dataview.getFloat32(pcdHeader.points * offset.intensity + pcdHeader.size[intensityIndex] * i, LITTLE_ENDIAN));\n }\n if (offset.label !== undefined) {\n const labelIndex = pcdHeader.fields.indexOf('label');\n label.push(dataview.getInt32(pcdHeader.points * offset.label + pcdHeader.size[labelIndex] * i, LITTLE_ENDIAN));\n }\n }\n return {\n position,\n normal,\n color,\n intensity,\n label\n };\n}\n", "/* eslint-disable */\n/**\n * from https://gitlab.com/taketwo/three-pcd-loader/blob/master/decompress-lzf.js\n * @param inData\n * @param outLength\n * @returns\n */\nexport function decompressLZF(inData, outLength) {\n const inLength = inData.length;\n const outData = new Uint8Array(outLength);\n let inPtr = 0;\n let outPtr = 0;\n let ctrl;\n let len;\n let ref;\n do {\n ctrl = inData[inPtr++];\n if (ctrl < 1 << 5) {\n ctrl++;\n if (outPtr + ctrl > outLength) {\n throw new Error('Output buffer is not large enough');\n }\n if (inPtr + ctrl > inLength) {\n throw new Error('Invalid compressed data');\n }\n do {\n outData[outPtr++] = inData[inPtr++];\n } while (--ctrl);\n }\n else {\n len = ctrl >> 5;\n ref = outPtr - ((ctrl & 0x1f) << 8) - 1;\n if (inPtr >= inLength) {\n throw new Error('Invalid compressed data');\n }\n if (len === 7) {\n len += inData[inPtr++];\n if (inPtr >= inLength) {\n throw new Error('Invalid compressed data');\n }\n }\n ref -= inData[inPtr++];\n if (outPtr + len + 2 > outLength) {\n throw new Error('Output buffer is not large enough');\n }\n if (ref < 0) {\n throw new Error('Invalid compressed data');\n }\n if (ref >= outPtr) {\n throw new Error('Invalid compressed data');\n }\n do {\n outData[outPtr++] = outData[ref++];\n } while (--len + 2);\n }\n } while (inPtr < inLength);\n return outData;\n}\n", "/**\n * Gets schema from PCD header\n * @param PCDheader\n * @param metadata\n * @returns Schema\n */\nexport function getPCDSchema(PCDheader, metadata) {\n const offset = PCDheader.offset;\n const fields = [];\n if (offset.x !== undefined) {\n fields.push({\n name: 'POSITION',\n type: { type: 'fixed-size-list', listSize: 3, children: [{ name: 'xyz', type: 'float32' }] }\n });\n }\n if (offset.normal_x !== undefined) {\n fields.push({\n name: 'NORMAL',\n type: { type: 'fixed-size-list', listSize: 3, children: [{ name: 'xyz', type: 'float32' }] }\n });\n }\n if (offset.rgb !== undefined) {\n fields.push({\n name: 'COLOR_0',\n type: { type: 'fixed-size-list', listSize: 3, children: [{ name: 'rgb', type: 'uint8' }] }\n });\n }\n return { fields, metadata };\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.2.0-alpha.4\" !== 'undefined' ? \"4.2.0-alpha.4\" : 'latest';\n/**\n * Worker loader for PCD - Point Cloud Data\n */\nexport const PCDLoader = {\n name: 'PCD (Point Cloud Data)',\n id: 'pcd',\n module: 'pcd',\n version: VERSION,\n worker: true,\n extensions: ['pcd'],\n mimeTypes: ['text/plain'],\n options: {\n pcd: {}\n }\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["PCDLoader", "PCDLoader"]
|
|
7
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LoaderOptions, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
2
|
-
import { PCDLoader as PCDWorkerLoader } from
|
|
3
|
-
import { PCDMesh } from
|
|
2
|
+
import { PCDLoader as PCDWorkerLoader } from "./pcd-loader.js";
|
|
3
|
+
import { PCDMesh } from "./lib/pcd-types.js";
|
|
4
4
|
export { PCDWorkerLoader };
|
|
5
5
|
/**
|
|
6
6
|
* Loader for PCD - Point Cloud Data
|
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,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAC,SAAS,IAAI,eAAe,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EAAC,SAAS,IAAI,eAAe,EAAC,wBAAqB;AAC1D,OAAO,EAAC,OAAO,EAAC,2BAAwB;AAExC,OAAO,EAAC,eAAe,EAAC,CAAC;AAEzB;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,CAIrE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import parsePCDSync from "./lib/parse-pcd.js";
|
|
2
2
|
import { PCDLoader as PCDWorkerLoader } from "./pcd-loader.js";
|
|
3
3
|
export { PCDWorkerLoader };
|
|
4
|
+
/**
|
|
5
|
+
* Loader for PCD - Point Cloud Data
|
|
6
|
+
*/
|
|
4
7
|
export const PCDLoader = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
...PCDWorkerLoader,
|
|
9
|
+
parse: async (arrayBuffer) => parsePCDSync(arrayBuffer),
|
|
10
|
+
parseSync: parsePCDSync
|
|
8
11
|
};
|
|
9
|
-
//# sourceMappingURL=index.js.map
|