@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.
- package/dist/bundle.js +2 -2
- package/dist/bundle.js.map +1 -0
- package/dist/index.js +4 -9
- package/dist/index.js.map +1 -0
- package/dist/lib/octree.js +222 -191
- package/dist/lib/octree.js.map +1 -0
- package/dist/parsers/parse-potree-bin.js +3 -5
- package/dist/parsers/parse-potree-bin.js.map +1 -0
- package/dist/parsers/parse-potree-hierarchy-chunk.js +71 -117
- package/dist/parsers/parse-potree-hierarchy-chunk.js.map +1 -0
- package/dist/potree-bin-loader.js +14 -24
- package/dist/potree-bin-loader.js.map +1 -0
- package/dist/potree-hierarchy-chunk-loader.js +12 -20
- package/dist/potree-hierarchy-chunk-loader.js.map +1 -0
- package/dist/potree-loader.js +14 -20
- package/dist/potree-loader.js.map +1 -0
- package/package.json +5 -5
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/index.js +0 -30
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/octree.js +0 -260
- package/dist/es5/lib/octree.js.map +0 -1
- package/dist/es5/parsers/parse-potree-bin.js +0 -11
- package/dist/es5/parsers/parse-potree-bin.js.map +0 -1
- package/dist/es5/parsers/parse-potree-hierarchy-chunk.js +0 -112
- package/dist/es5/parsers/parse-potree-hierarchy-chunk.js.map +0 -1
- package/dist/es5/potree-bin-loader.js +0 -28
- package/dist/es5/potree-bin-loader.js.map +0 -1
- package/dist/es5/potree-hierarchy-chunk-loader.js +0 -55
- package/dist/es5/potree-hierarchy-chunk-loader.js.map +0 -1
- package/dist/es5/potree-loader.js +0 -26
- package/dist/es5/potree-loader.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/octree.js +0 -228
- package/dist/esm/lib/octree.js.map +0 -1
- package/dist/esm/parsers/parse-potree-bin.js +0 -4
- package/dist/esm/parsers/parse-potree-bin.js.map +0 -1
- package/dist/esm/parsers/parse-potree-hierarchy-chunk.js +0 -83
- package/dist/esm/parsers/parse-potree-hierarchy-chunk.js.map +0 -1
- package/dist/esm/potree-bin-loader.js +0 -17
- package/dist/esm/potree-bin-loader.js.map +0 -1
- package/dist/esm/potree-hierarchy-chunk-loader.js +0 -15
- package/dist/esm/potree-hierarchy-chunk-loader.js.map +0 -1
- package/dist/esm/potree-loader.js +0 -15
- package/dist/esm/potree-loader.js.map +0 -1
package/dist/bundle.js
CHANGED
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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"}
|
package/dist/lib/octree.js
CHANGED
|
@@ -1,197 +1,228 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
|
|
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
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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"}
|