@loaders.gl/potree 3.1.3 → 4.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/bundle.js.map +1 -0
  3. package/dist/index.js +4 -9
  4. package/dist/index.js.map +1 -0
  5. package/dist/lib/octree.js +222 -191
  6. package/dist/lib/octree.js.map +1 -0
  7. package/dist/parsers/parse-potree-bin.js +3 -5
  8. package/dist/parsers/parse-potree-bin.js.map +1 -0
  9. package/dist/parsers/parse-potree-hierarchy-chunk.js +71 -117
  10. package/dist/parsers/parse-potree-hierarchy-chunk.js.map +1 -0
  11. package/dist/potree-bin-loader.js +14 -24
  12. package/dist/potree-bin-loader.js.map +1 -0
  13. package/dist/potree-hierarchy-chunk-loader.js +12 -20
  14. package/dist/potree-hierarchy-chunk-loader.js.map +1 -0
  15. package/dist/potree-loader.js +14 -20
  16. package/dist/potree-loader.js.map +1 -0
  17. package/package.json +5 -5
  18. package/dist/es5/bundle.js +0 -7
  19. package/dist/es5/bundle.js.map +0 -1
  20. package/dist/es5/index.js +0 -30
  21. package/dist/es5/index.js.map +0 -1
  22. package/dist/es5/lib/octree.js +0 -260
  23. package/dist/es5/lib/octree.js.map +0 -1
  24. package/dist/es5/parsers/parse-potree-bin.js +0 -11
  25. package/dist/es5/parsers/parse-potree-bin.js.map +0 -1
  26. package/dist/es5/parsers/parse-potree-hierarchy-chunk.js +0 -112
  27. package/dist/es5/parsers/parse-potree-hierarchy-chunk.js.map +0 -1
  28. package/dist/es5/potree-bin-loader.js +0 -28
  29. package/dist/es5/potree-bin-loader.js.map +0 -1
  30. package/dist/es5/potree-hierarchy-chunk-loader.js +0 -55
  31. package/dist/es5/potree-hierarchy-chunk-loader.js.map +0 -1
  32. package/dist/es5/potree-loader.js +0 -26
  33. package/dist/es5/potree-loader.js.map +0 -1
  34. package/dist/esm/bundle.js +0 -5
  35. package/dist/esm/bundle.js.map +0 -1
  36. package/dist/esm/index.js +0 -4
  37. package/dist/esm/index.js.map +0 -1
  38. package/dist/esm/lib/octree.js +0 -228
  39. package/dist/esm/lib/octree.js.map +0 -1
  40. package/dist/esm/parsers/parse-potree-bin.js +0 -4
  41. package/dist/esm/parsers/parse-potree-bin.js.map +0 -1
  42. package/dist/esm/parsers/parse-potree-hierarchy-chunk.js +0 -83
  43. package/dist/esm/parsers/parse-potree-hierarchy-chunk.js.map +0 -1
  44. package/dist/esm/potree-bin-loader.js +0 -17
  45. package/dist/esm/potree-bin-loader.js.map +0 -1
  46. package/dist/esm/potree-hierarchy-chunk-loader.js +0 -15
  47. package/dist/esm/potree-hierarchy-chunk-loader.js.map +0 -1
  48. package/dist/esm/potree-loader.js +0 -15
  49. package/dist/esm/potree-loader.js.map +0 -1
package/dist/bundle.js CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";
2
- // @ts-nocheck
3
1
  const moduleExports = require('./index');
2
+
4
3
  globalThis.loaders = globalThis.loaders || {};
5
4
  module.exports = Object.assign(globalThis.loaders, moduleExports);
5
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +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"}
package/dist/index.js CHANGED
@@ -1,9 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PotreeBinLoader = exports.PotreeHierarchyChunkLoader = exports.PotreeLoader = void 0;
4
- var potree_loader_1 = require("./potree-loader");
5
- Object.defineProperty(exports, "PotreeLoader", { enumerable: true, get: function () { return potree_loader_1.PotreeLoader; } });
6
- var potree_hierarchy_chunk_loader_1 = require("./potree-hierarchy-chunk-loader");
7
- Object.defineProperty(exports, "PotreeHierarchyChunkLoader", { enumerable: true, get: function () { return potree_hierarchy_chunk_loader_1.PotreeHierarchyChunkLoader; } });
8
- var potree_bin_loader_1 = require("./potree-bin-loader");
9
- Object.defineProperty(exports, "PotreeBinLoader", { enumerable: true, get: function () { return potree_bin_loader_1.PotreeBinLoader; } });
1
+ export { PotreeLoader } from './potree-loader';
2
+ export { PotreeHierarchyChunkLoader } from './potree-hierarchy-chunk-loader';
3
+ export { PotreeBinLoader } from './potree-bin-loader';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,197 +1,228 @@
1
- "use strict";
2
- /* eslint-disable */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.PointCloudOctant = exports.PointCloudOctree = void 0;
5
- // @ts-nocheck
6
- class PointCloudOctree {
7
- constructor() {
8
- this.url = null;
9
- this.octreeDir = null;
10
- this.spacing = 0;
11
- this.boundingBox = null;
12
- this.root = null;
13
- this.nodes = null;
14
- this.pointAttributes = null;
15
- this.hierarchyStepSize = -1;
16
- this.loader = null;
17
- }
1
+ export class PointCloudOctree {
2
+ constructor() {
3
+ this.url = null;
4
+ this.octreeDir = null;
5
+ this.spacing = 0;
6
+ this.boundingBox = null;
7
+ this.root = null;
8
+ this.nodes = null;
9
+ this.pointAttributes = null;
10
+ this.hierarchyStepSize = -1;
11
+ this.loader = null;
12
+ }
13
+
18
14
  }
19
- exports.PointCloudOctree = PointCloudOctree;
20
- class PointCloudOctant {
21
- constructor(name, octree, boundingBox) {
22
- this.octree = this.id = PointCloudOctreeGeometryNode.IDCount++;
23
- this.name = name;
24
- this.index = parseInt(name.charAt(name.length - 1));
25
- this.octree = octree;
26
- this.geometry = null;
27
- this.boundingBox = boundingBox;
28
- this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere());
29
- this.children = {};
30
- this.numPoints = 0;
31
- this.level = null;
32
- this.loaded = false;
33
- this.oneTimeDisposeHandlers = [];
34
- }
35
- isGeometryNode() {
36
- return true;
37
- }
38
- getLevel() {
39
- return this.level;
40
- }
41
- isTreeNode() {
42
- return false;
43
- }
44
- isLoaded() {
45
- return this.loaded;
46
- }
47
- getBoundingSphere() {
48
- return this.boundingSphere;
49
- }
50
- getBoundingBox() {
51
- return this.boundingBox;
52
- }
53
- getChildren() {
54
- // Children is a length 8 array with nulls for "missing" octants
55
- return this.children.filter(Boolean);
56
- }
57
- getURL() {
58
- const { version } = this.octree;
59
- const hierarchyPath = version >= 1.5 ? `${this.getHierarchyPath()}/` : '';
60
- return `${this.octree.octreeDir}/${hierarchyPath}${this.name}`;
61
- }
62
- getHierarchyPath() {
63
- let path = 'r/';
64
- let hierarchyStepSize = this.octree.hierarchyStepSize;
65
- let indices = this.name.substr(1);
66
- let numParts = Math.floor(indices.length / hierarchyStepSize);
67
- for (let i = 0; i < numParts; i++) {
68
- path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';
15
+ export class PointCloudOctant {
16
+ constructor(name, octree, boundingBox) {
17
+ this.octree = this.id = PointCloudOctreeGeometryNode.IDCount++;
18
+ this.name = name;
19
+ this.index = parseInt(name.charAt(name.length - 1));
20
+ this.octree = octree;
21
+ this.geometry = null;
22
+ this.boundingBox = boundingBox;
23
+ this.boundingSphere = boundingBox.getBoundingSphere(new THREE.Sphere());
24
+ this.children = {};
25
+ this.numPoints = 0;
26
+ this.level = null;
27
+ this.loaded = false;
28
+ this.oneTimeDisposeHandlers = [];
29
+ }
30
+
31
+ isGeometryNode() {
32
+ return true;
33
+ }
34
+
35
+ getLevel() {
36
+ return this.level;
37
+ }
38
+
39
+ isTreeNode() {
40
+ return false;
41
+ }
42
+
43
+ isLoaded() {
44
+ return this.loaded;
45
+ }
46
+
47
+ getBoundingSphere() {
48
+ return this.boundingSphere;
49
+ }
50
+
51
+ getBoundingBox() {
52
+ return this.boundingBox;
53
+ }
54
+
55
+ getChildren() {
56
+ return this.children.filter(Boolean);
57
+ }
58
+
59
+ getURL() {
60
+ const {
61
+ version
62
+ } = this.octree;
63
+ const hierarchyPath = version >= 1.5 ? "".concat(this.getHierarchyPath(), "/") : '';
64
+ return "".concat(this.octree.octreeDir, "/").concat(hierarchyPath).concat(this.name);
65
+ }
66
+
67
+ getHierarchyPath() {
68
+ let path = 'r/';
69
+ let hierarchyStepSize = this.octree.hierarchyStepSize;
70
+ let indices = this.name.substr(1);
71
+ let numParts = Math.floor(indices.length / hierarchyStepSize);
72
+
73
+ for (let i = 0; i < numParts; i++) {
74
+ path += indices.substr(i * hierarchyStepSize, hierarchyStepSize) + '/';
75
+ }
76
+
77
+ path = path.slice(0, -1);
78
+ return path;
79
+ }
80
+
81
+ addChild(child) {
82
+ this.children[child.index] = child;
83
+ child.parent = this;
84
+ }
85
+
86
+ load() {
87
+ if (this.loading === true || this.loaded === true || Potree.numNodesLoading >= Potree.maxNodesLoading) {
88
+ return;
89
+ }
90
+
91
+ this.loading = true;
92
+ Potree.numNodesLoading++;
93
+
94
+ if (this.octree.loader.version.equalOrHigher('1.5')) {
95
+ if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {
96
+ this.loadHierachyThenPoints();
97
+ } else {
98
+ this.loadPoints();
99
+ }
100
+ } else {
101
+ this.loadPoints();
102
+ }
103
+ }
104
+
105
+ loadPoints() {
106
+ this.octree.loader.load(this);
107
+ }
108
+
109
+ loadHierachyThenPoints() {
110
+ let node = this;
111
+
112
+ let callback = function (node, hbuffer) {
113
+ let view = new DataView(hbuffer);
114
+ let stack = [];
115
+ let children = view.getUint8(0);
116
+ let numPoints = view.getUint32(1, true);
117
+ node.numPoints = numPoints;
118
+ stack.push({
119
+ children: children,
120
+ numPoints: numPoints,
121
+ name: node.name
122
+ });
123
+ let decoded = [];
124
+ let offset = 5;
125
+
126
+ while (stack.length > 0) {
127
+ let snode = stack.shift();
128
+ let mask = 1;
129
+
130
+ for (let i = 0; i < 8; i++) {
131
+ if ((snode.children & mask) !== 0) {
132
+ let childName = snode.name + i;
133
+ let childChildren = view.getUint8(offset);
134
+ let childNumPoints = view.getUint32(offset + 1, true);
135
+ stack.push({
136
+ children: childChildren,
137
+ numPoints: childNumPoints,
138
+ name: childName
139
+ });
140
+ decoded.push({
141
+ children: childChildren,
142
+ numPoints: childNumPoints,
143
+ name: childName
144
+ });
145
+ offset += 5;
146
+ }
147
+
148
+ mask = mask * 2;
69
149
  }
70
- path = path.slice(0, -1);
71
- return path;
72
- }
73
- addChild(child) {
74
- this.children[child.index] = child;
75
- child.parent = this;
76
- }
77
- load() {
78
- if (this.loading === true ||
79
- this.loaded === true ||
80
- Potree.numNodesLoading >= Potree.maxNodesLoading) {
81
- return;
82
- }
83
- this.loading = true;
84
- Potree.numNodesLoading++;
85
- if (this.octree.loader.version.equalOrHigher('1.5')) {
86
- if (this.level % this.octree.hierarchyStepSize === 0 && this.hasChildren) {
87
- this.loadHierachyThenPoints();
88
- }
89
- else {
90
- this.loadPoints();
91
- }
92
- }
93
- else {
94
- this.loadPoints();
95
- }
96
- }
97
- loadPoints() {
98
- this.octree.loader.load(this);
99
- }
100
- loadHierachyThenPoints() {
101
- let node = this;
102
- // load hierarchy
103
- let callback = function (node, hbuffer) {
104
- let view = new DataView(hbuffer);
105
- let stack = [];
106
- let children = view.getUint8(0);
107
- let numPoints = view.getUint32(1, true);
108
- node.numPoints = numPoints;
109
- stack.push({ children: children, numPoints: numPoints, name: node.name });
110
- let decoded = [];
111
- let offset = 5;
112
- while (stack.length > 0) {
113
- let snode = stack.shift();
114
- let mask = 1;
115
- for (let i = 0; i < 8; i++) {
116
- if ((snode.children & mask) !== 0) {
117
- let childName = snode.name + i;
118
- let childChildren = view.getUint8(offset);
119
- let childNumPoints = view.getUint32(offset + 1, true);
120
- stack.push({ children: childChildren, numPoints: childNumPoints, name: childName });
121
- decoded.push({ children: childChildren, numPoints: childNumPoints, name: childName });
122
- offset += 5;
123
- }
124
- mask = mask * 2;
125
- }
126
- if (offset === hbuffer.byteLength) {
127
- break;
128
- }
129
- }
130
- // console.log(decoded);
131
- let nodes = {};
132
- nodes[node.name] = node;
133
- let pco = node.pcoGeometry;
134
- for (let i = 0; i < decoded.length; i++) {
135
- let name = decoded[i].name;
136
- let decodedNumPoints = decoded[i].numPoints;
137
- let index = parseInt(name.charAt(name.length - 1));
138
- let parentName = name.substring(0, name.length - 1);
139
- let parentNode = nodes[parentName];
140
- let level = name.length - 1;
141
- let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index);
142
- let currentNode = new PointCloudOctreeGeometryNode(name, pco, boundingBox);
143
- currentNode.level = level;
144
- currentNode.numPoints = decodedNumPoints;
145
- currentNode.hasChildren = decoded[i].children > 0;
146
- currentNode.spacing = pco.spacing / Math.pow(2, level);
147
- parentNode.addChild(currentNode);
148
- nodes[name] = currentNode;
149
- }
150
- node.loadPoints();
151
- };
152
- if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {
153
- // let hurl = node.pcoGeometry.octreeDir + "/../hierarchy/" + node.name + ".hrc";
154
- let hurl = node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';
155
- let xhr = XHRFactory.createXMLHttpRequest();
156
- xhr.open('GET', hurl, true);
157
- xhr.responseType = 'arraybuffer';
158
- xhr.overrideMimeType('text/plain; charset=x-user-defined');
159
- xhr.onreadystatechange = () => {
160
- if (xhr.readyState === 4) {
161
- if (xhr.status === 200 || xhr.status === 0) {
162
- let hbuffer = xhr.response;
163
- callback(node, hbuffer);
164
- }
165
- else {
166
- console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + hurl);
167
- Potree.numNodesLoading--;
168
- }
169
- }
170
- };
171
- try {
172
- xhr.send(null);
173
- }
174
- catch (e) {
175
- console.log('fehler beim laden der punktwolke: ' + e);
176
- }
150
+
151
+ if (offset === hbuffer.byteLength) {
152
+ break;
177
153
  }
178
- }
179
- getNumPoints() {
180
- return this.numPoints;
181
- }
182
- dispose() {
183
- if (this.geometry && this.parent != null) {
184
- this.geometry.dispose();
185
- this.geometry = null;
186
- this.loaded = false;
187
- // this.dispatchEvent( { type: 'dispose' } );
188
- for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) {
189
- let handler = this.oneTimeDisposeHandlers[i];
190
- handler();
191
- }
192
- this.oneTimeDisposeHandlers = [];
154
+ }
155
+
156
+ let nodes = {};
157
+ nodes[node.name] = node;
158
+ let pco = node.pcoGeometry;
159
+
160
+ for (let i = 0; i < decoded.length; i++) {
161
+ let name = decoded[i].name;
162
+ let decodedNumPoints = decoded[i].numPoints;
163
+ let index = parseInt(name.charAt(name.length - 1));
164
+ let parentName = name.substring(0, name.length - 1);
165
+ let parentNode = nodes[parentName];
166
+ let level = name.length - 1;
167
+ let boundingBox = Utils.createChildAABB(parentNode.boundingBox, index);
168
+ let currentNode = new PointCloudOctreeGeometryNode(name, pco, boundingBox);
169
+ currentNode.level = level;
170
+ currentNode.numPoints = decodedNumPoints;
171
+ currentNode.hasChildren = decoded[i].children > 0;
172
+ currentNode.spacing = pco.spacing / Math.pow(2, level);
173
+ parentNode.addChild(currentNode);
174
+ nodes[name] = currentNode;
175
+ }
176
+
177
+ node.loadPoints();
178
+ };
179
+
180
+ if (node.level % node.pcoGeometry.hierarchyStepSize === 0) {
181
+ let hurl = node.pcoGeometry.octreeDir + '/' + node.getHierarchyPath() + '/' + node.name + '.hrc';
182
+ let xhr = XHRFactory.createXMLHttpRequest();
183
+ xhr.open('GET', hurl, true);
184
+ xhr.responseType = 'arraybuffer';
185
+ xhr.overrideMimeType('text/plain; charset=x-user-defined');
186
+
187
+ xhr.onreadystatechange = () => {
188
+ if (xhr.readyState === 4) {
189
+ if (xhr.status === 200 || xhr.status === 0) {
190
+ let hbuffer = xhr.response;
191
+ callback(node, hbuffer);
192
+ } else {
193
+ console.log('Failed to load file! HTTP status: ' + xhr.status + ', file: ' + hurl);
194
+ Potree.numNodesLoading--;
195
+ }
193
196
  }
194
- }
197
+ };
198
+
199
+ try {
200
+ xhr.send(null);
201
+ } catch (e) {
202
+ console.log('fehler beim laden der punktwolke: ' + e);
203
+ }
204
+ }
205
+ }
206
+
207
+ getNumPoints() {
208
+ return this.numPoints;
209
+ }
210
+
211
+ dispose() {
212
+ if (this.geometry && this.parent != null) {
213
+ this.geometry.dispose();
214
+ this.geometry = null;
215
+ this.loaded = false;
216
+
217
+ for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) {
218
+ let handler = this.oneTimeDisposeHandlers[i];
219
+ handler();
220
+ }
221
+
222
+ this.oneTimeDisposeHandlers = [];
223
+ }
224
+ }
225
+
195
226
  }
196
- exports.PointCloudOctant = PointCloudOctant;
197
227
  PointCloudOctreeGeometryNode.IDCount = 0;
228
+ //# sourceMappingURL=octree.js.map
@@ -0,0 +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,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function parsePotreeBin(arrayBuffer, byteOffset, options, index) {
4
- return null;
1
+ export default function parsePotreeBin(arrayBuffer, byteOffset, options, index) {
2
+ return null;
5
3
  }
6
- exports.default = parsePotreeBin;
4
+ //# sourceMappingURL=parse-potree-bin.js.map
@@ -0,0 +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"}