@loaders.gl/potree 3.4.0-alpha.1 → 3.4.0-alpha.3

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 +1 @@
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
+ {"version":3,"file":"index.js","names":["_potreeLoader","require","_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,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA"}
@@ -124,7 +124,6 @@ var PointCloudOctant = function () {
124
124
  key: "loadHierachyThenPoints",
125
125
  value: function loadHierachyThenPoints() {
126
126
  var node = this;
127
-
128
127
  var callback = function callback(node, hbuffer) {
129
128
  var view = new DataView(hbuffer);
130
129
  var stack = [];
@@ -164,7 +163,6 @@ var PointCloudOctant = function () {
164
163
  break;
165
164
  }
166
165
  }
167
-
168
166
  var nodes = {};
169
167
  nodes[node.name] = node;
170
168
  var pco = node.pcoGeometry;
@@ -222,7 +220,6 @@ var PointCloudOctant = function () {
222
220
  this.geometry.dispose();
223
221
  this.geometry = null;
224
222
  this.loaded = false;
225
-
226
223
  for (var i = 0; i < this.oneTimeDisposeHandlers.length; i++) {
227
224
  var handler = this.oneTimeDisposeHandlers[i];
228
225
  handler();
@@ -1 +1 @@
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":";;;;;;;;;IAIaA,gBAAgB,8BAC3B,4BAAc;EAAA;EACZ,IAAI,CAACC,GAAG,GAAG,IAAI;EACf,IAAI,CAACC,SAAS,GAAG,IAAI;EACrB,IAAI,CAACC,OAAO,GAAG,CAAC;EAChB,IAAI,CAACC,WAAW,GAAG,IAAI;EACvB,IAAI,CAACC,IAAI,GAAG,IAAI;EAChB,IAAI,CAACC,KAAK,GAAG,IAAI;EACjB,IAAI,CAACC,eAAe,GAAG,IAAI;EAC3B,IAAI,CAACC,iBAAiB,GAAG,CAAC,CAAC;EAC3B,IAAI,CAACC,MAAM,GAAG,IAAI;AACpB,CAAC;AAAA;AAAA,IAGUC,gBAAgB;EAC3B,0BAAYC,IAAI,EAAEC,MAAM,EAAER,WAAW,EAAE;IAAA;IACrC,IAAI,CAACQ,MAAM,GAAG,IAAI,CAACC,EAAE,GAAGC,4BAA4B,CAACC,OAAO,EAAE;IAC9D,IAAI,CAACJ,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACK,KAAK,GAAGC,QAAQ,CAACN,IAAI,CAACO,MAAM,CAACP,IAAI,CAACQ,MAAM,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,CAACP,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACQ,QAAQ,GAAG,IAAI;IACpB,IAAI,CAAChB,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACiB,cAAc,GAAGjB,WAAW,CAACkB,iBAAiB,CAAC,IAAIC,KAAK,CAACC,MAAM,EAAE,CAAC;IACvE,IAAI,CAACC,QAAQ,GAAG,CAAC,CAAC;IAClB,IAAI,CAACC,SAAS,GAAG,CAAC;IAClB,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACC,MAAM,GAAG,KAAK;IACnB,IAAI,CAACC,sBAAsB,GAAG,EAAE;EAClC;EAAC;IAAA;IAAA,OAED,0BAAiB;MACf,OAAO,IAAI;IACb;EAAC;IAAA;IAAA,OAED,oBAAW;MACT,OAAO,IAAI,CAACF,KAAK;IACnB;EAAC;IAAA;IAAA,OAED,sBAAa;MACX,OAAO,KAAK;IACd;EAAC;IAAA;IAAA,OAED,oBAAW;MACT,OAAO,IAAI,CAACC,MAAM;IACpB;EAAC;IAAA;IAAA,OAED,6BAAoB;MAClB,OAAO,IAAI,CAACP,cAAc;IAC5B;EAAC;IAAA;IAAA,OAED,0BAAiB;MACf,OAAO,IAAI,CAACjB,WAAW;IACzB;EAAC;IAAA;IAAA,OAED,uBAAc;MAEZ,OAAO,IAAI,CAACqB,QAAQ,CAACK,MAAM,CAACC,OAAO,CAAC;IACtC;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,IAAOC,OAAO,GAAI,IAAI,CAACpB,MAAM,CAAtBoB,OAAO;MACd,IAAMC,aAAa,GAAGD,OAAO,IAAI,GAAG,aAAM,IAAI,CAACE,gBAAgB,EAAE,SAAM,EAAE;MACzE,iBAAU,IAAI,CAACtB,MAAM,CAACV,SAAS,cAAI+B,aAAa,SAAG,IAAI,CAACtB,IAAI;IAC9D;EAAC;IAAA;IAAA,OAED,4BAAmB;MACjB,IAAIwB,IAAI,GAAG,IAAI;MAEf,IAAI3B,iBAAiB,GAAG,IAAI,CAACI,MAAM,CAACJ,iBAAiB;MACrD,IAAI4B,OAAO,GAAG,IAAI,CAACzB,IAAI,CAAC0B,MAAM,CAAC,CAAC,CAAC;MAEjC,IAAIC,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACJ,OAAO,CAACjB,MAAM,GAAGX,iBAAiB,CAAC;MAC7D,KAAK,IAAIiC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,EAAEG,CAAC,EAAE,EAAE;QACjCN,IAAI,IAAIC,OAAO,CAACC,MAAM,CAACI,CAAC,GAAGjC,iBAAiB,EAAEA,iBAAiB,CAAC,GAAG,GAAG;MACxE;MAEA2B,IAAI,GAAGA,IAAI,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MAExB,OAAOP,IAAI;IACb;EAAC;IAAA;IAAA,OAED,kBAASQ,KAAK,EAAE;MACd,IAAI,CAAClB,QAAQ,CAACkB,KAAK,CAAC3B,KAAK,CAAC,GAAG2B,KAAK;MAClCA,KAAK,CAACC,MAAM,GAAG,IAAI;IACrB;EAAC;IAAA;IAAA,OAED,gBAAO;MACL,IACE,IAAI,CAACC,OAAO,KAAK,IAAI,IACrB,IAAI,CAACjB,MAAM,KAAK,IAAI,IACpBkB,MAAM,CAACC,eAAe,IAAID,MAAM,CAACE,eAAe,EAChD;QACA;MACF;MAEA,IAAI,CAACH,OAAO,GAAG,IAAI;MAEnBC,MAAM,CAACC,eAAe,EAAE;MAExB,IAAI,IAAI,CAACnC,MAAM,CAACH,MAAM,CAACuB,OAAO,CAACiB,aAAa,CAAC,KAAK,CAAC,EAAE;QACnD,IAAI,IAAI,CAACtB,KAAK,GAAG,IAAI,CAACf,MAAM,CAACJ,iBAAiB,KAAK,CAAC,IAAI,IAAI,CAAC0C,WAAW,EAAE;UACxE,IAAI,CAACC,sBAAsB,EAAE;QAC/B,CAAC,MAAM;UACL,IAAI,CAACC,UAAU,EAAE;QACnB;MACF,CAAC,MAAM;QACL,IAAI,CAACA,UAAU,EAAE;MACnB;IACF;EAAC;IAAA;IAAA,OAED,sBAAa;MACX,IAAI,CAACxC,MAAM,CAACH,MAAM,CAAC4C,IAAI,CAAC,IAAI,CAAC;IAC/B;EAAC;IAAA;IAAA,OAED,kCAAyB;MACvB,IAAIC,IAAI,GAAG,IAAI;;MAGf,IAAIC,QAAQ,GAAG,SAAXA,QAAQ,CAAaD,IAAI,EAAEE,OAAO,EAAE;QACtC,IAAIC,IAAI,GAAG,IAAIC,QAAQ,CAACF,OAAO,CAAC;QAEhC,IAAIG,KAAK,GAAG,EAAE;QACd,IAAIlC,QAAQ,GAAGgC,IAAI,CAACG,QAAQ,CAAC,CAAC,CAAC;QAC/B,IAAIlC,SAAS,GAAG+B,IAAI,CAACI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;QACvCP,IAAI,CAAC5B,SAAS,GAAGA,SAAS;QAC1BiC,KAAK,CAACG,IAAI,CAAC;UAACrC,QAAQ,EAAEA,QAAQ;UAAEC,SAAS,EAAEA,SAAS;UAAEf,IAAI,EAAE2C,IAAI,CAAC3C;QAAI,CAAC,CAAC;QAEvE,IAAIoD,OAAO,GAAG,EAAE;QAEhB,IAAIC,MAAM,GAAG,CAAC;QACd,OAAOL,KAAK,CAACxC,MAAM,GAAG,CAAC,EAAE;UACvB,IAAI8C,KAAK,GAAGN,KAAK,CAACO,KAAK,EAAE;UACzB,IAAIC,IAAI,GAAG,CAAC;UACZ,KAAK,IAAI1B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;YAC1B,IAAI,CAACwB,KAAK,CAACxC,QAAQ,GAAG0C,IAAI,MAAM,CAAC,EAAE;cACjC,IAAIC,SAAS,GAAGH,KAAK,CAACtD,IAAI,GAAG8B,CAAC;cAE9B,IAAI4B,aAAa,GAAGZ,IAAI,CAACG,QAAQ,CAACI,MAAM,CAAC;cACzC,IAAIM,cAAc,GAAGb,IAAI,CAACI,SAAS,CAACG,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC;cAErDL,KAAK,CAACG,IAAI,CAAC;gBAACrC,QAAQ,EAAE4C,aAAa;gBAAE3C,SAAS,EAAE4C,cAAc;gBAAE3D,IAAI,EAAEyD;cAAS,CAAC,CAAC;cAEjFL,OAAO,CAACD,IAAI,CAAC;gBAACrC,QAAQ,EAAE4C,aAAa;gBAAE3C,SAAS,EAAE4C,cAAc;gBAAE3D,IAAI,EAAEyD;cAAS,CAAC,CAAC;cAEnFJ,MAAM,IAAI,CAAC;YACb;YAEAG,IAAI,GAAGA,IAAI,GAAG,CAAC;UACjB;UAEA,IAAIH,MAAM,KAAKR,OAAO,CAACe,UAAU,EAAE;YACjC;UACF;QACF;;QAIA,IAAIjE,KAAK,GAAG,CAAC,CAAC;QACdA,KAAK,CAACgD,IAAI,CAAC3C,IAAI,CAAC,GAAG2C,IAAI;QACvB,IAAIkB,GAAG,GAAGlB,IAAI,CAACmB,WAAW;QAE1B,KAAK,IAAIhC,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGsB,OAAO,CAAC5C,MAAM,EAAEsB,EAAC,EAAE,EAAE;UACvC,IAAI9B,IAAI,GAAGoD,OAAO,CAACtB,EAAC,CAAC,CAAC9B,IAAI;UAC1B,IAAI+D,gBAAgB,GAAGX,OAAO,CAACtB,EAAC,CAAC,CAACf,SAAS;UAC3C,IAAIV,KAAK,GAAGC,QAAQ,CAACN,IAAI,CAACO,MAAM,CAACP,IAAI,CAACQ,MAAM,GAAG,CAAC,CAAC,CAAC;UAClD,IAAIwD,UAAU,GAAGhE,IAAI,CAACiE,SAAS,CAAC,CAAC,EAAEjE,IAAI,CAACQ,MAAM,GAAG,CAAC,CAAC;UACnD,IAAI0D,UAAU,GAAGvE,KAAK,CAACqE,UAAU,CAAC;UAClC,IAAIhD,KAAK,GAAGhB,IAAI,CAACQ,MAAM,GAAG,CAAC;UAC3B,IAAIf,WAAW,GAAG0E,KAAK,CAACC,eAAe,CAACF,UAAU,CAACzE,WAAW,EAAEY,KAAK,CAAC;UAEtE,IAAIgE,WAAW,GAAG,IAAIlE,4BAA4B,CAACH,IAAI,EAAE6D,GAAG,EAAEpE,WAAW,CAAC;UAC1E4E,WAAW,CAACrD,KAAK,GAAGA,KAAK;UACzBqD,WAAW,CAACtD,SAAS,GAAGgD,gBAAgB;UACxCM,WAAW,CAAC9B,WAAW,GAAGa,OAAO,CAACtB,EAAC,CAAC,CAAChB,QAAQ,GAAG,CAAC;UACjDuD,WAAW,CAAC7E,OAAO,GAAGqE,GAAG,CAACrE,OAAO,GAAGoC,IAAI,CAAC0C,GAAG,CAAC,CAAC,EAAEtD,KAAK,CAAC;UACtDkD,UAAU,CAACK,QAAQ,CAACF,WAAW,CAAC;UAChC1E,KAAK,CAACK,IAAI,CAAC,GAAGqE,WAAW;QAC3B;QAEA1B,IAAI,CAACF,UAAU,EAAE;MACnB,CAAC;MACD,IAAIE,IAAI,CAAC3B,KAAK,GAAG2B,IAAI,CAACmB,WAAW,CAACjE,iBAAiB,KAAK,CAAC,EAAE;QAEzD,IAAI2E,IAAI,GACN7B,IAAI,CAACmB,WAAW,CAACvE,SAAS,GAAG,GAAG,GAAGoD,IAAI,CAACpB,gBAAgB,EAAE,GAAG,GAAG,GAAGoB,IAAI,CAAC3C,IAAI,GAAG,MAAM;QAEvF,IAAIyE,GAAG,GAAGC,UAAU,CAACC,oBAAoB,EAAE;QAC3CF,GAAG,CAACG,IAAI,CAAC,KAAK,EAAEJ,IAAI,EAAE,IAAI,CAAC;QAC3BC,GAAG,CAACI,YAAY,GAAG,aAAa;QAChCJ,GAAG,CAACK,gBAAgB,CAAC,oCAAoC,CAAC;QAC1DL,GAAG,CAACM,kBAAkB,GAAG,YAAM;UAC7B,IAAIN,GAAG,CAACO,UAAU,KAAK,CAAC,EAAE;YACxB,IAAIP,GAAG,CAACQ,MAAM,KAAK,GAAG,IAAIR,GAAG,CAACQ,MAAM,KAAK,CAAC,EAAE;cAC1C,IAAIpC,OAAO,GAAG4B,GAAG,CAACS,QAAQ;cAC1BtC,QAAQ,CAACD,IAAI,EAAEE,OAAO,CAAC;YACzB,CAAC,MAAM;cACLsC,OAAO,CAACC,GAAG,CAAC,oCAAoC,GAAGX,GAAG,CAACQ,MAAM,GAAG,UAAU,GAAGT,IAAI,CAAC;cAClFrC,MAAM,CAACC,eAAe,EAAE;YAC1B;UACF;QACF,CAAC;QACD,IAAI;UACFqC,GAAG,CAACY,IAAI,CAAC,IAAI,CAAC;QAChB,CAAC,CAAC,OAAOC,CAAC,EAAE;UACVH,OAAO,CAACC,GAAG,CAAC,oCAAoC,GAAGE,CAAC,CAAC;QACvD;MACF;IACF;EAAC;IAAA;IAAA,OAED,wBAAe;MACb,OAAO,IAAI,CAACvE,SAAS;IACvB;EAAC;IAAA;IAAA,OAED,mBAAU;MACR,IAAI,IAAI,CAACN,QAAQ,IAAI,IAAI,CAACwB,MAAM,IAAI,IAAI,EAAE;QACxC,IAAI,CAACxB,QAAQ,CAAC8E,OAAO,EAAE;QACvB,IAAI,CAAC9E,QAAQ,GAAG,IAAI;QACpB,IAAI,CAACQ,MAAM,GAAG,KAAK;;QAGnB,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACZ,sBAAsB,CAACV,MAAM,EAAEsB,CAAC,EAAE,EAAE;UAC3D,IAAI0D,OAAO,GAAG,IAAI,CAACtE,sBAAsB,CAACY,CAAC,CAAC;UAC5C0D,OAAO,EAAE;QACX;QACA,IAAI,CAACtE,sBAAsB,GAAG,EAAE;MAClC;IACF;EAAC;EAAA;AAAA;AAAA;AAGHf,4BAA4B,CAACC,OAAO,GAAG,CAAC"}
1
+ {"version":3,"file":"octree.js","names":["PointCloudOctree","_createClass2","default","_classCallCheck2","url","octreeDir","spacing","boundingBox","root","nodes","pointAttributes","hierarchyStepSize","loader","exports","PointCloudOctant","name","octree","id","PointCloudOctreeGeometryNode","IDCount","index","parseInt","charAt","length","geometry","boundingSphere","getBoundingSphere","THREE","Sphere","children","numPoints","level","loaded","oneTimeDisposeHandlers","key","value","isGeometryNode","getLevel","isTreeNode","isLoaded","getBoundingBox","getChildren","filter","Boolean","getURL","version","hierarchyPath","concat","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,"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
+ {"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,cAAcA,CACpCC,WAAwB,EACxBC,UAAkB,EAClBC,OAAgB,EAChBC,KAAU,EACV;EACA,OAAO,IAAI;AACb"}
@@ -8,20 +8,17 @@ exports.default = parsePotreeHierarchyChunk;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
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; } } }; }
10
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); }
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; }
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; }
12
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
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; }
14
-
15
14
  function parsePotreeHierarchyChunk(arrayBuffer) {
16
15
  var tileHeaders = parseBinaryChunk(arrayBuffer);
17
16
  return buildHierarchy(tileHeaders);
18
17
  }
19
-
20
18
  function parseBinaryChunk(arrayBuffer) {
21
19
  var byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
22
20
  var dataView = new DataView(arrayBuffer);
23
21
  var stack = [];
24
-
25
22
  var topTileHeader = {};
26
23
  byteOffset = decodeRow(dataView, byteOffset, topTileHeader);
27
24
  stack.push(topTileHeader);
@@ -55,7 +52,6 @@ function decodeRow(dataView, byteOffset, tileHeader) {
55
52
  byteOffset += 5;
56
53
  return byteOffset;
57
54
  }
58
-
59
55
  function buildHierarchy(tileHeaders) {
60
56
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
61
57
  var DEFAULT_OPTIONS = {
@@ -74,21 +70,17 @@ function buildHierarchy(tileHeaders) {
74
70
  var parentName = name.substring(0, name.length - 1);
75
71
  var parentNode = nodes[parentName];
76
72
  var level = name.length - 1;
77
-
78
73
  tileHeader.level = level;
79
74
  tileHeader.hasChildren = tileHeader.header.childCount;
80
75
  tileHeader.children = [];
81
76
  tileHeader.childrenByIndex = new Array(8).fill(null);
82
77
  tileHeader.spacing = options.spacing / Math.pow(2, level);
83
-
84
78
  if (parentNode) {
85
79
  parentNode.children.push(tileHeader);
86
80
  parentNode.childrenByIndex[index] = tileHeader;
87
81
  }
88
-
89
82
  nodes[name] = tileHeader;
90
83
  }
91
-
92
84
  } catch (err) {
93
85
  _iterator.e(err);
94
86
  } finally {
@@ -1 +1 @@
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
+ {"version":3,"file":"parse-potree-hierarchy-chunk.js","names":["parsePotreeHierarchyChunk","arrayBuffer","tileHeaders","parseBinaryChunk","buildHierarchy","byteOffset","arguments","length","undefined","dataView","DataView","stack","topTileHeader","decodeRow","push","snode","shift","mask","i","header","childMask","tileHeader","name","childCount","byteLength","getUint8","pointCount","getUint32","options","DEFAULT_OPTIONS","spacing","_objectSpread","topNode","nodes","_iterator","_createForOfIteratorHelper","_step","s","n","done","value","index","parseInt","charAt","parentName","substring","parentNode","level","hasChildren","children","childrenByIndex","Array","fill","Math","pow","err","e","f"],"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 +1 @@
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
+ {"version":3,"file":"potree-bin-loader.js","names":["_parsePotreeBin","_interopRequireDefault","require","PotreeBinLoader","name","id","extensions","mimeTypes","parseSync","binary","exports","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,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMO,IAAMC,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;AAACC,OAAA,CAAAP,eAAA,GAAAA,eAAA;AAEF,SAASK,SAASA,CAACG,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"}
@@ -16,17 +16,15 @@ var PotreeHierarchyChunkLoader = {
16
16
  parse: function () {
17
17
  var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
18
18
  return _regenerator.default.wrap(function _callee$(_context) {
19
- while (1) {
20
- switch (_context.prev = _context.next) {
21
- case 0:
22
- _context.next = 2;
23
- return parseSync(arrayBuffer);
24
- case 2:
25
- return _context.abrupt("return", _context.sent);
26
- case 3:
27
- case "end":
28
- return _context.stop();
29
- }
19
+ while (1) switch (_context.prev = _context.next) {
20
+ case 0:
21
+ _context.next = 2;
22
+ return parseSync(arrayBuffer);
23
+ case 2:
24
+ return _context.abrupt("return", _context.sent);
25
+ case 3:
26
+ case "end":
27
+ return _context.stop();
30
28
  }
31
29
  }, _callee);
32
30
  }));
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"potree-hierarchy-chunk-loader.js","names":["_parsePotreeHierarchyChunk","_interopRequireDefault","require","PotreeHierarchyChunkLoader","id","name","extensions","mimeTypes","parse","_parse","_asyncToGenerator2","default","_regenerator","mark","_callee","arrayBuffer","options","wrap","_callee$","_context","prev","next","parseSync","abrupt","sent","stop","_x","_x2","apply","arguments","binary","exports","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,IAAAA,0BAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIO,IAAMC,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,IAAAC,MAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,WAAW,EAAEC,OAAO;MAAA,OAAAJ,YAAA,CAAAD,OAAA,CAAAM,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAAWC,SAAS,CAACP,WAAW,CAAC;UAAA;YAAA,OAAAI,QAAA,CAAAI,MAAA,WAAAJ,QAAA,CAAAK,IAAA;UAAA;UAAA;YAAA,OAAAL,QAAA,CAAAM,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,MAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,MAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,KAAA;EAAA;EACnEc,SAAS,EAATA,SAAS;EACTQ,MAAM,EAAE;AACV,CAAC;AAACC,OAAA,CAAA5B,0BAAA,GAAAA,0BAAA;AAEF,SAASmB,SAASA,CAACP,WAAW,EAAE;EAC9B,OAAO,IAAAiB,kCAAyB,EAACjB,WAAW,CAAC;AAC/C"}
@@ -4,8 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PotreeLoader = void 0;
7
- var VERSION = typeof "3.4.0-alpha.1" !== 'undefined' ? "3.4.0-alpha.1" : 'latest';
8
-
7
+ var VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
9
8
  var PotreeLoader = {
10
9
  name: 'potree',
11
10
  id: 'potree',
@@ -1 +1 @@
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
+ {"version":3,"file":"potree-loader.js","names":["VERSION","PotreeLoader","name","id","module","version","extensions","mimeTypes","testText","text","indexOf","parseTextSync","JSON","parse","options","potree","exports"],"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,SAAAA,SAACC,IAAI;IAAA,OAAKA,IAAI,CAACC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;EAAA;EAClDC,aAAa,EAAE,SAAAA,cAACF,IAAI;IAAA,OAAKG,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC;EAAA;EACzCK,OAAO,EAAE;IACPC,MAAM,EAAE,CAAC;EACX;AACF,CAAC;AAACC,OAAA,CAAAf,YAAA,GAAAA,YAAA"}
@@ -1,4 +1,3 @@
1
-
2
1
  const moduleExports = require('./index');
3
2
  globalThis.loaders = globalThis.loaders || {};
4
3
  module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1 +1 @@
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
+ {"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,5 +1,3 @@
1
-
2
-
3
1
  export class PointCloudOctree {
4
2
  constructor() {
5
3
  this.url = null;
@@ -92,7 +90,6 @@ export class PointCloudOctant {
92
90
  }
93
91
  loadHierachyThenPoints() {
94
92
  let node = this;
95
-
96
93
  let callback = function (node, hbuffer) {
97
94
  let view = new DataView(hbuffer);
98
95
  let stack = [];
@@ -132,7 +129,6 @@ export class PointCloudOctant {
132
129
  break;
133
130
  }
134
131
  }
135
-
136
132
  let nodes = {};
137
133
  nodes[node.name] = node;
138
134
  let pco = node.pcoGeometry;
@@ -186,7 +182,6 @@ export class PointCloudOctant {
186
182
  this.geometry.dispose();
187
183
  this.geometry = null;
188
184
  this.loaded = false;
189
-
190
185
  for (let i = 0; i < this.oneTimeDisposeHandlers.length; i++) {
191
186
  let handler = this.oneTimeDisposeHandlers[i];
192
187
  handler();
@@ -1 +1 @@
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
+ {"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","concat","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":"AAIA,OAAO,MAAMA,gBAAgB,CAAC;EAC5BC,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACC,GAAG,GAAG,IAAI;IACf,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB,IAAI,CAACC,OAAO,GAAG,CAAC;IAChB,IAAI,CAACC,WAAW,GAAG,IAAI;IACvB,IAAI,CAACC,IAAI,GAAG,IAAI;IAChB,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACC,eAAe,GAAG,IAAI;IAC3B,IAAI,CAACC,iBAAiB,GAAG,CAAC,CAAC;IAC3B,IAAI,CAACC,MAAM,GAAG,IAAI;EACpB;AACF;AAEA,OAAO,MAAMC,gBAAgB,CAAC;EAC5BV,WAAWA,CAACW,IAAI,EAAEC,MAAM,EAAER,WAAW,EAAE;IACrC,IAAI,CAACQ,MAAM,GAAG,IAAI,CAACC,EAAE,GAAGC,4BAA4B,CAACC,OAAO,EAAE;IAC9D,IAAI,CAACJ,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACK,KAAK,GAAGC,QAAQ,CAACN,IAAI,CAACO,MAAM,CAACP,IAAI,CAACQ,MAAM,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,CAACP,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACQ,QAAQ,GAAG,IAAI;IACpB,IAAI,CAAChB,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACiB,cAAc,GAAGjB,WAAW,CAACkB,iBAAiB,CAAC,IAAIC,KAAK,CAACC,MAAM,EAAE,CAAC;IACvE,IAAI,CAACC,QAAQ,GAAG,CAAC,CAAC;IAClB,IAAI,CAACC,SAAS,GAAG,CAAC;IAClB,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACC,MAAM,GAAG,KAAK;IACnB,IAAI,CAACC,sBAAsB,GAAG,EAAE;EAClC;EAEAC,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI;EACb;EAEAC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACJ,KAAK;EACnB;EAEAK,UAAUA,CAAA,EAAG;IACX,OAAO,KAAK;EACd;EAEAC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACL,MAAM;EACpB;EAEAN,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACD,cAAc;EAC5B;EAEAa,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC9B,WAAW;EACzB;EAEA+B,WAAWA,CAAA,EAAG;IAEZ,OAAO,IAAI,CAACV,QAAQ,CAACW,MAAM,CAACC,OAAO,CAAC;EACtC;EAEAC,MAAMA,CAAA,EAAG;IACP,MAAM;MAACC;IAAO,CAAC,GAAG,IAAI,CAAC3B,MAAM;IAC7B,MAAM4B,aAAa,GAAGD,OAAO,IAAI,GAAG,MAAAE,MAAA,CAAM,IAAI,CAACC,gBAAgB,EAAE,SAAM,EAAE;IACzE,UAAAD,MAAA,CAAU,IAAI,CAAC7B,MAAM,CAACV,SAAS,OAAAuC,MAAA,CAAID,aAAa,EAAAC,MAAA,CAAG,IAAI,CAAC9B,IAAI;EAC9D;EAEA+B,gBAAgBA,CAAA,EAAG;IACjB,IAAIC,IAAI,GAAG,IAAI;IAEf,IAAInC,iBAAiB,GAAG,IAAI,CAACI,MAAM,CAACJ,iBAAiB;IACrD,IAAIoC,OAAO,GAAG,IAAI,CAACjC,IAAI,CAACkC,MAAM,CAAC,CAAC,CAAC;IAEjC,IAAIC,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACJ,OAAO,CAACzB,MAAM,GAAGX,iBAAiB,CAAC;IAC7D,KAAK,IAAIyC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,QAAQ,EAAEG,CAAC,EAAE,EAAE;MACjCN,IAAI,IAAIC,OAAO,CAACC,MAAM,CAACI,CAAC,GAAGzC,iBAAiB,EAAEA,iBAAiB,CAAC,GAAG,GAAG;IACxE;IAEAmC,IAAI,GAAGA,IAAI,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAExB,OAAOP,IAAI;EACb;EAEAQ,QAAQA,CAACC,KAAK,EAAE;IACd,IAAI,CAAC3B,QAAQ,CAAC2B,KAAK,CAACpC,KAAK,CAAC,GAAGoC,KAAK;IAClCA,KAAK,CAACC,MAAM,GAAG,IAAI;EACrB;EAEAC,IAAIA,CAAA,EAAG;IACL,IACE,IAAI,CAACC,OAAO,KAAK,IAAI,IACrB,IAAI,CAAC3B,MAAM,KAAK,IAAI,IACpB4B,MAAM,CAACC,eAAe,IAAID,MAAM,CAACE,eAAe,EAChD;MACA;IACF;IAEA,IAAI,CAACH,OAAO,GAAG,IAAI;IAEnBC,MAAM,CAACC,eAAe,EAAE;IAExB,IAAI,IAAI,CAAC7C,MAAM,CAACH,MAAM,CAAC8B,OAAO,CAACoB,aAAa,CAAC,KAAK,CAAC,EAAE;MACnD,IAAI,IAAI,CAAChC,KAAK,GAAG,IAAI,CAACf,MAAM,CAACJ,iBAAiB,KAAK,CAAC,IAAI,IAAI,CAACoD,WAAW,EAAE;QACxE,IAAI,CAACC,sBAAsB,EAAE;MAC/B,CAAC,MAAM;QACL,IAAI,CAACC,UAAU,EAAE;MACnB;IACF,CAAC,MAAM;MACL,IAAI,CAACA,UAAU,EAAE;IACnB;EACF;EAEAA,UAAUA,CAAA,EAAG;IACX,IAAI,CAAClD,MAAM,CAACH,MAAM,CAAC6C,IAAI,CAAC,IAAI,CAAC;EAC/B;EAEAO,sBAAsBA,CAAA,EAAG;IACvB,IAAIE,IAAI,GAAG,IAAI;IAGf,IAAIC,QAAQ,GAAG,SAAAA,CAAUD,IAAI,EAAEE,OAAO,EAAE;MACtC,IAAIC,IAAI,GAAG,IAAIC,QAAQ,CAACF,OAAO,CAAC;MAEhC,IAAIG,KAAK,GAAG,EAAE;MACd,IAAI3C,QAAQ,GAAGyC,IAAI,CAACG,QAAQ,CAAC,CAAC,CAAC;MAC/B,IAAI3C,SAAS,GAAGwC,IAAI,CAACI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC;MACvCP,IAAI,CAACrC,SAAS,GAAGA,SAAS;MAC1B0C,KAAK,CAACG,IAAI,CAAC;QAAC9C,QAAQ,EAAEA,QAAQ;QAAEC,SAAS,EAAEA,SAAS;QAAEf,IAAI,EAAEoD,IAAI,CAACpD;MAAI,CAAC,CAAC;MAEvE,IAAI6D,OAAO,GAAG,EAAE;MAEhB,IAAIC,MAAM,GAAG,CAAC;MACd,OAAOL,KAAK,CAACjD,MAAM,GAAG,CAAC,EAAE;QACvB,IAAIuD,KAAK,GAAGN,KAAK,CAACO,KAAK,EAAE;QACzB,IAAIC,IAAI,GAAG,CAAC;QACZ,KAAK,IAAI3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;UAC1B,IAAI,CAACyB,KAAK,CAACjD,QAAQ,GAAGmD,IAAI,MAAM,CAAC,EAAE;YACjC,IAAIC,SAAS,GAAGH,KAAK,CAAC/D,IAAI,GAAGsC,CAAC;YAE9B,IAAI6B,aAAa,GAAGZ,IAAI,CAACG,QAAQ,CAACI,MAAM,CAAC;YACzC,IAAIM,cAAc,GAAGb,IAAI,CAACI,SAAS,CAACG,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC;YAErDL,KAAK,CAACG,IAAI,CAAC;cAAC9C,QAAQ,EAAEqD,aAAa;cAAEpD,SAAS,EAAEqD,cAAc;cAAEpE,IAAI,EAAEkE;YAAS,CAAC,CAAC;YAEjFL,OAAO,CAACD,IAAI,CAAC;cAAC9C,QAAQ,EAAEqD,aAAa;cAAEpD,SAAS,EAAEqD,cAAc;cAAEpE,IAAI,EAAEkE;YAAS,CAAC,CAAC;YAEnFJ,MAAM,IAAI,CAAC;UACb;UAEAG,IAAI,GAAGA,IAAI,GAAG,CAAC;QACjB;QAEA,IAAIH,MAAM,KAAKR,OAAO,CAACe,UAAU,EAAE;UACjC;QACF;MACF;MAIA,IAAI1E,KAAK,GAAG,CAAC,CAAC;MACdA,KAAK,CAACyD,IAAI,CAACpD,IAAI,CAAC,GAAGoD,IAAI;MACvB,IAAIkB,GAAG,GAAGlB,IAAI,CAACmB,WAAW;MAE1B,KAAK,IAAIjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuB,OAAO,CAACrD,MAAM,EAAE8B,CAAC,EAAE,EAAE;QACvC,IAAItC,IAAI,GAAG6D,OAAO,CAACvB,CAAC,CAAC,CAACtC,IAAI;QAC1B,IAAIwE,gBAAgB,GAAGX,OAAO,CAACvB,CAAC,CAAC,CAACvB,SAAS;QAC3C,IAAIV,KAAK,GAAGC,QAAQ,CAACN,IAAI,CAACO,MAAM,CAACP,IAAI,CAACQ,MAAM,GAAG,CAAC,CAAC,CAAC;QAClD,IAAIiE,UAAU,GAAGzE,IAAI,CAAC0E,SAAS,CAAC,CAAC,EAAE1E,IAAI,CAACQ,MAAM,GAAG,CAAC,CAAC;QACnD,IAAImE,UAAU,GAAGhF,KAAK,CAAC8E,UAAU,CAAC;QAClC,IAAIzD,KAAK,GAAGhB,IAAI,CAACQ,MAAM,GAAG,CAAC;QAC3B,IAAIf,WAAW,GAAGmF,KAAK,CAACC,eAAe,CAACF,UAAU,CAAClF,WAAW,EAAEY,KAAK,CAAC;QAEtE,IAAIyE,WAAW,GAAG,IAAI3E,4BAA4B,CAACH,IAAI,EAAEsE,GAAG,EAAE7E,WAAW,CAAC;QAC1EqF,WAAW,CAAC9D,KAAK,GAAGA,KAAK;QACzB8D,WAAW,CAAC/D,SAAS,GAAGyD,gBAAgB;QACxCM,WAAW,CAAC7B,WAAW,GAAGY,OAAO,CAACvB,CAAC,CAAC,CAACxB,QAAQ,GAAG,CAAC;QACjDgE,WAAW,CAACtF,OAAO,GAAG8E,GAAG,CAAC9E,OAAO,GAAG4C,IAAI,CAAC2C,GAAG,CAAC,CAAC,EAAE/D,KAAK,CAAC;QACtD2D,UAAU,CAACnC,QAAQ,CAACsC,WAAW,CAAC;QAChCnF,KAAK,CAACK,IAAI,CAAC,GAAG8E,WAAW;MAC3B;MAEA1B,IAAI,CAACD,UAAU,EAAE;IACnB,CAAC;IACD,IAAIC,IAAI,CAACpC,KAAK,GAAGoC,IAAI,CAACmB,WAAW,CAAC1E,iBAAiB,KAAK,CAAC,EAAE;MAEzD,IAAImF,IAAI,GACN5B,IAAI,CAACmB,WAAW,CAAChF,SAAS,GAAG,GAAG,GAAG6D,IAAI,CAACrB,gBAAgB,EAAE,GAAG,GAAG,GAAGqB,IAAI,CAACpD,IAAI,GAAG,MAAM;MAEvF,IAAIiF,GAAG,GAAGC,UAAU,CAACC,oBAAoB,EAAE;MAC3CF,GAAG,CAACG,IAAI,CAAC,KAAK,EAAEJ,IAAI,EAAE,IAAI,CAAC;MAC3BC,GAAG,CAACI,YAAY,GAAG,aAAa;MAChCJ,GAAG,CAACK,gBAAgB,CAAC,oCAAoC,CAAC;MAC1DL,GAAG,CAACM,kBAAkB,GAAG,MAAM;QAC7B,IAAIN,GAAG,CAACO,UAAU,KAAK,CAAC,EAAE;UACxB,IAAIP,GAAG,CAACQ,MAAM,KAAK,GAAG,IAAIR,GAAG,CAACQ,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAInC,OAAO,GAAG2B,GAAG,CAACS,QAAQ;YAC1BrC,QAAQ,CAACD,IAAI,EAAEE,OAAO,CAAC;UACzB,CAAC,MAAM;YACLqC,OAAO,CAACC,GAAG,CAAC,oCAAoC,GAAGX,GAAG,CAACQ,MAAM,GAAG,UAAU,GAAGT,IAAI,CAAC;YAClFnC,MAAM,CAACC,eAAe,EAAE;UAC1B;QACF;MACF,CAAC;MACD,IAAI;QACFmC,GAAG,CAACY,IAAI,CAAC,IAAI,CAAC;MAChB,CAAC,CAAC,OAAOC,CAAC,EAAE;QACVH,OAAO,CAACC,GAAG,CAAC,oCAAoC,GAAGE,CAAC,CAAC;MACvD;IACF;EACF;EAEAC,YAAYA,CAAA,EAAG;IACb,OAAO,IAAI,CAAChF,SAAS;EACvB;EAEAiF,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAACvF,QAAQ,IAAI,IAAI,CAACiC,MAAM,IAAI,IAAI,EAAE;MACxC,IAAI,CAACjC,QAAQ,CAACuF,OAAO,EAAE;MACvB,IAAI,CAACvF,QAAQ,GAAG,IAAI;MACpB,IAAI,CAACQ,MAAM,GAAG,KAAK;MAGnB,KAAK,IAAIqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACpB,sBAAsB,CAACV,MAAM,EAAE8B,CAAC,EAAE,EAAE;QAC3D,IAAI2D,OAAO,GAAG,IAAI,CAAC/E,sBAAsB,CAACoB,CAAC,CAAC;QAC5C2D,OAAO,EAAE;MACX;MACA,IAAI,CAAC/E,sBAAsB,GAAG,EAAE;IAClC;EACF;AACF;AAEAf,4BAA4B,CAACC,OAAO,GAAG,CAAC"}
@@ -1 +1 @@
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
+ {"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,cAAcA,CACpCC,WAAwB,EACxBC,UAAkB,EAClBC,OAAgB,EAChBC,KAAU,EACV;EACA,OAAO,IAAI;AACb"}
@@ -1,15 +1,11 @@
1
-
2
-
3
1
  export default function parsePotreeHierarchyChunk(arrayBuffer) {
4
2
  const tileHeaders = parseBinaryChunk(arrayBuffer);
5
3
  return buildHierarchy(tileHeaders);
6
4
  }
7
-
8
5
  function parseBinaryChunk(arrayBuffer) {
9
6
  let byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
10
7
  const dataView = new DataView(arrayBuffer);
11
8
  const stack = [];
12
-
13
9
  const topTileHeader = {};
14
10
  byteOffset = decodeRow(dataView, byteOffset, topTileHeader);
15
11
  stack.push(topTileHeader);
@@ -43,7 +39,6 @@ function decodeRow(dataView, byteOffset, tileHeader) {
43
39
  byteOffset += 5;
44
40
  return byteOffset;
45
41
  }
46
-
47
42
  function buildHierarchy(tileHeaders) {
48
43
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
49
44
  const DEFAULT_OPTIONS = {
@@ -63,21 +58,17 @@ function buildHierarchy(tileHeaders) {
63
58
  const parentName = name.substring(0, name.length - 1);
64
59
  const parentNode = nodes[parentName];
65
60
  const level = name.length - 1;
66
-
67
61
  tileHeader.level = level;
68
62
  tileHeader.hasChildren = tileHeader.header.childCount;
69
63
  tileHeader.children = [];
70
64
  tileHeader.childrenByIndex = new Array(8).fill(null);
71
65
  tileHeader.spacing = options.spacing / Math.pow(2, level);
72
-
73
66
  if (parentNode) {
74
67
  parentNode.children.push(tileHeader);
75
68
  parentNode.childrenByIndex[index] = tileHeader;
76
69
  }
77
-
78
70
  nodes[name] = tileHeader;
79
71
  }
80
-
81
72
  return topNode;
82
73
  }
83
74
  //# sourceMappingURL=parse-potree-hierarchy-chunk.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"parse-potree-hierarchy-chunk.js","names":["parsePotreeHierarchyChunk","arrayBuffer","tileHeaders","parseBinaryChunk","buildHierarchy","byteOffset","arguments","length","undefined","dataView","DataView","stack","topTileHeader","decodeRow","push","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,5 +1,4 @@
1
1
  import { default as parsePotreeBin } from './parsers/parse-potree-bin';
2
-
3
2
  export const PotreeBinLoader = {
4
3
  name: 'potree Binary Point Attributes',
5
4
  id: 'potree',
@@ -1 +1 @@
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
+ {"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,SAASA,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,5 +1,4 @@
1
1
  import { default as parsePotreeHierarchyChunk } from './parsers/parse-potree-hierarchy-chunk';
2
-
3
2
  export const PotreeHierarchyChunkLoader = {
4
3
  id: 'potree',
5
4
  name: 'potree Hierarchy Chunk',
@@ -1 +1 @@
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
+ {"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,MAAAA,CAAOC,WAAW,EAAEC,OAAO,KAAK,MAAMC,SAAS,CAACF,WAAW,CAAC;EACnEE,SAAS;EACTC,MAAM,EAAE;AACV,CAAC;AAED,SAASD,SAASA,CAACF,WAAW,EAAE;EAC9B,OAAOP,yBAAyB,CAACO,WAAW,CAAC;AAC/C"}
@@ -1,6 +1,4 @@
1
-
2
- const VERSION = typeof "3.4.0-alpha.1" !== 'undefined' ? "3.4.0-alpha.1" : 'latest';
3
-
1
+ const VERSION = typeof "3.4.0-alpha.3" !== 'undefined' ? "3.4.0-alpha.3" : 'latest';
4
2
  export const PotreeLoader = {
5
3
  name: 'potree',
6
4
  id: 'potree',
@@ -1 +1 @@
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"}
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.4.0-alpha.1",
3
+ "version": "3.4.0-alpha.3",
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.4.0-alpha.1",
38
+ "@loaders.gl/math": "3.4.0-alpha.3",
39
39
  "@math.gl/core": "^3.5.1"
40
40
  },
41
- "gitHead": "4085b0323050e4361614471319a1fb4729547bbf"
41
+ "gitHead": "a954528dd1d78a1f128d8f6b07e4baeb7a296924"
42
42
  }