@loaders.gl/potree 3.3.0-alpha.4 → 3.3.0-alpha.6

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.
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var moduleExports = require('./index');
4
-
5
4
  globalThis.loaders = globalThis.loaders || {};
6
5
  module.exports = Object.assign(globalThis.loaders, moduleExports);
7
6
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
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 CHANGED
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "PotreeLoader", {
6
+ Object.defineProperty(exports, "PotreeBinLoader", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _potreeLoader.PotreeLoader;
9
+ return _potreeBinLoader.PotreeBinLoader;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "PotreeHierarchyChunkLoader", {
@@ -15,16 +15,13 @@ Object.defineProperty(exports, "PotreeHierarchyChunkLoader", {
15
15
  return _potreeHierarchyChunkLoader.PotreeHierarchyChunkLoader;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "PotreeBinLoader", {
18
+ Object.defineProperty(exports, "PotreeLoader", {
19
19
  enumerable: true,
20
20
  get: function get() {
21
- return _potreeBinLoader.PotreeBinLoader;
21
+ return _potreeLoader.PotreeLoader;
22
22
  }
23
23
  });
24
-
25
24
  var _potreeLoader = require("./potree-loader");
26
-
27
25
  var _potreeHierarchyChunkLoader = require("./potree-hierarchy-chunk-loader");
28
-
29
26
  var _potreeBinLoader = require("./potree-bin-loader");
30
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA","sourcesContent":["export {PotreeLoader} from './potree-loader';\nexport {PotreeHierarchyChunkLoader} from './potree-hierarchy-chunk-loader';\nexport {PotreeBinLoader} from './potree-bin-loader';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export {PotreeLoader} from './potree-loader';\nexport {PotreeHierarchyChunkLoader} from './potree-hierarchy-chunk-loader';\nexport {PotreeBinLoader} from './potree-bin-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA"}
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.PointCloudOctant = exports.PointCloudOctree = void 0;
9
-
7
+ exports.PointCloudOctree = exports.PointCloudOctant = void 0;
10
8
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var PointCloudOctree = function PointCloudOctree() {
10
+ var PointCloudOctree = (0, _createClass2.default)(function PointCloudOctree() {
15
11
  (0, _classCallCheck2.default)(this, PointCloudOctree);
16
12
  this.url = null;
17
13
  this.octreeDir = null;
@@ -22,10 +18,8 @@ var PointCloudOctree = function PointCloudOctree() {
22
18
  this.pointAttributes = null;
23
19
  this.hierarchyStepSize = -1;
24
20
  this.loader = null;
25
- };
26
-
21
+ });
27
22
  exports.PointCloudOctree = PointCloudOctree;
28
-
29
23
  var PointCloudOctant = function () {
30
24
  function PointCloudOctant(name, octree, boundingBox) {
31
25
  (0, _classCallCheck2.default)(this, PointCloudOctant);
@@ -42,7 +36,6 @@ var PointCloudOctant = function () {
42
36
  this.loaded = false;
43
37
  this.oneTimeDisposeHandlers = [];
44
38
  }
45
-
46
39
  (0, _createClass2.default)(PointCloudOctant, [{
47
40
  key: "isGeometryNode",
48
41
  value: function isGeometryNode() {
@@ -92,11 +85,9 @@ var PointCloudOctant = function () {
92
85
  var hierarchyStepSize = this.octree.hierarchyStepSize;
93
86
  var indices = this.name.substr(1);
94
87
  var numParts = Math.floor(indices.length / hierarchyStepSize);
95
-
96
88
  for (var i = 0; i < numParts; i++) {
97
89
  path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';
98
90
  }
99
-
100
91
  path = path.slice(0, -1);
101
92
  return path;
102
93
  }
@@ -112,10 +103,8 @@ var PointCloudOctant = function () {
112
103
  if (this.loading === true || this.loaded === true || Potree.numNodesLoading >= Potree.maxNodesLoading) {
113
104
  return;
114
105
  }
115
-
116
106
  this.loading = true;
117
107
  Potree.numNodesLoading++;
118
-
119
108
  if (this.octree.loader.version.equalOrHigher('1.5')) {
120
109
  if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {
121
110
  this.loadHierachyThenPoints();
@@ -149,11 +138,9 @@ var PointCloudOctant = function () {
149
138
  });
150
139
  var decoded = [];
151
140
  var offset = 5;
152
-
153
141
  while (stack.length > 0) {
154
142
  var snode = stack.shift();
155
143
  var mask = 1;
156
-
157
144
  for (var i = 0; i < 8; i++) {
158
145
  if ((snode.children & mask) !== 0) {
159
146
  var childName = snode.name + i;
@@ -171,10 +158,8 @@ var PointCloudOctant = function () {
171
158
  });
172
159
  offset += 5;
173
160
  }
174
-
175
161
  mask = mask * 2;
176
162
  }
177
-
178
163
  if (offset === hbuffer.byteLength) {
179
164
  break;
180
165
  }
@@ -183,7 +168,6 @@ var PointCloudOctant = function () {
183
168
  var nodes = {};
184
169
  nodes[node.name] = node;
185
170
  var pco = node.pcoGeometry;
186
-
187
171
  for (var _i = 0; _i < decoded.length; _i++) {
188
172
  var name = decoded[_i].name;
189
173
  var decodedNumPoints = decoded[_i].numPoints;
@@ -200,17 +184,14 @@ var PointCloudOctant = function () {
200
184
  parentNode.addChild(currentNode);
201
185
  nodes[name] = currentNode;
202
186
  }
203
-
204
187
  node.loadPoints();
205
188
  };
206
-
207
189
  if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {
208
190
  var hurl = node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';
209
191
  var xhr = XHRFactory.createXMLHttpRequest();
210
192
  xhr.open('GET', hurl, true);
211
193
  xhr.responseType = 'arraybuffer';
212
194
  xhr.overrideMimeType('text/plain; charset=x-user-defined');
213
-
214
195
  xhr.onreadystatechange = function () {
215
196
  if (xhr.readyState === 4) {
216
197
  if (xhr.status === 200 || xhr.status === 0) {
@@ -222,7 +203,6 @@ var PointCloudOctant = function () {
222
203
  }
223
204
  }
224
205
  };
225
-
226
206
  try {
227
207
  xhr.send(null);
228
208
  } catch (e) {
@@ -247,14 +227,12 @@ var PointCloudOctant = function () {
247
227
  var handler = this.oneTimeDisposeHandlers[i];
248
228
  handler();
249
229
  }
250
-
251
230
  this.oneTimeDisposeHandlers = [];
252
231
  }
253
232
  }
254
233
  }]);
255
234
  return PointCloudOctant;
256
235
  }();
257
-
258
236
  exports.PointCloudOctant = PointCloudOctant;
259
237
  PointCloudOctreeGeometryNode.IDCount = 0;
260
238
  //# sourceMappingURL=octree.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/octree.ts"],"names":["PointCloudOctree","url","octreeDir","spacing","boundingBox","root","nodes","pointAttributes","hierarchyStepSize","loader","PointCloudOctant","name","octree","id","PointCloudOctreeGeometryNode","IDCount","index","parseInt","charAt","length","geometry","boundingSphere","getBoundingSphere","THREE","Sphere","children","numPoints","level","loaded","oneTimeDisposeHandlers","filter","Boolean","version","hierarchyPath","getHierarchyPath","path","indices","substr","numParts","Math","floor","i","slice","child","parent","loading","Potree","numNodesLoading","maxNodesLoading","equalOrHigher","hasChildren","loadHierachyThenPoints","loadPoints","load","node","callback","hbuffer","view","DataView","stack","getUint8","getUint32","push","decoded","offset","snode","shift","mask","childName","childChildren","childNumPoints","byteLength","pco","pcoGeometry","decodedNumPoints","parentName","substring","parentNode","Utils","createChildAABB","currentNode","pow","addChild","hurl","xhr","XHRFactory","createXMLHttpRequest","open","responseType","overrideMimeType","onreadystatechange","readyState","status","response","console","log","send","e","dispose","handler"],"mappings":"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","sourcesContent":["/* eslint-disable */\n\n// @ts-nocheck\n\nexport class PointCloudOctree {\n constructor() {\n this.url = null;\n this.octreeDir = null;\n this.spacing = 0;\n this.boundingBox = null;\n this.root = null;\n this.nodes = null;\n this.pointAttributes = null;\n this.hierarchyStepSize = -1;\n this.loader = null;\n }\n}\n\nexport class PointCloudOctant {\n constructor(name, octree, boundingBox) {\n this.octree = this.id = PointCloudOctreeGeometryNode.IDCount++;\n this.name = name;\n this.index = parseInt(name.charAt(name.length - 1));\n this.octree = octree;\n this.geometry = null;\n this.boundingBox = boundingBox;\n this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere());\n this.children = {};\n this.numPoints = 0;\n this.level = null;\n this.loaded = false;\n this.oneTimeDisposeHandlers = [];\n }\n\n isGeometryNode() {\n return true;\n }\n\n getLevel() {\n return this.level;\n }\n\n isTreeNode() {\n return false;\n }\n\n isLoaded() {\n return this.loaded;\n }\n\n getBoundingSphere() {\n return this.boundingSphere;\n }\n\n getBoundingBox() {\n return this.boundingBox;\n }\n\n getChildren() {\n // Children is a length 8 array with nulls for \"missing\" octants\n return this.children.filter(Boolean);\n }\n\n getURL() {\n const {version} = this.octree;\n const hierarchyPath = version >= 1.5 ? `${this.getHierarchyPath()}/` : '';\n return `${this.octree.octreeDir}/${hierarchyPath}${this.name}`;\n }\n\n getHierarchyPath() {\n let path = 'r/';\n\n let hierarchyStepSize = this.octree.hierarchyStepSize;\n let indices = this.name.substr(1);\n\n let numParts = Math.floor(indices.length / hierarchyStepSize);\n for (let i = 0; i < numParts; i++) {\n path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';\n }\n\n path = path.slice(0, -1);\n\n return path;\n }\n\n addChild(child) {\n this.children[child.index] = child;\n child.parent = this;\n }\n\n load() {\n if (\n this.loading === true ||\n this.loaded === true ||\n Potree.numNodesLoading >= Potree.maxNodesLoading\n ) {\n return;\n }\n\n this.loading = true;\n\n Potree.numNodesLoading++;\n\n if (this.octree.loader.version.equalOrHigher('1.5')) {\n if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {\n this.loadHierachyThenPoints();\n } else {\n this.loadPoints();\n }\n } else {\n this.loadPoints();\n }\n }\n\n loadPoints() {\n this.octree.loader.load(this);\n }\n\n loadHierachyThenPoints() {\n let node = this;\n\n // load hierarchy\n let callback = function (node, hbuffer) {\n let view = new DataView(hbuffer);\n\n let stack = [];\n let children = view.getUint8(0);\n let numPoints = view.getUint32(1, true);\n node.numPoints = numPoints;\n stack.push({children: children, numPoints: numPoints, name: node.name});\n\n let decoded = [];\n\n let offset = 5;\n while (stack.length > 0) {\n let snode = stack.shift();\n let mask = 1;\n for (let i = 0; i < 8; i++) {\n if ((snode.children & mask) !== 0) {\n let childName = snode.name + i;\n\n let childChildren = view.getUint8(offset);\n let childNumPoints = view.getUint32(offset + 1, true);\n\n stack.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n decoded.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n offset += 5;\n }\n\n mask = mask * 2;\n }\n\n if (offset === hbuffer.byteLength) {\n break;\n }\n }\n\n // console.log(decoded);\n\n let nodes = {};\n nodes[node.name] = node;\n let pco = node.pcoGeometry;\n\n for (let i = 0; i < decoded.length; i++) {\n let name = decoded[i].name;\n let decodedNumPoints = decoded[i].numPoints;\n let index = parseInt(name.charAt(name.length - 1));\n let parentName = name.substring(0, name.length - 1);\n let parentNode = nodes[parentName];\n let level = name.length - 1;\n let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index);\n\n let currentNode = new PointCloudOctreeGeometryNode(name, pco, boundingBox);\n currentNode.level = level;\n currentNode.numPoints = decodedNumPoints;\n currentNode.hasChildren = decoded[i].children > 0;\n currentNode.spacing = pco.spacing / Math.pow(2, level);\n parentNode.addChild(currentNode);\n nodes[name] = currentNode;\n }\n\n node.loadPoints();\n };\n if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {\n // let hurl = node.pcoGeometry.octreeDir + \"/../hierarchy/\" + node.name + \".hrc\";\n let hurl =\n node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';\n\n let xhr = XHRFactory.createXMLHttpRequest();\n xhr.open('GET', hurl, true);\n xhr.responseType = 'arraybuffer';\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200 || xhr.status === 0) {\n let hbuffer = xhr.response;\n callback(node, hbuffer);\n } else {\n console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + hurl);\n Potree.numNodesLoading--;\n }\n }\n };\n try {\n xhr.send(null);\n } catch (e) {\n console.log('fehler beim laden der punktwolke: ' + e);\n }\n }\n }\n\n getNumPoints() {\n return this.numPoints;\n }\n\n dispose() {\n if (this.geometry && this.parent != null) {\n this.geometry.dispose();\n this.geometry = null;\n this.loaded = false;\n\n // this.dispatchEvent( { type: 'dispose' } );\n for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) {\n let handler = this.oneTimeDisposeHandlers[i];\n handler();\n }\n this.oneTimeDisposeHandlers = [];\n }\n }\n}\n\nPointCloudOctreeGeometryNode.IDCount = 0;\n"],"file":"octree.js"}
1
+ {"version":3,"file":"octree.js","names":["PointCloudOctree","url","octreeDir","spacing","boundingBox","root","nodes","pointAttributes","hierarchyStepSize","loader","PointCloudOctant","name","octree","id","PointCloudOctreeGeometryNode","IDCount","index","parseInt","charAt","length","geometry","boundingSphere","getBoundingSphere","THREE","Sphere","children","numPoints","level","loaded","oneTimeDisposeHandlers","filter","Boolean","version","hierarchyPath","getHierarchyPath","path","indices","substr","numParts","Math","floor","i","slice","child","parent","loading","Potree","numNodesLoading","maxNodesLoading","equalOrHigher","hasChildren","loadHierachyThenPoints","loadPoints","load","node","callback","hbuffer","view","DataView","stack","getUint8","getUint32","push","decoded","offset","snode","shift","mask","childName","childChildren","childNumPoints","byteLength","pco","pcoGeometry","decodedNumPoints","parentName","substring","parentNode","Utils","createChildAABB","currentNode","pow","addChild","hurl","xhr","XHRFactory","createXMLHttpRequest","open","responseType","overrideMimeType","onreadystatechange","readyState","status","response","console","log","send","e","dispose","handler"],"sources":["../../../src/lib/octree.ts"],"sourcesContent":["/* eslint-disable */\n\n// @ts-nocheck\n\nexport class PointCloudOctree {\n constructor() {\n this.url = null;\n this.octreeDir = null;\n this.spacing = 0;\n this.boundingBox = null;\n this.root = null;\n this.nodes = null;\n this.pointAttributes = null;\n this.hierarchyStepSize = -1;\n this.loader = null;\n }\n}\n\nexport class PointCloudOctant {\n constructor(name, octree, boundingBox) {\n this.octree = this.id = PointCloudOctreeGeometryNode.IDCount++;\n this.name = name;\n this.index = parseInt(name.charAt(name.length - 1));\n this.octree = octree;\n this.geometry = null;\n this.boundingBox = boundingBox;\n this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere());\n this.children = {};\n this.numPoints = 0;\n this.level = null;\n this.loaded = false;\n this.oneTimeDisposeHandlers = [];\n }\n\n isGeometryNode() {\n return true;\n }\n\n getLevel() {\n return this.level;\n }\n\n isTreeNode() {\n return false;\n }\n\n isLoaded() {\n return this.loaded;\n }\n\n getBoundingSphere() {\n return this.boundingSphere;\n }\n\n getBoundingBox() {\n return this.boundingBox;\n }\n\n getChildren() {\n // Children is a length 8 array with nulls for \"missing\" octants\n return this.children.filter(Boolean);\n }\n\n getURL() {\n const {version} = this.octree;\n const hierarchyPath = version >= 1.5 ? `${this.getHierarchyPath()}/` : '';\n return `${this.octree.octreeDir}/${hierarchyPath}${this.name}`;\n }\n\n getHierarchyPath() {\n let path = 'r/';\n\n let hierarchyStepSize = this.octree.hierarchyStepSize;\n let indices = this.name.substr(1);\n\n let numParts = Math.floor(indices.length / hierarchyStepSize);\n for (let i = 0; i < numParts; i++) {\n path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';\n }\n\n path = path.slice(0, -1);\n\n return path;\n }\n\n addChild(child) {\n this.children[child.index] = child;\n child.parent = this;\n }\n\n load() {\n if (\n this.loading === true ||\n this.loaded === true ||\n Potree.numNodesLoading >= Potree.maxNodesLoading\n ) {\n return;\n }\n\n this.loading = true;\n\n Potree.numNodesLoading++;\n\n if (this.octree.loader.version.equalOrHigher('1.5')) {\n if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {\n this.loadHierachyThenPoints();\n } else {\n this.loadPoints();\n }\n } else {\n this.loadPoints();\n }\n }\n\n loadPoints() {\n this.octree.loader.load(this);\n }\n\n loadHierachyThenPoints() {\n let node = this;\n\n // load hierarchy\n let callback = function (node, hbuffer) {\n let view = new DataView(hbuffer);\n\n let stack = [];\n let children = view.getUint8(0);\n let numPoints = view.getUint32(1, true);\n node.numPoints = numPoints;\n stack.push({children: children, numPoints: numPoints, name: node.name});\n\n let decoded = [];\n\n let offset = 5;\n while (stack.length > 0) {\n let snode = stack.shift();\n let mask = 1;\n for (let i = 0; i < 8; i++) {\n if ((snode.children & mask) !== 0) {\n let childName = snode.name + i;\n\n let childChildren = view.getUint8(offset);\n let childNumPoints = view.getUint32(offset + 1, true);\n\n stack.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n decoded.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n offset += 5;\n }\n\n mask = mask * 2;\n }\n\n if (offset === hbuffer.byteLength) {\n break;\n }\n }\n\n // console.log(decoded);\n\n let nodes = {};\n nodes[node.name] = node;\n let pco = node.pcoGeometry;\n\n for (let i = 0; i < decoded.length; i++) {\n let name = decoded[i].name;\n let decodedNumPoints = decoded[i].numPoints;\n let index = parseInt(name.charAt(name.length - 1));\n let parentName = name.substring(0, name.length - 1);\n let parentNode = nodes[parentName];\n let level = name.length - 1;\n let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index);\n\n let currentNode = new PointCloudOctreeGeometryNode(name, pco, boundingBox);\n currentNode.level = level;\n currentNode.numPoints = decodedNumPoints;\n currentNode.hasChildren = decoded[i].children > 0;\n currentNode.spacing = pco.spacing / Math.pow(2, level);\n parentNode.addChild(currentNode);\n nodes[name] = currentNode;\n }\n\n node.loadPoints();\n };\n if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {\n // let hurl = node.pcoGeometry.octreeDir + \"/../hierarchy/\" + node.name + \".hrc\";\n let hurl =\n node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';\n\n let xhr = XHRFactory.createXMLHttpRequest();\n xhr.open('GET', hurl, true);\n xhr.responseType = 'arraybuffer';\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200 || xhr.status === 0) {\n let hbuffer = xhr.response;\n callback(node, hbuffer);\n } else {\n console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + hurl);\n Potree.numNodesLoading--;\n }\n }\n };\n try {\n xhr.send(null);\n } catch (e) {\n console.log('fehler beim laden der punktwolke: ' + e);\n }\n }\n }\n\n getNumPoints() {\n return this.numPoints;\n }\n\n dispose() {\n if (this.geometry && this.parent != null) {\n this.geometry.dispose();\n this.geometry = null;\n this.loaded = false;\n\n // this.dispatchEvent( { type: 'dispose' } );\n for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) {\n let handler = this.oneTimeDisposeHandlers[i];\n handler();\n }\n this.oneTimeDisposeHandlers = [];\n }\n }\n}\n\nPointCloudOctreeGeometryNode.IDCount = 0;\n"],"mappings":"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"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = parsePotreeBin;
7
-
8
7
  function parsePotreeBin(arrayBuffer, byteOffset, options, index) {
9
8
  return null;
10
9
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/parsers/parse-potree-bin.ts"],"names":["parsePotreeBin","arrayBuffer","byteOffset","options","index"],"mappings":";;;;;;;AAAe,SAASA,cAAT,CACbC,WADa,EAEbC,UAFa,EAGbC,OAHa,EAIbC,KAJa,EAKb;AACA,SAAO,IAAP;AACD","sourcesContent":["export default function parsePotreeBin(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: unknown,\n index: any\n) {\n return null;\n}\n"],"file":"parse-potree-bin.js"}
1
+ {"version":3,"file":"parse-potree-bin.js","names":["parsePotreeBin","arrayBuffer","byteOffset","options","index"],"sources":["../../../src/parsers/parse-potree-bin.ts"],"sourcesContent":["export default function parsePotreeBin(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: unknown,\n index: any\n) {\n return null;\n}\n"],"mappings":";;;;;;AAAe,SAASA,cAAc,CACpCC,WAAwB,EACxBC,UAAkB,EAClBC,OAAgB,EAChBC,KAAU,EACV;EACA,OAAO,IAAI;AACb"}
@@ -1,23 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = parsePotreeHierarchyChunk;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
13
-
14
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
-
16
11
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
12
+ 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; }
13
+ 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
14
 
22
15
  function parsePotreeHierarchyChunk(arrayBuffer) {
23
16
  var tileHeaders = parseBinaryChunk(arrayBuffer);
@@ -28,15 +21,14 @@ function parseBinaryChunk(arrayBuffer) {
28
21
  var byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
29
22
  var dataView = new DataView(arrayBuffer);
30
23
  var stack = [];
24
+
31
25
  var topTileHeader = {};
32
26
  byteOffset = decodeRow(dataView, byteOffset, topTileHeader);
33
27
  stack.push(topTileHeader);
34
28
  var tileHeaders = [];
35
-
36
29
  while (stack.length > 0) {
37
30
  var snode = stack.shift();
38
31
  var mask = 1;
39
-
40
32
  for (var i = 0; i < 8; i++) {
41
33
  if (snode && (snode.header.childMask & mask) !== 0) {
42
34
  var tileHeader = {};
@@ -46,18 +38,14 @@ function parseBinaryChunk(arrayBuffer) {
46
38
  tileHeaders.push(tileHeader);
47
39
  snode.header.childCount++;
48
40
  }
49
-
50
41
  mask = mask * 2;
51
42
  }
52
-
53
43
  if (byteOffset === dataView.byteLength) {
54
44
  break;
55
45
  }
56
46
  }
57
-
58
47
  return tileHeaders;
59
48
  }
60
-
61
49
  function decodeRow(dataView, byteOffset, tileHeader) {
62
50
  tileHeader.header = tileHeader.header || {};
63
51
  tileHeader.header.childMask = dataView.getUint8(byteOffset);
@@ -76,10 +64,8 @@ function buildHierarchy(tileHeaders) {
76
64
  options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);
77
65
  var topNode = tileHeaders[0];
78
66
  var nodes = {};
79
-
80
67
  var _iterator = _createForOfIteratorHelper(tileHeaders),
81
- _step;
82
-
68
+ _step;
83
69
  try {
84
70
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
85
71
  var tileHeader = _step.value;
@@ -88,6 +74,7 @@ function buildHierarchy(tileHeaders) {
88
74
  var parentName = name.substring(0, name.length - 1);
89
75
  var parentNode = nodes[parentName];
90
76
  var level = name.length - 1;
77
+
91
78
  tileHeader.level = level;
92
79
  tileHeader.hasChildren = tileHeader.header.childCount;
93
80
  tileHeader.children = [];
@@ -101,12 +88,12 @@ function buildHierarchy(tileHeaders) {
101
88
 
102
89
  nodes[name] = tileHeader;
103
90
  }
91
+
104
92
  } catch (err) {
105
93
  _iterator.e(err);
106
94
  } finally {
107
95
  _iterator.f();
108
96
  }
109
-
110
97
  return topNode;
111
98
  }
112
99
  //# sourceMappingURL=parse-potree-hierarchy-chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/parsers/parse-potree-hierarchy-chunk.ts"],"names":["parsePotreeHierarchyChunk","arrayBuffer","tileHeaders","parseBinaryChunk","buildHierarchy","byteOffset","dataView","DataView","stack","topTileHeader","decodeRow","push","length","snode","shift","mask","i","header","childMask","tileHeader","name","childCount","byteLength","getUint8","pointCount","getUint32","options","DEFAULT_OPTIONS","spacing","topNode","nodes","index","parseInt","charAt","parentName","substring","parentNode","level","hasChildren","children","childrenByIndex","Array","fill","Math","pow"],"mappings":"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","sourcesContent":["// This file is derived from the Cesium code base under BSD 2-clause license\n// See LICENSE.md and https://github.com/potree/potree/blob/develop/LICENSE\n\n// Potree Hierarchy Chunk file format\n// https://github.com/potree/potree/blob/develop/docs/potree-file-format.md#index-files\n\n/*\n### Hierarchy Chunk Files\n\nAs mentioned in the former section, the `.hrc` files contain the index structure\nmeaning a list of all the files stored within the directory tree.\n\nAn index file contains a list of tuple values with the first being a `uint8`\n\"mask\" and the second being `uint32` \"number of points\" of a hierarchy level\nin a [breadth first level order][breadth-first].\n\nPer hierarchy level we have 8 possible nodes. To indicate whether a node exists\na simple binary mask is used:\n\n| Position | Mask | [Binary][bin] |\n|----------|------|---------------|\n| 0 | 1 | 0b00000001 |\n| 1 | 2 | 0b00000010 |\n| 2 | 4 | 0b00000100 |\n| 3 | 8 | 0b00001000 |\n| 4 | 16 | 0b00010000 |\n| 5 | 32 | 0b00100000 |\n| 6 | 64 | 0b01000000 |\n| 7 | 128 | 0b10000000 |\n\nSo if in a hierarchy the child node 3 and node 7 exist then the hierarchies\nmask has to be `0b00001000 | 0b10000000` → `0b10001000` (=136).\n\n_Example:_ A simple, non-realistic tree:\n\n```\n|- r1\n| |\n| \\- r14 (2 Points)\n|\n\\- r3\n |\n \\- r36 (1 Point)\n```\n\nWould have an index looking like this:\n\n| name | mask | points |\n|------|--------------------|--------|\n| r | `0b00001010` (=10) | `3` |\n| r1 | `0b00010000` (=16) | `2` |\n| r3 | `0b01000000` (=64) | `1` |\n| r14 | `0b00000000` (=0) | `2` |\n| r36 | `0b00000000` (=0) | `1` |\n*/\n\n// @ts-nocheck\n\n// load hierarchy\nexport default function parsePotreeHierarchyChunk(arrayBuffer: ArrayBuffer) {\n const tileHeaders = parseBinaryChunk(arrayBuffer);\n return buildHierarchy(tileHeaders);\n}\n\n// Parses the binary rows\nfunction parseBinaryChunk(arrayBuffer: ArrayBuffer, byteOffset = 0) {\n const dataView = new DataView(arrayBuffer);\n\n const stack = [];\n\n // Get root mask\n const topTileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, topTileHeader);\n\n stack.push(topTileHeader);\n\n const tileHeaders = [];\n\n while (stack.length > 0) {\n const snode = stack.shift();\n let mask = 1;\n\n for (let i = 0; i < 8; i++) {\n if (snode && (snode.header.childMask & mask) !== 0) {\n const tileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, tileHeader);\n tileHeader.name = snode.name + i;\n\n stack.push(tileHeader);\n tileHeaders.push(tileHeader);\n snode.header.childCount++;\n }\n mask = mask * 2;\n }\n\n if (byteOffset === dataView.byteLength) {\n break;\n }\n }\n\n return tileHeaders;\n}\n\nfunction decodeRow(dataView, byteOffset, tileHeader) {\n tileHeader.header = tileHeader.header || {};\n tileHeader.header.childMask = dataView.getUint8(byteOffset);\n tileHeader.header.childCount = 0;\n tileHeader.pointCount = dataView.getUint32(byteOffset + 1, true);\n tileHeader.name = '';\n byteOffset += 5;\n return byteOffset;\n}\n\n// Resolves the binary rows into a hierarchy (tree structure)\nfunction buildHierarchy(tileHeaders, options = {}) {\n const DEFAULT_OPTIONS = {spacing: 100}; // TODO assert instead of default?\n options = {...DEFAULT_OPTIONS, ...options};\n\n const topNode = tileHeaders[0];\n const nodes = {};\n\n for (const tileHeader of tileHeaders) {\n const {name} = tileHeader;\n\n const index = parseInt(name.charAt(name.length - 1), 10);\n const parentName = name.substring(0, name.length - 1);\n const parentNode = nodes[parentName];\n const level = name.length - 1;\n // assert(parentNode && level >= 0);\n\n tileHeader.level = level;\n tileHeader.hasChildren = tileHeader.header.childCount;\n tileHeader.children = [];\n tileHeader.childrenByIndex = new Array(8).fill(null);\n tileHeader.spacing = options.spacing / Math.pow(2, level);\n // tileHeader.boundingVolume = Utils.createChildAABB(parentNode.boundingBox, index);\n\n if (parentNode) {\n parentNode.children.push(tileHeader);\n parentNode.childrenByIndex[index] = tileHeader;\n }\n\n // Add the node to the map\n nodes[name] = tileHeader;\n }\n\n // First node is the root\n return topNode;\n}\n"],"file":"parse-potree-hierarchy-chunk.js"}
1
+ {"version":3,"file":"parse-potree-hierarchy-chunk.js","names":["parsePotreeHierarchyChunk","arrayBuffer","tileHeaders","parseBinaryChunk","buildHierarchy","byteOffset","dataView","DataView","stack","topTileHeader","decodeRow","push","length","snode","shift","mask","i","header","childMask","tileHeader","name","childCount","byteLength","getUint8","pointCount","getUint32","options","DEFAULT_OPTIONS","spacing","topNode","nodes","index","parseInt","charAt","parentName","substring","parentNode","level","hasChildren","children","childrenByIndex","Array","fill","Math","pow"],"sources":["../../../src/parsers/parse-potree-hierarchy-chunk.ts"],"sourcesContent":["// This file is derived from the Cesium code base under BSD 2-clause license\n// See LICENSE.md and https://github.com/potree/potree/blob/develop/LICENSE\n\n// Potree Hierarchy Chunk file format\n// https://github.com/potree/potree/blob/develop/docs/potree-file-format.md#index-files\n\n/*\n### Hierarchy Chunk Files\n\nAs mentioned in the former section, the `.hrc` files contain the index structure\nmeaning a list of all the files stored within the directory tree.\n\nAn index file contains a list of tuple values with the first being a `uint8`\n\"mask\" and the second being `uint32` \"number of points\" of a hierarchy level\nin a [breadth first level order][breadth-first].\n\nPer hierarchy level we have 8 possible nodes. To indicate whether a node exists\na simple binary mask is used:\n\n| Position | Mask | [Binary][bin] |\n|----------|------|---------------|\n| 0 | 1 | 0b00000001 |\n| 1 | 2 | 0b00000010 |\n| 2 | 4 | 0b00000100 |\n| 3 | 8 | 0b00001000 |\n| 4 | 16 | 0b00010000 |\n| 5 | 32 | 0b00100000 |\n| 6 | 64 | 0b01000000 |\n| 7 | 128 | 0b10000000 |\n\nSo if in a hierarchy the child node 3 and node 7 exist then the hierarchies\nmask has to be `0b00001000 | 0b10000000` → `0b10001000` (=136).\n\n_Example:_ A simple, non-realistic tree:\n\n```\n|- r1\n| |\n| \\- r14 (2 Points)\n|\n\\- r3\n |\n \\- r36 (1 Point)\n```\n\nWould have an index looking like this:\n\n| name | mask | points |\n|------|--------------------|--------|\n| r | `0b00001010` (=10) | `3` |\n| r1 | `0b00010000` (=16) | `2` |\n| r3 | `0b01000000` (=64) | `1` |\n| r14 | `0b00000000` (=0) | `2` |\n| r36 | `0b00000000` (=0) | `1` |\n*/\n\n// @ts-nocheck\n\n// load hierarchy\nexport default function parsePotreeHierarchyChunk(arrayBuffer: ArrayBuffer) {\n const tileHeaders = parseBinaryChunk(arrayBuffer);\n return buildHierarchy(tileHeaders);\n}\n\n// Parses the binary rows\nfunction parseBinaryChunk(arrayBuffer: ArrayBuffer, byteOffset = 0) {\n const dataView = new DataView(arrayBuffer);\n\n const stack = [];\n\n // Get root mask\n const topTileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, topTileHeader);\n\n stack.push(topTileHeader);\n\n const tileHeaders = [];\n\n while (stack.length > 0) {\n const snode = stack.shift();\n let mask = 1;\n\n for (let i = 0; i < 8; i++) {\n if (snode && (snode.header.childMask & mask) !== 0) {\n const tileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, tileHeader);\n tileHeader.name = snode.name + i;\n\n stack.push(tileHeader);\n tileHeaders.push(tileHeader);\n snode.header.childCount++;\n }\n mask = mask * 2;\n }\n\n if (byteOffset === dataView.byteLength) {\n break;\n }\n }\n\n return tileHeaders;\n}\n\nfunction decodeRow(dataView, byteOffset, tileHeader) {\n tileHeader.header = tileHeader.header || {};\n tileHeader.header.childMask = dataView.getUint8(byteOffset);\n tileHeader.header.childCount = 0;\n tileHeader.pointCount = dataView.getUint32(byteOffset + 1, true);\n tileHeader.name = '';\n byteOffset += 5;\n return byteOffset;\n}\n\n// Resolves the binary rows into a hierarchy (tree structure)\nfunction buildHierarchy(tileHeaders, options = {}) {\n const DEFAULT_OPTIONS = {spacing: 100}; // TODO assert instead of default?\n options = {...DEFAULT_OPTIONS, ...options};\n\n const topNode = tileHeaders[0];\n const nodes = {};\n\n for (const tileHeader of tileHeaders) {\n const {name} = tileHeader;\n\n const index = parseInt(name.charAt(name.length - 1), 10);\n const parentName = name.substring(0, name.length - 1);\n const parentNode = nodes[parentName];\n const level = name.length - 1;\n // assert(parentNode && level >= 0);\n\n tileHeader.level = level;\n tileHeader.hasChildren = tileHeader.header.childCount;\n tileHeader.children = [];\n tileHeader.childrenByIndex = new Array(8).fill(null);\n tileHeader.spacing = options.spacing / Math.pow(2, level);\n // tileHeader.boundingVolume = Utils.createChildAABB(parentNode.boundingBox, index);\n\n if (parentNode) {\n parentNode.children.push(tileHeader);\n parentNode.childrenByIndex[index] = tileHeader;\n }\n\n // Add the node to the map\n nodes[name] = tileHeader;\n }\n\n // First node is the root\n return topNode;\n}\n"],"mappings":"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"}
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.PotreeBinLoader = void 0;
9
-
10
8
  var _parsePotreeBin = _interopRequireDefault(require("./parsers/parse-potree-bin"));
11
-
12
9
  var PotreeBinLoader = {
13
10
  name: 'potree Binary Point Attributes',
14
11
  id: 'potree',
@@ -18,7 +15,6 @@ var PotreeBinLoader = {
18
15
  binary: true
19
16
  };
20
17
  exports.PotreeBinLoader = PotreeBinLoader;
21
-
22
18
  function parseSync(arrayBuffer, options) {
23
19
  var index = {};
24
20
  var byteOffset = 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/potree-bin-loader.ts"],"names":["PotreeBinLoader","name","id","extensions","mimeTypes","parseSync","binary","arrayBuffer","options","index","byteOffset"],"mappings":";;;;;;;;;AACA;;AAMO,IAAMA,eAAiC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,gCADyC;AAE/CC,EAAAA,EAAE,EAAE,QAF2C;AAG/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAHmC;AAI/CC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAJoC;AAO/CC,EAAAA,SAAS,EAATA,SAP+C;AAQ/CC,EAAAA,MAAM,EAAE;AARuC,CAA1C;;;AAWP,SAASD,SAAT,CAAmBE,WAAnB,EAA6CC,OAA7C,EAAsE;AACpE,MAAMC,KAAK,GAAG,EAAd;AACA,MAAMC,UAAU,GAAG,CAAnB;AACA,+BAAeH,WAAf,EAA4BG,UAA5B,EAAwCF,OAAxC,EAAiDC,KAAjD;AACA,SAAOA,KAAP;AACD","sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeBin} from './parsers/parse-potree-bin';\n\n/**\n * Loader for potree Binary Point Attributes\n * */\n// @ts-ignore\nexport const PotreeBinLoader: LoaderWithParser = {\n name: 'potree Binary Point Attributes',\n id: 'potree',\n extensions: ['bin'],\n mimeTypes: ['application/octet-stream'],\n // Unfortunately binary potree files have no header bytes, no test possible\n // test: ['...'],\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: LoaderOptions) {\n const index = {};\n const byteOffset = 0;\n parsePotreeBin(arrayBuffer, byteOffset, options, index);\n return index;\n}\n"],"file":"potree-bin-loader.js"}
1
+ {"version":3,"file":"potree-bin-loader.js","names":["PotreeBinLoader","name","id","extensions","mimeTypes","parseSync","binary","arrayBuffer","options","index","byteOffset","parsePotreeBin"],"sources":["../../src/potree-bin-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeBin} from './parsers/parse-potree-bin';\n\n/**\n * Loader for potree Binary Point Attributes\n * */\n// @ts-ignore\nexport const PotreeBinLoader: LoaderWithParser = {\n name: 'potree Binary Point Attributes',\n id: 'potree',\n extensions: ['bin'],\n mimeTypes: ['application/octet-stream'],\n // Unfortunately binary potree files have no header bytes, no test possible\n // test: ['...'],\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: LoaderOptions) {\n const index = {};\n const byteOffset = 0;\n parsePotreeBin(arrayBuffer, byteOffset, options, index);\n return index;\n}\n"],"mappings":";;;;;;;AACA;AAMO,IAAMA,eAAiC,GAAG;EAC/CC,IAAI,EAAE,gCAAgC;EACtCC,EAAE,EAAE,QAAQ;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EAGvCC,SAAS,EAATA,SAAS;EACTC,MAAM,EAAE;AACV,CAAC;AAAC;AAEF,SAASD,SAAS,CAACE,WAAwB,EAAEC,OAAuB,EAAE;EACpE,IAAMC,KAAK,GAAG,CAAC,CAAC;EAChB,IAAMC,UAAU,GAAG,CAAC;EACpB,IAAAC,uBAAc,EAACJ,WAAW,EAAEG,UAAU,EAAEF,OAAO,EAAEC,KAAK,CAAC;EACvD,OAAOA,KAAK;AACd"}
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.PotreeHierarchyChunkLoader = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _parsePotreeHierarchyChunk = _interopRequireDefault(require("./parsers/parse-potree-hierarchy-chunk"));
15
-
16
11
  var PotreeHierarchyChunkLoader = {
17
12
  id: 'potree',
18
13
  name: 'potree Hierarchy Chunk',
@@ -26,10 +21,8 @@ var PotreeHierarchyChunkLoader = {
26
21
  case 0:
27
22
  _context.next = 2;
28
23
  return parseSync(arrayBuffer);
29
-
30
24
  case 2:
31
25
  return _context.abrupt("return", _context.sent);
32
-
33
26
  case 3:
34
27
  case "end":
35
28
  return _context.stop();
@@ -37,18 +30,15 @@ var PotreeHierarchyChunkLoader = {
37
30
  }
38
31
  }, _callee);
39
32
  }));
40
-
41
33
  function parse(_x, _x2) {
42
34
  return _parse.apply(this, arguments);
43
35
  }
44
-
45
36
  return parse;
46
37
  }(),
47
38
  parseSync: parseSync,
48
39
  binary: true
49
40
  };
50
41
  exports.PotreeHierarchyChunkLoader = PotreeHierarchyChunkLoader;
51
-
52
42
  function parseSync(arrayBuffer) {
53
43
  return (0, _parsePotreeHierarchyChunk.default)(arrayBuffer);
54
44
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/potree-hierarchy-chunk-loader.ts"],"names":["PotreeHierarchyChunkLoader","id","name","extensions","mimeTypes","parse","arrayBuffer","options","parseSync","binary"],"mappings":";;;;;;;;;;;;;AACA;;AAIO,IAAMA,0BAA4C,GAAG;AAC1DC,EAAAA,EAAE,EAAE,QADsD;AAE1DC,EAAAA,IAAI,EAAE,wBAFoD;AAG1DC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAH8C;AAI1DC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAJ+C;AAO1DC,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBC,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsCC,SAAS,CAACF,WAAD,CAA/C;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAPqD;AAQ1DE,EAAAA,SAAS,EAATA,SAR0D;AAS1DC,EAAAA,MAAM,EAAE;AATkD,CAArD;;;AAYP,SAASD,SAAT,CAAmBF,WAAnB,EAAgC;AAC9B,SAAO,wCAA0BA,WAA1B,CAAP;AACD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeHierarchyChunk} from './parsers/parse-potree-hierarchy-chunk';\n\n/** Potree hierarchy chunk loader */\n// @ts-ignore\nexport const PotreeHierarchyChunkLoader: LoaderWithParser = {\n id: 'potree',\n name: 'potree Hierarchy Chunk',\n extensions: ['hrc'],\n mimeTypes: ['application/octet-stream'],\n // binary potree files have no header bytes, no content test function possible\n // test: ['...'],\n parse: async (arrayBuffer, options) => await parseSync(arrayBuffer),\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer) {\n return parsePotreeHierarchyChunk(arrayBuffer);\n}\n"],"file":"potree-hierarchy-chunk-loader.js"}
1
+ {"version":3,"file":"potree-hierarchy-chunk-loader.js","names":["PotreeHierarchyChunkLoader","id","name","extensions","mimeTypes","parse","arrayBuffer","options","parseSync","binary","parsePotreeHierarchyChunk"],"sources":["../../src/potree-hierarchy-chunk-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeHierarchyChunk} from './parsers/parse-potree-hierarchy-chunk';\n\n/** Potree hierarchy chunk loader */\n// @ts-ignore\nexport const PotreeHierarchyChunkLoader: LoaderWithParser = {\n id: 'potree',\n name: 'potree Hierarchy Chunk',\n extensions: ['hrc'],\n mimeTypes: ['application/octet-stream'],\n // binary potree files have no header bytes, no content test function possible\n // test: ['...'],\n parse: async (arrayBuffer, options) => await parseSync(arrayBuffer),\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer) {\n return parsePotreeHierarchyChunk(arrayBuffer);\n}\n"],"mappings":";;;;;;;;;AACA;AAIO,IAAMA,0BAA4C,GAAG;EAC1DC,EAAE,EAAE,QAAQ;EACZC,IAAI,EAAE,wBAAwB;EAC9BC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EAGvCC,KAAK;IAAA,uEAAE,iBAAOC,WAAW,EAAEC,OAAO;MAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAAWC,SAAS,CAACF,WAAW,CAAC;YAAA;cAAA;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;IAAA;MAAA;IAAA;IAAA;EAAA;EACnEE,SAAS,EAATA,SAAS;EACTC,MAAM,EAAE;AACV,CAAC;AAAC;AAEF,SAASD,SAAS,CAACF,WAAW,EAAE;EAC9B,OAAO,IAAAI,kCAAyB,EAACJ,WAAW,CAAC;AAC/C"}
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PotreeLoader = void 0;
7
- var VERSION = typeof "3.3.0-alpha.4" !== 'undefined' ? "3.3.0-alpha.4" : 'latest';
7
+ var VERSION = typeof "3.3.0-alpha.6" !== 'undefined' ? "3.3.0-alpha.6" : 'latest';
8
+
8
9
  var PotreeLoader = {
9
10
  name: 'potree',
10
11
  id: 'potree',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/potree-loader.ts"],"names":["VERSION","PotreeLoader","name","id","module","version","extensions","mimeTypes","testText","text","indexOf","parseTextSync","JSON","parse","options","potree"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAIO,IAAMC,YAA8B,GAAG;AAC5CC,EAAAA,IAAI,EAAE,QADsC;AAE5CC,EAAAA,EAAE,EAAE,QAFwC;AAG5CC,EAAAA,MAAM,EAAE,QAHoC;AAI5CC,EAAAA,OAAO,EAAEL,OAJmC;AAK5CM,EAAAA,UAAU,EAAE,CAAC,MAAD,CALgC;AAM5CC,EAAAA,SAAS,EAAE,CAAC,kBAAD,CANiC;AAO5CC,EAAAA,QAAQ,EAAE,kBAACC,IAAD;AAAA,WAAUA,IAAI,CAACC,OAAL,CAAa,WAAb,KAA6B,CAAvC;AAAA,GAPkC;AAQ5CC,EAAAA,aAAa,EAAE,uBAACF,IAAD;AAAA,WAAUG,IAAI,CAACC,KAAL,CAAWJ,IAAX,CAAV;AAAA,GAR6B;AAS5CK,EAAAA,OAAO,EAAE;AACPC,IAAAA,MAAM,EAAE;AADD;AATmC,CAAvC","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\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\n/** Potree loader */\n// @ts-ignore\nexport const PotreeLoader: LoaderWithParser = {\n name: 'potree',\n id: 'potree',\n module: 'potree',\n version: VERSION,\n extensions: ['json'],\n mimeTypes: ['application/json'],\n testText: (text) => text.indexOf('octreeDir') >= 0,\n parseTextSync: (text) => JSON.parse(text),\n options: {\n potree: {}\n }\n};\n"],"file":"potree-loader.js"}
1
+ {"version":3,"file":"potree-loader.js","names":["VERSION","PotreeLoader","name","id","module","version","extensions","mimeTypes","testText","text","indexOf","parseTextSync","JSON","parse","options","potree"],"sources":["../../src/potree-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\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\n/** Potree loader */\n// @ts-ignore\nexport const PotreeLoader: LoaderWithParser = {\n name: 'potree',\n id: 'potree',\n module: 'potree',\n version: VERSION,\n extensions: ['json'],\n mimeTypes: ['application/json'],\n testText: (text) => text.indexOf('octreeDir') >= 0,\n parseTextSync: (text) => JSON.parse(text),\n options: {\n potree: {}\n }\n};\n"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;;AAIpE,IAAMC,YAA8B,GAAG;EAC5CC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAE,kBAACC,IAAI;IAAA,OAAKA,IAAI,CAACC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;EAAA;EAClDC,aAAa,EAAE,uBAACF,IAAI;IAAA,OAAKG,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC;EAAA;EACzCK,OAAO,EAAE;IACPC,MAAM,EAAE,CAAC;EACX;AACF,CAAC;AAAC"}
@@ -1,5 +1,5 @@
1
- const moduleExports = require('./index');
2
1
 
2
+ const moduleExports = require('./index');
3
3
  globalThis.loaders = globalThis.loaders || {};
4
4
  module.exports = Object.assign(globalThis.loaders, moduleExports);
5
5
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
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,MAAMA,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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["PotreeLoader","PotreeHierarchyChunkLoader","PotreeBinLoader"],"mappings":"AAAA,SAAQA,YAAR,QAA2B,iBAA3B;AACA,SAAQC,0BAAR,QAAyC,iCAAzC;AACA,SAAQC,eAAR,QAA8B,qBAA9B","sourcesContent":["export {PotreeLoader} from './potree-loader';\nexport {PotreeHierarchyChunkLoader} from './potree-hierarchy-chunk-loader';\nexport {PotreeBinLoader} from './potree-bin-loader';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["PotreeLoader","PotreeHierarchyChunkLoader","PotreeBinLoader"],"sources":["../../src/index.ts"],"sourcesContent":["export {PotreeLoader} from './potree-loader';\nexport {PotreeHierarchyChunkLoader} from './potree-hierarchy-chunk-loader';\nexport {PotreeBinLoader} from './potree-bin-loader';\n"],"mappings":"AAAA,SAAQA,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,0BAA0B,QAAO,iCAAiC;AAC1E,SAAQC,eAAe,QAAO,qBAAqB"}
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  export class PointCloudOctree {
2
4
  constructor() {
3
5
  this.url = null;
@@ -10,7 +12,6 @@ export class PointCloudOctree {
10
12
  this.hierarchyStepSize = -1;
11
13
  this.loader = null;
12
14
  }
13
-
14
15
  }
15
16
  export class PointCloudOctant {
16
17
  constructor(name, octree, boundingBox) {
@@ -27,35 +28,27 @@ export class PointCloudOctant {
27
28
  this.loaded = false;
28
29
  this.oneTimeDisposeHandlers = [];
29
30
  }
30
-
31
31
  isGeometryNode() {
32
32
  return true;
33
33
  }
34
-
35
34
  getLevel() {
36
35
  return this.level;
37
36
  }
38
-
39
37
  isTreeNode() {
40
38
  return false;
41
39
  }
42
-
43
40
  isLoaded() {
44
41
  return this.loaded;
45
42
  }
46
-
47
43
  getBoundingSphere() {
48
44
  return this.boundingSphere;
49
45
  }
50
-
51
46
  getBoundingBox() {
52
47
  return this.boundingBox;
53
48
  }
54
-
55
49
  getChildren() {
56
50
  return this.children.filter(Boolean);
57
51
  }
58
-
59
52
  getURL() {
60
53
  const {
61
54
  version
@@ -63,34 +56,27 @@ export class PointCloudOctant {
63
56
  const hierarchyPath = version >= 1.5 ? "".concat(this.getHierarchyPath(), "/") : '';
64
57
  return "".concat(this.octree.octreeDir, "/").concat(hierarchyPath).concat(this.name);
65
58
  }
66
-
67
59
  getHierarchyPath() {
68
60
  let path = 'r/';
69
61
  let hierarchyStepSize = this.octree.hierarchyStepSize;
70
62
  let indices = this.name.substr(1);
71
63
  let numParts = Math.floor(indices.length / hierarchyStepSize);
72
-
73
64
  for (let i = 0; i < numParts; i++) {
74
65
  path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';
75
66
  }
76
-
77
67
  path = path.slice(0, -1);
78
68
  return path;
79
69
  }
80
-
81
70
  addChild(child) {
82
71
  this.children[child.index] = child;
83
72
  child.parent = this;
84
73
  }
85
-
86
74
  load() {
87
75
  if (this.loading === true || this.loaded === true || Potree.numNodesLoading >= Potree.maxNodesLoading) {
88
76
  return;
89
77
  }
90
-
91
78
  this.loading = true;
92
79
  Potree.numNodesLoading++;
93
-
94
80
  if (this.octree.loader.version.equalOrHigher('1.5')) {
95
81
  if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {
96
82
  this.loadHierachyThenPoints();
@@ -101,11 +87,9 @@ export class PointCloudOctant {
101
87
  this.loadPoints();
102
88
  }
103
89
  }
104
-
105
90
  loadPoints() {
106
91
  this.octree.loader.load(this);
107
92
  }
108
-
109
93
  loadHierachyThenPoints() {
110
94
  let node = this;
111
95
 
@@ -122,11 +106,9 @@ export class PointCloudOctant {
122
106
  });
123
107
  let decoded = [];
124
108
  let offset = 5;
125
-
126
109
  while (stack.length > 0) {
127
110
  let snode = stack.shift();
128
111
  let mask = 1;
129
-
130
112
  for (let i = 0; i < 8; i++) {
131
113
  if ((snode.children & mask) !== 0) {
132
114
  let childName = snode.name + i;
@@ -144,10 +126,8 @@ export class PointCloudOctant {
144
126
  });
145
127
  offset += 5;
146
128
  }
147
-
148
129
  mask = mask * 2;
149
130
  }
150
-
151
131
  if (offset === hbuffer.byteLength) {
152
132
  break;
153
133
  }
@@ -156,7 +136,6 @@ export class PointCloudOctant {
156
136
  let nodes = {};
157
137
  nodes[node.name] = node;
158
138
  let pco = node.pcoGeometry;
159
-
160
139
  for (let i = 0; i < decoded.length; i++) {
161
140
  let name = decoded[i].name;
162
141
  let decodedNumPoints = decoded[i].numPoints;
@@ -173,17 +152,14 @@ export class PointCloudOctant {
173
152
  parentNode.addChild(currentNode);
174
153
  nodes[name] = currentNode;
175
154
  }
176
-
177
155
  node.loadPoints();
178
156
  };
179
-
180
157
  if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {
181
158
  let hurl = node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';
182
159
  let xhr = XHRFactory.createXMLHttpRequest();
183
160
  xhr.open('GET', hurl, true);
184
161
  xhr.responseType = 'arraybuffer';
185
162
  xhr.overrideMimeType('text/plain; charset=x-user-defined');
186
-
187
163
  xhr.onreadystatechange = () => {
188
164
  if (xhr.readyState === 4) {
189
165
  if (xhr.status === 200 || xhr.status === 0) {
@@ -195,7 +171,6 @@ export class PointCloudOctant {
195
171
  }
196
172
  }
197
173
  };
198
-
199
174
  try {
200
175
  xhr.send(null);
201
176
  } catch (e) {
@@ -203,11 +178,9 @@ export class PointCloudOctant {
203
178
  }
204
179
  }
205
180
  }
206
-
207
181
  getNumPoints() {
208
182
  return this.numPoints;
209
183
  }
210
-
211
184
  dispose() {
212
185
  if (this.geometry && this.parent != null) {
213
186
  this.geometry.dispose();
@@ -218,11 +191,9 @@ export class PointCloudOctant {
218
191
  let handler = this.oneTimeDisposeHandlers[i];
219
192
  handler();
220
193
  }
221
-
222
194
  this.oneTimeDisposeHandlers = [];
223
195
  }
224
196
  }
225
-
226
197
  }
227
198
  PointCloudOctreeGeometryNode.IDCount = 0;
228
199
  //# sourceMappingURL=octree.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/octree.ts"],"names":["PointCloudOctree","constructor","url","octreeDir","spacing","boundingBox","root","nodes","pointAttributes","hierarchyStepSize","loader","PointCloudOctant","name","octree","id","PointCloudOctreeGeometryNode","IDCount","index","parseInt","charAt","length","geometry","boundingSphere","getBoundingSphere","THREE","Sphere","children","numPoints","level","loaded","oneTimeDisposeHandlers","isGeometryNode","getLevel","isTreeNode","isLoaded","getBoundingBox","getChildren","filter","Boolean","getURL","version","hierarchyPath","getHierarchyPath","path","indices","substr","numParts","Math","floor","i","slice","addChild","child","parent","load","loading","Potree","numNodesLoading","maxNodesLoading","equalOrHigher","hasChildren","loadHierachyThenPoints","loadPoints","node","callback","hbuffer","view","DataView","stack","getUint8","getUint32","push","decoded","offset","snode","shift","mask","childName","childChildren","childNumPoints","byteLength","pco","pcoGeometry","decodedNumPoints","parentName","substring","parentNode","Utils","createChildAABB","currentNode","pow","hurl","xhr","XHRFactory","createXMLHttpRequest","open","responseType","overrideMimeType","onreadystatechange","readyState","status","response","console","log","send","e","getNumPoints","dispose","handler"],"mappings":"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","sourcesContent":["/* eslint-disable */\n\n// @ts-nocheck\n\nexport class PointCloudOctree {\n constructor() {\n this.url = null;\n this.octreeDir = null;\n this.spacing = 0;\n this.boundingBox = null;\n this.root = null;\n this.nodes = null;\n this.pointAttributes = null;\n this.hierarchyStepSize = -1;\n this.loader = null;\n }\n}\n\nexport class PointCloudOctant {\n constructor(name, octree, boundingBox) {\n this.octree = this.id = PointCloudOctreeGeometryNode.IDCount++;\n this.name = name;\n this.index = parseInt(name.charAt(name.length - 1));\n this.octree = octree;\n this.geometry = null;\n this.boundingBox = boundingBox;\n this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere());\n this.children = {};\n this.numPoints = 0;\n this.level = null;\n this.loaded = false;\n this.oneTimeDisposeHandlers = [];\n }\n\n isGeometryNode() {\n return true;\n }\n\n getLevel() {\n return this.level;\n }\n\n isTreeNode() {\n return false;\n }\n\n isLoaded() {\n return this.loaded;\n }\n\n getBoundingSphere() {\n return this.boundingSphere;\n }\n\n getBoundingBox() {\n return this.boundingBox;\n }\n\n getChildren() {\n // Children is a length 8 array with nulls for \"missing\" octants\n return this.children.filter(Boolean);\n }\n\n getURL() {\n const {version} = this.octree;\n const hierarchyPath = version >= 1.5 ? `${this.getHierarchyPath()}/` : '';\n return `${this.octree.octreeDir}/${hierarchyPath}${this.name}`;\n }\n\n getHierarchyPath() {\n let path = 'r/';\n\n let hierarchyStepSize = this.octree.hierarchyStepSize;\n let indices = this.name.substr(1);\n\n let numParts = Math.floor(indices.length / hierarchyStepSize);\n for (let i = 0; i < numParts; i++) {\n path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';\n }\n\n path = path.slice(0, -1);\n\n return path;\n }\n\n addChild(child) {\n this.children[child.index] = child;\n child.parent = this;\n }\n\n load() {\n if (\n this.loading === true ||\n this.loaded === true ||\n Potree.numNodesLoading >= Potree.maxNodesLoading\n ) {\n return;\n }\n\n this.loading = true;\n\n Potree.numNodesLoading++;\n\n if (this.octree.loader.version.equalOrHigher('1.5')) {\n if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {\n this.loadHierachyThenPoints();\n } else {\n this.loadPoints();\n }\n } else {\n this.loadPoints();\n }\n }\n\n loadPoints() {\n this.octree.loader.load(this);\n }\n\n loadHierachyThenPoints() {\n let node = this;\n\n // load hierarchy\n let callback = function (node, hbuffer) {\n let view = new DataView(hbuffer);\n\n let stack = [];\n let children = view.getUint8(0);\n let numPoints = view.getUint32(1, true);\n node.numPoints = numPoints;\n stack.push({children: children, numPoints: numPoints, name: node.name});\n\n let decoded = [];\n\n let offset = 5;\n while (stack.length > 0) {\n let snode = stack.shift();\n let mask = 1;\n for (let i = 0; i < 8; i++) {\n if ((snode.children & mask) !== 0) {\n let childName = snode.name + i;\n\n let childChildren = view.getUint8(offset);\n let childNumPoints = view.getUint32(offset + 1, true);\n\n stack.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n decoded.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n offset += 5;\n }\n\n mask = mask * 2;\n }\n\n if (offset === hbuffer.byteLength) {\n break;\n }\n }\n\n // console.log(decoded);\n\n let nodes = {};\n nodes[node.name] = node;\n let pco = node.pcoGeometry;\n\n for (let i = 0; i < decoded.length; i++) {\n let name = decoded[i].name;\n let decodedNumPoints = decoded[i].numPoints;\n let index = parseInt(name.charAt(name.length - 1));\n let parentName = name.substring(0, name.length - 1);\n let parentNode = nodes[parentName];\n let level = name.length - 1;\n let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index);\n\n let currentNode = new PointCloudOctreeGeometryNode(name, pco, boundingBox);\n currentNode.level = level;\n currentNode.numPoints = decodedNumPoints;\n currentNode.hasChildren = decoded[i].children > 0;\n currentNode.spacing = pco.spacing / Math.pow(2, level);\n parentNode.addChild(currentNode);\n nodes[name] = currentNode;\n }\n\n node.loadPoints();\n };\n if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {\n // let hurl = node.pcoGeometry.octreeDir + \"/../hierarchy/\" + node.name + \".hrc\";\n let hurl =\n node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';\n\n let xhr = XHRFactory.createXMLHttpRequest();\n xhr.open('GET', hurl, true);\n xhr.responseType = 'arraybuffer';\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200 || xhr.status === 0) {\n let hbuffer = xhr.response;\n callback(node, hbuffer);\n } else {\n console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + hurl);\n Potree.numNodesLoading--;\n }\n }\n };\n try {\n xhr.send(null);\n } catch (e) {\n console.log('fehler beim laden der punktwolke: ' + e);\n }\n }\n }\n\n getNumPoints() {\n return this.numPoints;\n }\n\n dispose() {\n if (this.geometry && this.parent != null) {\n this.geometry.dispose();\n this.geometry = null;\n this.loaded = false;\n\n // this.dispatchEvent( { type: 'dispose' } );\n for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) {\n let handler = this.oneTimeDisposeHandlers[i];\n handler();\n }\n this.oneTimeDisposeHandlers = [];\n }\n }\n}\n\nPointCloudOctreeGeometryNode.IDCount = 0;\n"],"file":"octree.js"}
1
+ {"version":3,"file":"octree.js","names":["PointCloudOctree","constructor","url","octreeDir","spacing","boundingBox","root","nodes","pointAttributes","hierarchyStepSize","loader","PointCloudOctant","name","octree","id","PointCloudOctreeGeometryNode","IDCount","index","parseInt","charAt","length","geometry","boundingSphere","getBoundingSphere","THREE","Sphere","children","numPoints","level","loaded","oneTimeDisposeHandlers","isGeometryNode","getLevel","isTreeNode","isLoaded","getBoundingBox","getChildren","filter","Boolean","getURL","version","hierarchyPath","getHierarchyPath","path","indices","substr","numParts","Math","floor","i","slice","addChild","child","parent","load","loading","Potree","numNodesLoading","maxNodesLoading","equalOrHigher","hasChildren","loadHierachyThenPoints","loadPoints","node","callback","hbuffer","view","DataView","stack","getUint8","getUint32","push","decoded","offset","snode","shift","mask","childName","childChildren","childNumPoints","byteLength","pco","pcoGeometry","decodedNumPoints","parentName","substring","parentNode","Utils","createChildAABB","currentNode","pow","hurl","xhr","XHRFactory","createXMLHttpRequest","open","responseType","overrideMimeType","onreadystatechange","readyState","status","response","console","log","send","e","getNumPoints","dispose","handler"],"sources":["../../../src/lib/octree.ts"],"sourcesContent":["/* eslint-disable */\n\n// @ts-nocheck\n\nexport class PointCloudOctree {\n constructor() {\n this.url = null;\n this.octreeDir = null;\n this.spacing = 0;\n this.boundingBox = null;\n this.root = null;\n this.nodes = null;\n this.pointAttributes = null;\n this.hierarchyStepSize = -1;\n this.loader = null;\n }\n}\n\nexport class PointCloudOctant {\n constructor(name, octree, boundingBox) {\n this.octree = this.id = PointCloudOctreeGeometryNode.IDCount++;\n this.name = name;\n this.index = parseInt(name.charAt(name.length - 1));\n this.octree = octree;\n this.geometry = null;\n this.boundingBox = boundingBox;\n this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere());\n this.children = {};\n this.numPoints = 0;\n this.level = null;\n this.loaded = false;\n this.oneTimeDisposeHandlers = [];\n }\n\n isGeometryNode() {\n return true;\n }\n\n getLevel() {\n return this.level;\n }\n\n isTreeNode() {\n return false;\n }\n\n isLoaded() {\n return this.loaded;\n }\n\n getBoundingSphere() {\n return this.boundingSphere;\n }\n\n getBoundingBox() {\n return this.boundingBox;\n }\n\n getChildren() {\n // Children is a length 8 array with nulls for \"missing\" octants\n return this.children.filter(Boolean);\n }\n\n getURL() {\n const {version} = this.octree;\n const hierarchyPath = version >= 1.5 ? `${this.getHierarchyPath()}/` : '';\n return `${this.octree.octreeDir}/${hierarchyPath}${this.name}`;\n }\n\n getHierarchyPath() {\n let path = 'r/';\n\n let hierarchyStepSize = this.octree.hierarchyStepSize;\n let indices = this.name.substr(1);\n\n let numParts = Math.floor(indices.length / hierarchyStepSize);\n for (let i = 0; i < numParts; i++) {\n path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';\n }\n\n path = path.slice(0, -1);\n\n return path;\n }\n\n addChild(child) {\n this.children[child.index] = child;\n child.parent = this;\n }\n\n load() {\n if (\n this.loading === true ||\n this.loaded === true ||\n Potree.numNodesLoading >= Potree.maxNodesLoading\n ) {\n return;\n }\n\n this.loading = true;\n\n Potree.numNodesLoading++;\n\n if (this.octree.loader.version.equalOrHigher('1.5')) {\n if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {\n this.loadHierachyThenPoints();\n } else {\n this.loadPoints();\n }\n } else {\n this.loadPoints();\n }\n }\n\n loadPoints() {\n this.octree.loader.load(this);\n }\n\n loadHierachyThenPoints() {\n let node = this;\n\n // load hierarchy\n let callback = function (node, hbuffer) {\n let view = new DataView(hbuffer);\n\n let stack = [];\n let children = view.getUint8(0);\n let numPoints = view.getUint32(1, true);\n node.numPoints = numPoints;\n stack.push({children: children, numPoints: numPoints, name: node.name});\n\n let decoded = [];\n\n let offset = 5;\n while (stack.length > 0) {\n let snode = stack.shift();\n let mask = 1;\n for (let i = 0; i < 8; i++) {\n if ((snode.children & mask) !== 0) {\n let childName = snode.name + i;\n\n let childChildren = view.getUint8(offset);\n let childNumPoints = view.getUint32(offset + 1, true);\n\n stack.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n decoded.push({children: childChildren, numPoints: childNumPoints, name: childName});\n\n offset += 5;\n }\n\n mask = mask * 2;\n }\n\n if (offset === hbuffer.byteLength) {\n break;\n }\n }\n\n // console.log(decoded);\n\n let nodes = {};\n nodes[node.name] = node;\n let pco = node.pcoGeometry;\n\n for (let i = 0; i < decoded.length; i++) {\n let name = decoded[i].name;\n let decodedNumPoints = decoded[i].numPoints;\n let index = parseInt(name.charAt(name.length - 1));\n let parentName = name.substring(0, name.length - 1);\n let parentNode = nodes[parentName];\n let level = name.length - 1;\n let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index);\n\n let currentNode = new PointCloudOctreeGeometryNode(name, pco, boundingBox);\n currentNode.level = level;\n currentNode.numPoints = decodedNumPoints;\n currentNode.hasChildren = decoded[i].children > 0;\n currentNode.spacing = pco.spacing / Math.pow(2, level);\n parentNode.addChild(currentNode);\n nodes[name] = currentNode;\n }\n\n node.loadPoints();\n };\n if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {\n // let hurl = node.pcoGeometry.octreeDir + \"/../hierarchy/\" + node.name + \".hrc\";\n let hurl =\n node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';\n\n let xhr = XHRFactory.createXMLHttpRequest();\n xhr.open('GET', hurl, true);\n xhr.responseType = 'arraybuffer';\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n if (xhr.status === 200 || xhr.status === 0) {\n let hbuffer = xhr.response;\n callback(node, hbuffer);\n } else {\n console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + hurl);\n Potree.numNodesLoading--;\n }\n }\n };\n try {\n xhr.send(null);\n } catch (e) {\n console.log('fehler beim laden der punktwolke: ' + e);\n }\n }\n }\n\n getNumPoints() {\n return this.numPoints;\n }\n\n dispose() {\n if (this.geometry && this.parent != null) {\n this.geometry.dispose();\n this.geometry = null;\n this.loaded = false;\n\n // this.dispatchEvent( { type: 'dispose' } );\n for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) {\n let handler = this.oneTimeDisposeHandlers[i];\n handler();\n }\n this.oneTimeDisposeHandlers = [];\n }\n }\n}\n\nPointCloudOctreeGeometryNode.IDCount = 0;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/parsers/parse-potree-bin.ts"],"names":["parsePotreeBin","arrayBuffer","byteOffset","options","index"],"mappings":"AAAA,eAAe,SAASA,cAAT,CACbC,WADa,EAEbC,UAFa,EAGbC,OAHa,EAIbC,KAJa,EAKb;AACA,SAAO,IAAP;AACD","sourcesContent":["export default function parsePotreeBin(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: unknown,\n index: any\n) {\n return null;\n}\n"],"file":"parse-potree-bin.js"}
1
+ {"version":3,"file":"parse-potree-bin.js","names":["parsePotreeBin","arrayBuffer","byteOffset","options","index"],"sources":["../../../src/parsers/parse-potree-bin.ts"],"sourcesContent":["export default function parsePotreeBin(\n arrayBuffer: ArrayBuffer,\n byteOffset: number,\n options: unknown,\n index: any\n) {\n return null;\n}\n"],"mappings":"AAAA,eAAe,SAASA,cAAc,CACpCC,WAAwB,EACxBC,UAAkB,EAClBC,OAAgB,EAChBC,KAAU,EACV;EACA,OAAO,IAAI;AACb"}
@@ -1,20 +1,22 @@
1
+
2
+
1
3
  export default function parsePotreeHierarchyChunk(arrayBuffer) {
2
4
  const tileHeaders = parseBinaryChunk(arrayBuffer);
3
5
  return buildHierarchy(tileHeaders);
4
6
  }
5
7
 
6
- function parseBinaryChunk(arrayBuffer, byteOffset = 0) {
8
+ function parseBinaryChunk(arrayBuffer) {
9
+ let byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
7
10
  const dataView = new DataView(arrayBuffer);
8
11
  const stack = [];
12
+
9
13
  const topTileHeader = {};
10
14
  byteOffset = decodeRow(dataView, byteOffset, topTileHeader);
11
15
  stack.push(topTileHeader);
12
16
  const tileHeaders = [];
13
-
14
17
  while (stack.length > 0) {
15
18
  const snode = stack.shift();
16
19
  let mask = 1;
17
-
18
20
  for (let i = 0; i < 8; i++) {
19
21
  if (snode && (snode.header.childMask & mask) !== 0) {
20
22
  const tileHeader = {};
@@ -24,18 +26,14 @@ function parseBinaryChunk(arrayBuffer, byteOffset = 0) {
24
26
  tileHeaders.push(tileHeader);
25
27
  snode.header.childCount++;
26
28
  }
27
-
28
29
  mask = mask * 2;
29
30
  }
30
-
31
31
  if (byteOffset === dataView.byteLength) {
32
32
  break;
33
33
  }
34
34
  }
35
-
36
35
  return tileHeaders;
37
36
  }
38
-
39
37
  function decodeRow(dataView, byteOffset, tileHeader) {
40
38
  tileHeader.header = tileHeader.header || {};
41
39
  tileHeader.header.childMask = dataView.getUint8(byteOffset);
@@ -46,16 +44,17 @@ function decodeRow(dataView, byteOffset, tileHeader) {
46
44
  return byteOffset;
47
45
  }
48
46
 
49
- function buildHierarchy(tileHeaders, options = {}) {
47
+ function buildHierarchy(tileHeaders) {
48
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
50
49
  const DEFAULT_OPTIONS = {
51
50
  spacing: 100
52
51
  };
53
- options = { ...DEFAULT_OPTIONS,
52
+ options = {
53
+ ...DEFAULT_OPTIONS,
54
54
  ...options
55
55
  };
56
56
  const topNode = tileHeaders[0];
57
57
  const nodes = {};
58
-
59
58
  for (const tileHeader of tileHeaders) {
60
59
  const {
61
60
  name
@@ -64,6 +63,7 @@ function buildHierarchy(tileHeaders, options = {}) {
64
63
  const parentName = name.substring(0, name.length - 1);
65
64
  const parentNode = nodes[parentName];
66
65
  const level = name.length - 1;
66
+
67
67
  tileHeader.level = level;
68
68
  tileHeader.hasChildren = tileHeader.header.childCount;
69
69
  tileHeader.children = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/parsers/parse-potree-hierarchy-chunk.ts"],"names":["parsePotreeHierarchyChunk","arrayBuffer","tileHeaders","parseBinaryChunk","buildHierarchy","byteOffset","dataView","DataView","stack","topTileHeader","decodeRow","push","length","snode","shift","mask","i","header","childMask","tileHeader","name","childCount","byteLength","getUint8","pointCount","getUint32","options","DEFAULT_OPTIONS","spacing","topNode","nodes","index","parseInt","charAt","parentName","substring","parentNode","level","hasChildren","children","childrenByIndex","Array","fill","Math","pow"],"mappings":"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","sourcesContent":["// This file is derived from the Cesium code base under BSD 2-clause license\n// See LICENSE.md and https://github.com/potree/potree/blob/develop/LICENSE\n\n// Potree Hierarchy Chunk file format\n// https://github.com/potree/potree/blob/develop/docs/potree-file-format.md#index-files\n\n/*\n### Hierarchy Chunk Files\n\nAs mentioned in the former section, the `.hrc` files contain the index structure\nmeaning a list of all the files stored within the directory tree.\n\nAn index file contains a list of tuple values with the first being a `uint8`\n\"mask\" and the second being `uint32` \"number of points\" of a hierarchy level\nin a [breadth first level order][breadth-first].\n\nPer hierarchy level we have 8 possible nodes. To indicate whether a node exists\na simple binary mask is used:\n\n| Position | Mask | [Binary][bin] |\n|----------|------|---------------|\n| 0 | 1 | 0b00000001 |\n| 1 | 2 | 0b00000010 |\n| 2 | 4 | 0b00000100 |\n| 3 | 8 | 0b00001000 |\n| 4 | 16 | 0b00010000 |\n| 5 | 32 | 0b00100000 |\n| 6 | 64 | 0b01000000 |\n| 7 | 128 | 0b10000000 |\n\nSo if in a hierarchy the child node 3 and node 7 exist then the hierarchies\nmask has to be `0b00001000 | 0b10000000` → `0b10001000` (=136).\n\n_Example:_ A simple, non-realistic tree:\n\n```\n|- r1\n| |\n| \\- r14 (2 Points)\n|\n\\- r3\n |\n \\- r36 (1 Point)\n```\n\nWould have an index looking like this:\n\n| name | mask | points |\n|------|--------------------|--------|\n| r | `0b00001010` (=10) | `3` |\n| r1 | `0b00010000` (=16) | `2` |\n| r3 | `0b01000000` (=64) | `1` |\n| r14 | `0b00000000` (=0) | `2` |\n| r36 | `0b00000000` (=0) | `1` |\n*/\n\n// @ts-nocheck\n\n// load hierarchy\nexport default function parsePotreeHierarchyChunk(arrayBuffer: ArrayBuffer) {\n const tileHeaders = parseBinaryChunk(arrayBuffer);\n return buildHierarchy(tileHeaders);\n}\n\n// Parses the binary rows\nfunction parseBinaryChunk(arrayBuffer: ArrayBuffer, byteOffset = 0) {\n const dataView = new DataView(arrayBuffer);\n\n const stack = [];\n\n // Get root mask\n const topTileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, topTileHeader);\n\n stack.push(topTileHeader);\n\n const tileHeaders = [];\n\n while (stack.length > 0) {\n const snode = stack.shift();\n let mask = 1;\n\n for (let i = 0; i < 8; i++) {\n if (snode && (snode.header.childMask & mask) !== 0) {\n const tileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, tileHeader);\n tileHeader.name = snode.name + i;\n\n stack.push(tileHeader);\n tileHeaders.push(tileHeader);\n snode.header.childCount++;\n }\n mask = mask * 2;\n }\n\n if (byteOffset === dataView.byteLength) {\n break;\n }\n }\n\n return tileHeaders;\n}\n\nfunction decodeRow(dataView, byteOffset, tileHeader) {\n tileHeader.header = tileHeader.header || {};\n tileHeader.header.childMask = dataView.getUint8(byteOffset);\n tileHeader.header.childCount = 0;\n tileHeader.pointCount = dataView.getUint32(byteOffset + 1, true);\n tileHeader.name = '';\n byteOffset += 5;\n return byteOffset;\n}\n\n// Resolves the binary rows into a hierarchy (tree structure)\nfunction buildHierarchy(tileHeaders, options = {}) {\n const DEFAULT_OPTIONS = {spacing: 100}; // TODO assert instead of default?\n options = {...DEFAULT_OPTIONS, ...options};\n\n const topNode = tileHeaders[0];\n const nodes = {};\n\n for (const tileHeader of tileHeaders) {\n const {name} = tileHeader;\n\n const index = parseInt(name.charAt(name.length - 1), 10);\n const parentName = name.substring(0, name.length - 1);\n const parentNode = nodes[parentName];\n const level = name.length - 1;\n // assert(parentNode && level >= 0);\n\n tileHeader.level = level;\n tileHeader.hasChildren = tileHeader.header.childCount;\n tileHeader.children = [];\n tileHeader.childrenByIndex = new Array(8).fill(null);\n tileHeader.spacing = options.spacing / Math.pow(2, level);\n // tileHeader.boundingVolume = Utils.createChildAABB(parentNode.boundingBox, index);\n\n if (parentNode) {\n parentNode.children.push(tileHeader);\n parentNode.childrenByIndex[index] = tileHeader;\n }\n\n // Add the node to the map\n nodes[name] = tileHeader;\n }\n\n // First node is the root\n return topNode;\n}\n"],"file":"parse-potree-hierarchy-chunk.js"}
1
+ {"version":3,"file":"parse-potree-hierarchy-chunk.js","names":["parsePotreeHierarchyChunk","arrayBuffer","tileHeaders","parseBinaryChunk","buildHierarchy","byteOffset","dataView","DataView","stack","topTileHeader","decodeRow","push","length","snode","shift","mask","i","header","childMask","tileHeader","name","childCount","byteLength","getUint8","pointCount","getUint32","options","DEFAULT_OPTIONS","spacing","topNode","nodes","index","parseInt","charAt","parentName","substring","parentNode","level","hasChildren","children","childrenByIndex","Array","fill","Math","pow"],"sources":["../../../src/parsers/parse-potree-hierarchy-chunk.ts"],"sourcesContent":["// This file is derived from the Cesium code base under BSD 2-clause license\n// See LICENSE.md and https://github.com/potree/potree/blob/develop/LICENSE\n\n// Potree Hierarchy Chunk file format\n// https://github.com/potree/potree/blob/develop/docs/potree-file-format.md#index-files\n\n/*\n### Hierarchy Chunk Files\n\nAs mentioned in the former section, the `.hrc` files contain the index structure\nmeaning a list of all the files stored within the directory tree.\n\nAn index file contains a list of tuple values with the first being a `uint8`\n\"mask\" and the second being `uint32` \"number of points\" of a hierarchy level\nin a [breadth first level order][breadth-first].\n\nPer hierarchy level we have 8 possible nodes. To indicate whether a node exists\na simple binary mask is used:\n\n| Position | Mask | [Binary][bin] |\n|----------|------|---------------|\n| 0 | 1 | 0b00000001 |\n| 1 | 2 | 0b00000010 |\n| 2 | 4 | 0b00000100 |\n| 3 | 8 | 0b00001000 |\n| 4 | 16 | 0b00010000 |\n| 5 | 32 | 0b00100000 |\n| 6 | 64 | 0b01000000 |\n| 7 | 128 | 0b10000000 |\n\nSo if in a hierarchy the child node 3 and node 7 exist then the hierarchies\nmask has to be `0b00001000 | 0b10000000` → `0b10001000` (=136).\n\n_Example:_ A simple, non-realistic tree:\n\n```\n|- r1\n| |\n| \\- r14 (2 Points)\n|\n\\- r3\n |\n \\- r36 (1 Point)\n```\n\nWould have an index looking like this:\n\n| name | mask | points |\n|------|--------------------|--------|\n| r | `0b00001010` (=10) | `3` |\n| r1 | `0b00010000` (=16) | `2` |\n| r3 | `0b01000000` (=64) | `1` |\n| r14 | `0b00000000` (=0) | `2` |\n| r36 | `0b00000000` (=0) | `1` |\n*/\n\n// @ts-nocheck\n\n// load hierarchy\nexport default function parsePotreeHierarchyChunk(arrayBuffer: ArrayBuffer) {\n const tileHeaders = parseBinaryChunk(arrayBuffer);\n return buildHierarchy(tileHeaders);\n}\n\n// Parses the binary rows\nfunction parseBinaryChunk(arrayBuffer: ArrayBuffer, byteOffset = 0) {\n const dataView = new DataView(arrayBuffer);\n\n const stack = [];\n\n // Get root mask\n const topTileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, topTileHeader);\n\n stack.push(topTileHeader);\n\n const tileHeaders = [];\n\n while (stack.length > 0) {\n const snode = stack.shift();\n let mask = 1;\n\n for (let i = 0; i < 8; i++) {\n if (snode && (snode.header.childMask & mask) !== 0) {\n const tileHeader = {};\n byteOffset = decodeRow(dataView, byteOffset, tileHeader);\n tileHeader.name = snode.name + i;\n\n stack.push(tileHeader);\n tileHeaders.push(tileHeader);\n snode.header.childCount++;\n }\n mask = mask * 2;\n }\n\n if (byteOffset === dataView.byteLength) {\n break;\n }\n }\n\n return tileHeaders;\n}\n\nfunction decodeRow(dataView, byteOffset, tileHeader) {\n tileHeader.header = tileHeader.header || {};\n tileHeader.header.childMask = dataView.getUint8(byteOffset);\n tileHeader.header.childCount = 0;\n tileHeader.pointCount = dataView.getUint32(byteOffset + 1, true);\n tileHeader.name = '';\n byteOffset += 5;\n return byteOffset;\n}\n\n// Resolves the binary rows into a hierarchy (tree structure)\nfunction buildHierarchy(tileHeaders, options = {}) {\n const DEFAULT_OPTIONS = {spacing: 100}; // TODO assert instead of default?\n options = {...DEFAULT_OPTIONS, ...options};\n\n const topNode = tileHeaders[0];\n const nodes = {};\n\n for (const tileHeader of tileHeaders) {\n const {name} = tileHeader;\n\n const index = parseInt(name.charAt(name.length - 1), 10);\n const parentName = name.substring(0, name.length - 1);\n const parentNode = nodes[parentName];\n const level = name.length - 1;\n // assert(parentNode && level >= 0);\n\n tileHeader.level = level;\n tileHeader.hasChildren = tileHeader.header.childCount;\n tileHeader.children = [];\n tileHeader.childrenByIndex = new Array(8).fill(null);\n tileHeader.spacing = options.spacing / Math.pow(2, level);\n // tileHeader.boundingVolume = Utils.createChildAABB(parentNode.boundingBox, index);\n\n if (parentNode) {\n parentNode.children.push(tileHeader);\n parentNode.childrenByIndex[index] = tileHeader;\n }\n\n // Add the node to the map\n nodes[name] = tileHeader;\n }\n\n // First node is the root\n return topNode;\n}\n"],"mappings":";;AA2DA,eAAe,SAASA,yBAAyB,CAACC,WAAwB,EAAE;EAC1E,MAAMC,WAAW,GAAGC,gBAAgB,CAACF,WAAW,CAAC;EACjD,OAAOG,cAAc,CAACF,WAAW,CAAC;AACpC;;AAGA,SAASC,gBAAgB,CAACF,WAAwB,EAAkB;EAAA,IAAhBI,UAAU,uEAAG,CAAC;EAChE,MAAMC,QAAQ,GAAG,IAAIC,QAAQ,CAACN,WAAW,CAAC;EAE1C,MAAMO,KAAK,GAAG,EAAE;;EAGhB,MAAMC,aAAa,GAAG,CAAC,CAAC;EACxBJ,UAAU,GAAGK,SAAS,CAACJ,QAAQ,EAAED,UAAU,EAAEI,aAAa,CAAC;EAE3DD,KAAK,CAACG,IAAI,CAACF,aAAa,CAAC;EAEzB,MAAMP,WAAW,GAAG,EAAE;EAEtB,OAAOM,KAAK,CAACI,MAAM,GAAG,CAAC,EAAE;IACvB,MAAMC,KAAK,GAAGL,KAAK,CAACM,KAAK,EAAE;IAC3B,IAAIC,IAAI,GAAG,CAAC;IAEZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;MAC1B,IAAIH,KAAK,IAAI,CAACA,KAAK,CAACI,MAAM,CAACC,SAAS,GAAGH,IAAI,MAAM,CAAC,EAAE;QAClD,MAAMI,UAAU,GAAG,CAAC,CAAC;QACrBd,UAAU,GAAGK,SAAS,CAACJ,QAAQ,EAAED,UAAU,EAAEc,UAAU,CAAC;QACxDA,UAAU,CAACC,IAAI,GAAGP,KAAK,CAACO,IAAI,GAAGJ,CAAC;QAEhCR,KAAK,CAACG,IAAI,CAACQ,UAAU,CAAC;QACtBjB,WAAW,CAACS,IAAI,CAACQ,UAAU,CAAC;QAC5BN,KAAK,CAACI,MAAM,CAACI,UAAU,EAAE;MAC3B;MACAN,IAAI,GAAGA,IAAI,GAAG,CAAC;IACjB;IAEA,IAAIV,UAAU,KAAKC,QAAQ,CAACgB,UAAU,EAAE;MACtC;IACF;EACF;EAEA,OAAOpB,WAAW;AACpB;AAEA,SAASQ,SAAS,CAACJ,QAAQ,EAAED,UAAU,EAAEc,UAAU,EAAE;EACnDA,UAAU,CAACF,MAAM,GAAGE,UAAU,CAACF,MAAM,IAAI,CAAC,CAAC;EAC3CE,UAAU,CAACF,MAAM,CAACC,SAAS,GAAGZ,QAAQ,CAACiB,QAAQ,CAAClB,UAAU,CAAC;EAC3Dc,UAAU,CAACF,MAAM,CAACI,UAAU,GAAG,CAAC;EAChCF,UAAU,CAACK,UAAU,GAAGlB,QAAQ,CAACmB,SAAS,CAACpB,UAAU,GAAG,CAAC,EAAE,IAAI,CAAC;EAChEc,UAAU,CAACC,IAAI,GAAG,EAAE;EACpBf,UAAU,IAAI,CAAC;EACf,OAAOA,UAAU;AACnB;;AAGA,SAASD,cAAc,CAACF,WAAW,EAAgB;EAAA,IAAdwB,OAAO,uEAAG,CAAC,CAAC;EAC/C,MAAMC,eAAe,GAAG;IAACC,OAAO,EAAE;EAAG,CAAC;EACtCF,OAAO,GAAG;IAAC,GAAGC,eAAe;IAAE,GAAGD;EAAO,CAAC;EAE1C,MAAMG,OAAO,GAAG3B,WAAW,CAAC,CAAC,CAAC;EAC9B,MAAM4B,KAAK,GAAG,CAAC,CAAC;EAEhB,KAAK,MAAMX,UAAU,IAAIjB,WAAW,EAAE;IACpC,MAAM;MAACkB;IAAI,CAAC,GAAGD,UAAU;IAEzB,MAAMY,KAAK,GAAGC,QAAQ,CAACZ,IAAI,CAACa,MAAM,CAACb,IAAI,CAACR,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IACxD,MAAMsB,UAAU,GAAGd,IAAI,CAACe,SAAS,CAAC,CAAC,EAAEf,IAAI,CAACR,MAAM,GAAG,CAAC,CAAC;IACrD,MAAMwB,UAAU,GAAGN,KAAK,CAACI,UAAU,CAAC;IACpC,MAAMG,KAAK,GAAGjB,IAAI,CAACR,MAAM,GAAG,CAAC;;IAG7BO,UAAU,CAACkB,KAAK,GAAGA,KAAK;IACxBlB,UAAU,CAACmB,WAAW,GAAGnB,UAAU,CAACF,MAAM,CAACI,UAAU;IACrDF,UAAU,CAACoB,QAAQ,GAAG,EAAE;IACxBpB,UAAU,CAACqB,eAAe,GAAG,IAAIC,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IACpDvB,UAAU,CAACS,OAAO,GAAGF,OAAO,CAACE,OAAO,GAAGe,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEP,KAAK,CAAC;;IAGzD,IAAID,UAAU,EAAE;MACdA,UAAU,CAACG,QAAQ,CAAC5B,IAAI,CAACQ,UAAU,CAAC;MACpCiB,UAAU,CAACI,eAAe,CAACT,KAAK,CAAC,GAAGZ,UAAU;IAChD;;IAGAW,KAAK,CAACV,IAAI,CAAC,GAAGD,UAAU;EAC1B;;EAGA,OAAOU,OAAO;AAChB"}
@@ -1,4 +1,5 @@
1
1
  import { default as parsePotreeBin } from './parsers/parse-potree-bin';
2
+
2
3
  export const PotreeBinLoader = {
3
4
  name: 'potree Binary Point Attributes',
4
5
  id: 'potree',
@@ -7,7 +8,6 @@ export const PotreeBinLoader = {
7
8
  parseSync,
8
9
  binary: true
9
10
  };
10
-
11
11
  function parseSync(arrayBuffer, options) {
12
12
  const index = {};
13
13
  const byteOffset = 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/potree-bin-loader.ts"],"names":["default","parsePotreeBin","PotreeBinLoader","name","id","extensions","mimeTypes","parseSync","binary","arrayBuffer","options","index","byteOffset"],"mappings":"AACA,SAAQA,OAAO,IAAIC,cAAnB,QAAwC,4BAAxC;AAMA,OAAO,MAAMC,eAAiC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,gCADyC;AAE/CC,EAAAA,EAAE,EAAE,QAF2C;AAG/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAHmC;AAI/CC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAJoC;AAO/CC,EAAAA,SAP+C;AAQ/CC,EAAAA,MAAM,EAAE;AARuC,CAA1C;;AAWP,SAASD,SAAT,CAAmBE,WAAnB,EAA6CC,OAA7C,EAAsE;AACpE,QAAMC,KAAK,GAAG,EAAd;AACA,QAAMC,UAAU,GAAG,CAAnB;AACAX,EAAAA,cAAc,CAACQ,WAAD,EAAcG,UAAd,EAA0BF,OAA1B,EAAmCC,KAAnC,CAAd;AACA,SAAOA,KAAP;AACD","sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeBin} from './parsers/parse-potree-bin';\n\n/**\n * Loader for potree Binary Point Attributes\n * */\n// @ts-ignore\nexport const PotreeBinLoader: LoaderWithParser = {\n name: 'potree Binary Point Attributes',\n id: 'potree',\n extensions: ['bin'],\n mimeTypes: ['application/octet-stream'],\n // Unfortunately binary potree files have no header bytes, no test possible\n // test: ['...'],\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: LoaderOptions) {\n const index = {};\n const byteOffset = 0;\n parsePotreeBin(arrayBuffer, byteOffset, options, index);\n return index;\n}\n"],"file":"potree-bin-loader.js"}
1
+ {"version":3,"file":"potree-bin-loader.js","names":["default","parsePotreeBin","PotreeBinLoader","name","id","extensions","mimeTypes","parseSync","binary","arrayBuffer","options","index","byteOffset"],"sources":["../../src/potree-bin-loader.ts"],"sourcesContent":["import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeBin} from './parsers/parse-potree-bin';\n\n/**\n * Loader for potree Binary Point Attributes\n * */\n// @ts-ignore\nexport const PotreeBinLoader: LoaderWithParser = {\n name: 'potree Binary Point Attributes',\n id: 'potree',\n extensions: ['bin'],\n mimeTypes: ['application/octet-stream'],\n // Unfortunately binary potree files have no header bytes, no test possible\n // test: ['...'],\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer: ArrayBuffer, options?: LoaderOptions) {\n const index = {};\n const byteOffset = 0;\n parsePotreeBin(arrayBuffer, byteOffset, options, index);\n return index;\n}\n"],"mappings":"AACA,SAAQA,OAAO,IAAIC,cAAc,QAAO,4BAA4B;;AAMpE,OAAO,MAAMC,eAAiC,GAAG;EAC/CC,IAAI,EAAE,gCAAgC;EACtCC,EAAE,EAAE,QAAQ;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EAGvCC,SAAS;EACTC,MAAM,EAAE;AACV,CAAC;AAED,SAASD,SAAS,CAACE,WAAwB,EAAEC,OAAuB,EAAE;EACpE,MAAMC,KAAK,GAAG,CAAC,CAAC;EAChB,MAAMC,UAAU,GAAG,CAAC;EACpBX,cAAc,CAACQ,WAAW,EAAEG,UAAU,EAAEF,OAAO,EAAEC,KAAK,CAAC;EACvD,OAAOA,KAAK;AACd"}
@@ -1,4 +1,5 @@
1
1
  import { default as parsePotreeHierarchyChunk } from './parsers/parse-potree-hierarchy-chunk';
2
+
2
3
  export const PotreeHierarchyChunkLoader = {
3
4
  id: 'potree',
4
5
  name: 'potree Hierarchy Chunk',
@@ -8,7 +9,6 @@ export const PotreeHierarchyChunkLoader = {
8
9
  parseSync,
9
10
  binary: true
10
11
  };
11
-
12
12
  function parseSync(arrayBuffer) {
13
13
  return parsePotreeHierarchyChunk(arrayBuffer);
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/potree-hierarchy-chunk-loader.ts"],"names":["default","parsePotreeHierarchyChunk","PotreeHierarchyChunkLoader","id","name","extensions","mimeTypes","parse","arrayBuffer","options","parseSync","binary"],"mappings":"AACA,SAAQA,OAAO,IAAIC,yBAAnB,QAAmD,wCAAnD;AAIA,OAAO,MAAMC,0BAA4C,GAAG;AAC1DC,EAAAA,EAAE,EAAE,QADsD;AAE1DC,EAAAA,IAAI,EAAE,wBAFoD;AAG1DC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAH8C;AAI1DC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAJ+C;AAO1DC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgC,MAAMC,SAAS,CAACF,WAAD,CAPI;AAQ1DE,EAAAA,SAR0D;AAS1DC,EAAAA,MAAM,EAAE;AATkD,CAArD;;AAYP,SAASD,SAAT,CAAmBF,WAAnB,EAAgC;AAC9B,SAAOP,yBAAyB,CAACO,WAAD,CAAhC;AACD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeHierarchyChunk} from './parsers/parse-potree-hierarchy-chunk';\n\n/** Potree hierarchy chunk loader */\n// @ts-ignore\nexport const PotreeHierarchyChunkLoader: LoaderWithParser = {\n id: 'potree',\n name: 'potree Hierarchy Chunk',\n extensions: ['hrc'],\n mimeTypes: ['application/octet-stream'],\n // binary potree files have no header bytes, no content test function possible\n // test: ['...'],\n parse: async (arrayBuffer, options) => await parseSync(arrayBuffer),\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer) {\n return parsePotreeHierarchyChunk(arrayBuffer);\n}\n"],"file":"potree-hierarchy-chunk-loader.js"}
1
+ {"version":3,"file":"potree-hierarchy-chunk-loader.js","names":["default","parsePotreeHierarchyChunk","PotreeHierarchyChunkLoader","id","name","extensions","mimeTypes","parse","arrayBuffer","options","parseSync","binary"],"sources":["../../src/potree-hierarchy-chunk-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {default as parsePotreeHierarchyChunk} from './parsers/parse-potree-hierarchy-chunk';\n\n/** Potree hierarchy chunk loader */\n// @ts-ignore\nexport const PotreeHierarchyChunkLoader: LoaderWithParser = {\n id: 'potree',\n name: 'potree Hierarchy Chunk',\n extensions: ['hrc'],\n mimeTypes: ['application/octet-stream'],\n // binary potree files have no header bytes, no content test function possible\n // test: ['...'],\n parse: async (arrayBuffer, options) => await parseSync(arrayBuffer),\n parseSync,\n binary: true\n};\n\nfunction parseSync(arrayBuffer) {\n return parsePotreeHierarchyChunk(arrayBuffer);\n}\n"],"mappings":"AACA,SAAQA,OAAO,IAAIC,yBAAyB,QAAO,wCAAwC;;AAI3F,OAAO,MAAMC,0BAA4C,GAAG;EAC1DC,EAAE,EAAE,QAAQ;EACZC,IAAI,EAAE,wBAAwB;EAC9BC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EAGvCC,KAAK,EAAE,OAAOC,WAAW,EAAEC,OAAO,KAAK,MAAMC,SAAS,CAACF,WAAW,CAAC;EACnEE,SAAS;EACTC,MAAM,EAAE;AACV,CAAC;AAED,SAASD,SAAS,CAACF,WAAW,EAAE;EAC9B,OAAOP,yBAAyB,CAACO,WAAW,CAAC;AAC/C"}
@@ -1,4 +1,6 @@
1
- const VERSION = typeof "3.3.0-alpha.4" !== 'undefined' ? "3.3.0-alpha.4" : 'latest';
1
+
2
+ const VERSION = typeof "3.3.0-alpha.6" !== 'undefined' ? "3.3.0-alpha.6" : 'latest';
3
+
2
4
  export const PotreeLoader = {
3
5
  name: 'potree',
4
6
  id: 'potree',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/potree-loader.ts"],"names":["VERSION","PotreeLoader","name","id","module","version","extensions","mimeTypes","testText","text","indexOf","parseTextSync","JSON","parse","options","potree"],"mappings":"AAIA,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAIA,OAAO,MAAMC,YAA8B,GAAG;AAC5CC,EAAAA,IAAI,EAAE,QADsC;AAE5CC,EAAAA,EAAE,EAAE,QAFwC;AAG5CC,EAAAA,MAAM,EAAE,QAHoC;AAI5CC,EAAAA,OAAO,EAAEL,OAJmC;AAK5CM,EAAAA,UAAU,EAAE,CAAC,MAAD,CALgC;AAM5CC,EAAAA,SAAS,EAAE,CAAC,kBAAD,CANiC;AAO5CC,EAAAA,QAAQ,EAAGC,IAAD,IAAUA,IAAI,CAACC,OAAL,CAAa,WAAb,KAA6B,CAPL;AAQ5CC,EAAAA,aAAa,EAAGF,IAAD,IAAUG,IAAI,CAACC,KAAL,CAAWJ,IAAX,CARmB;AAS5CK,EAAAA,OAAO,EAAE;AACPC,IAAAA,MAAM,EAAE;AADD;AATmC,CAAvC","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\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\n/** Potree loader */\n// @ts-ignore\nexport const PotreeLoader: LoaderWithParser = {\n name: 'potree',\n id: 'potree',\n module: 'potree',\n version: VERSION,\n extensions: ['json'],\n mimeTypes: ['application/json'],\n testText: (text) => text.indexOf('octreeDir') >= 0,\n parseTextSync: (text) => JSON.parse(text),\n options: {\n potree: {}\n }\n};\n"],"file":"potree-loader.js"}
1
+ {"version":3,"file":"potree-loader.js","names":["VERSION","PotreeLoader","name","id","module","version","extensions","mimeTypes","testText","text","indexOf","parseTextSync","JSON","parse","options","potree"],"sources":["../../src/potree-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\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\n/** Potree loader */\n// @ts-ignore\nexport const PotreeLoader: LoaderWithParser = {\n name: 'potree',\n id: 'potree',\n module: 'potree',\n version: VERSION,\n extensions: ['json'],\n mimeTypes: ['application/json'],\n testText: (text) => text.indexOf('octreeDir') >= 0,\n parseTextSync: (text) => JSON.parse(text),\n options: {\n potree: {}\n }\n};\n"],"mappings":";AAIA,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ;;AAI3E,OAAO,MAAMC,YAA8B,GAAG;EAC5CC,IAAI,EAAE,QAAQ;EACdC,EAAE,EAAE,QAAQ;EACZC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,QAAQ,EAAGC,IAAI,IAAKA,IAAI,CAACC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;EAClDC,aAAa,EAAGF,IAAI,IAAKG,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC;EACzCK,OAAO,EAAE;IACPC,MAAM,EAAE,CAAC;EACX;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/potree",
3
- "version": "3.3.0-alpha.4",
3
+ "version": "3.3.0-alpha.6",
4
4
  "description": "potree loaders for large point clouds.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -35,8 +35,8 @@
35
35
  "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
36
36
  },
37
37
  "dependencies": {
38
- "@loaders.gl/math": "3.3.0-alpha.4",
38
+ "@loaders.gl/math": "3.3.0-alpha.6",
39
39
  "@math.gl/core": "^3.5.1"
40
40
  },
41
- "gitHead": "d1c524fd3cb9296ecd1bf7d185765c4f6aaef6a1"
41
+ "gitHead": "718a2998a26883247461ff05f01dcbef8d8c2417"
42
42
  }