Buckets:
| ; | |
| Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); | |
| const THREE = require("three"); | |
| class XYZLoader extends THREE.Loader { | |
| load(url, onLoad, onProgress, onError) { | |
| const scope = this; | |
| const loader = new THREE.FileLoader(this.manager); | |
| loader.setPath(this.path); | |
| loader.setRequestHeader(this.requestHeader); | |
| loader.setWithCredentials(this.withCredentials); | |
| loader.load( | |
| url, | |
| function(text) { | |
| try { | |
| onLoad(scope.parse(text)); | |
| } catch (e) { | |
| if (onError) { | |
| onError(e); | |
| } else { | |
| console.error(e); | |
| } | |
| scope.manager.itemError(url); | |
| } | |
| }, | |
| onProgress, | |
| onError | |
| ); | |
| } | |
| parse(text) { | |
| const lines = text.split("\n"); | |
| const vertices = []; | |
| const colors = []; | |
| for (let line of lines) { | |
| line = line.trim(); | |
| if (line.charAt(0) === "#") | |
| continue; | |
| const lineValues = line.split(/\s+/); | |
| if (lineValues.length === 3) { | |
| vertices.push(parseFloat(lineValues[0])); | |
| vertices.push(parseFloat(lineValues[1])); | |
| vertices.push(parseFloat(lineValues[2])); | |
| } | |
| if (lineValues.length === 6) { | |
| vertices.push(parseFloat(lineValues[0])); | |
| vertices.push(parseFloat(lineValues[1])); | |
| vertices.push(parseFloat(lineValues[2])); | |
| colors.push(parseFloat(lineValues[3]) / 255); | |
| colors.push(parseFloat(lineValues[4]) / 255); | |
| colors.push(parseFloat(lineValues[5]) / 255); | |
| } | |
| } | |
| const geometry = new THREE.BufferGeometry(); | |
| geometry.setAttribute("position", new THREE.Float32BufferAttribute(vertices, 3)); | |
| if (colors.length > 0) { | |
| geometry.setAttribute("color", new THREE.Float32BufferAttribute(colors, 3)); | |
| } | |
| return geometry; | |
| } | |
| } | |
| exports.XYZLoader = XYZLoader; | |
| //# sourceMappingURL=XYZLoader.cjs.map | |
Xet Storage Details
- Size:
- 1.91 kB
- Xet hash:
- bbcad945655d1587372a2b513986e5a5ac10840d0729a983f10495604e28be86
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.