MCPcopy Create free account
hub / github.com/BladeTransformerLLC/gauzilla / load

Function load

spz.js:66–141  ·  view source on GitHub ↗
(url)

Source from the content-addressed store, hash-verified

64
65
66async function load(url) {
67 let pointer = null;
68
69 const instance = await SpzSingleton.getInstance();
70 console.log('spz.js: load(): Wasm instance loaded:', instance);
71
72 try {
73 // download byte array from url created in main thread
74 const response = await fetch(url);
75 if (!response.ok) {
76 throw new Error(`spz.js: load(): Failed to fetch data: ${response.status}`);
77 }
78 URL.revokeObjectURL(url);
79 const buffer = await response.arrayBuffer();
80 const spzData = new Uint8Array(buffer);
81 console.log('spz.js: load(): spzData.length=', spzData.length);
82
83 // let wasm allocate memory for spzData
84 pointer = instance._malloc(Uint8Array.BYTES_PER_ELEMENT * spzData.length);
85 if (pointer === null) {
86 throw new Error("spz.js: load(): couldn't allocate memory");
87 }
88 instance.HEAPU8.set(spzData, pointer / Uint8Array.BYTES_PER_ELEMENT);
89
90 // generate raw gaussian cloud from spzData
91 const rawGsCloud = instance.load_spz(pointer, spzData.length);
92 console.log('spz.js: load(): rawGsCloud.numPoints=', rawGsCloud.numPoints);
93 //console.log('spz.js: load(): rawGsCloud.shDegree=', rawGsCloud.shDegree);
94 //console.log('spz.js: load(): rawGsCloud.antialiased=', rawGsCloud.antialiased);
95
96 let options = null;
97 const gaussianCloud = createGaussianCloudFromRaw(instance, rawGsCloud, options);
98 disposeRawGSCloud(instance, rawGsCloud);
99 console.log('spz.js: load(): gaussianCloud.numPoints=', gaussianCloud.numPoints);
100 //console.log('spz.js: load(): gaussianCloud.shDegree=', gaussianCloud.shDegree);
101 //console.log('spz.js: load(): gaussianCloud.antialiased=', gaussianCloud.antialiased);
102 //console.log('spz.js: load(): gaussianCloud.positions.length=', gaussianCloud.positions.length);
103 //console.log('spz.js: load(): gaussianCloud.scales.length=', gaussianCloud.scales.length);
104 //console.log('spz.js: load(): gaussianCloud.rotations.length=', gaussianCloud.rotations.length);
105 //console.log('spz.js: load(): gaussianCloud.alphas.length=', gaussianCloud.alphas.length);
106 //console.log('spz.js: load(): gaussianCloud.colors.length=', gaussianCloud.colors.length);
107 //console.log('spz.js: load(): gaussianCloud.sh.length=', gaussianCloud.sh.length);
108
109 // Using transferable objects to avoid data copies
110 self.postMessage({
111 status: 'loaded',
112 gaussianCloud: {
113 numPoints: gaussianCloud.numPoints,
114 shDegree: gaussianCloud.shDegree,
115 antialiased: gaussianCloud.antialiased,
116 positions: gaussianCloud.positions.buffer,
117 scales: gaussianCloud.scales.buffer,
118 rotations: gaussianCloud.rotations.buffer,
119 alphas: gaussianCloud.alphas.buffer,
120 colors: gaussianCloud.colors.buffer,
121 sh: gaussianCloud.sh.buffer,
122 }
123 }, [

Callers 1

spz.jsFile · 0.85

Calls 3

disposeRawGSCloudFunction · 0.85
getInstanceMethod · 0.80

Tested by

no test coverage detected