xl-public-utils 1.0.24 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/drcUtils.js +14 -14
- package/src/utils.js +2 -2
package/package.json
CHANGED
package/src/drcUtils.js
CHANGED
|
@@ -18,7 +18,7 @@ import { int8ArrayToBase64 } from './utils.js'
|
|
|
18
18
|
export function enCodeMeshByVF(vertices, faces, byteLength = 14, attr =undefined) {
|
|
19
19
|
const facesFlat = faces;
|
|
20
20
|
const pointFlat = vertices;
|
|
21
|
-
const encoderModule =
|
|
21
|
+
const encoderModule = globalThis.encoderModule
|
|
22
22
|
const encoder = new encoderModule.Encoder();
|
|
23
23
|
const meshBuilder = new encoderModule.MeshBuilder();
|
|
24
24
|
const dracoMesh = new encoderModule.Mesh();
|
|
@@ -60,7 +60,7 @@ export function enCodeMeshByVF(vertices, faces, byteLength = 14, attr =undefined
|
|
|
60
60
|
* @returns {Int8Array} 压缩之后的drc data
|
|
61
61
|
*/
|
|
62
62
|
export function enCodePointCloud(points) {
|
|
63
|
-
const encoderModule =
|
|
63
|
+
const encoderModule = globalThis.encoderModule
|
|
64
64
|
const encoder = new encoderModule.Encoder();
|
|
65
65
|
const pointCloudBuilder = new encoderModule.PointCloudBuilder();
|
|
66
66
|
const dracoPointCloud = new encoderModule.PointCloud();
|
|
@@ -128,7 +128,7 @@ export function decodeDrcBufferArray(byteArray) {
|
|
|
128
128
|
* @returns {Decoder} drc解压类
|
|
129
129
|
*/
|
|
130
130
|
export function decodeBuffer(arrayBuffer) {
|
|
131
|
-
const decoderModule =
|
|
131
|
+
const decoderModule = globalThis.decoderModule;
|
|
132
132
|
var byteArray = new Int8Array(arrayBuffer);
|
|
133
133
|
var decoder = new decoderModule.Decoder();
|
|
134
134
|
var decoderBuffer = new decoderModule.DecoderBuffer();
|
|
@@ -163,7 +163,7 @@ export function decodeBuffer(arrayBuffer) {
|
|
|
163
163
|
* @returns {DrcMeshData} decoder中的网格信息
|
|
164
164
|
*/
|
|
165
165
|
function getPolyDataFromDracoGeometry(dracoGeometry) {
|
|
166
|
-
const decoderModule =
|
|
166
|
+
const decoderModule = globalThis.decoderModule;
|
|
167
167
|
var decoder = new decoderModule.Decoder(); // Get position attribute ID
|
|
168
168
|
|
|
169
169
|
var positionAttributeId = decoder.GetAttributeId(dracoGeometry, decoderModule.POSITION);
|
|
@@ -231,7 +231,7 @@ function getPolyDataFromDracoGeometry(dracoGeometry) {
|
|
|
231
231
|
* @returns {Float32Array} 点
|
|
232
232
|
*/
|
|
233
233
|
function getPointCloudFromDracoGeometry(dracoGeometry) {
|
|
234
|
-
const decoderModule =
|
|
234
|
+
const decoderModule = globalThis.decoderModule;
|
|
235
235
|
var decoder = new decoderModule.Decoder(); // Get position attribute ID
|
|
236
236
|
|
|
237
237
|
var positionAttributeId = decoder.GetAttributeId(dracoGeometry, decoderModule.POSITION);
|
|
@@ -254,7 +254,7 @@ function getPointCloudFromDracoGeometry(dracoGeometry) {
|
|
|
254
254
|
* @returns {Float32Array} 对应decoder中的属性
|
|
255
255
|
*/
|
|
256
256
|
export function getDracoAttributeAsFloat32Array(dracoGeometry, attributeId) {
|
|
257
|
-
const decoderModule =
|
|
257
|
+
const decoderModule = globalThis.decoderModule;
|
|
258
258
|
var decoder = new decoderModule.Decoder();
|
|
259
259
|
var attribute = decoder.GetAttribute(dracoGeometry, attributeId);
|
|
260
260
|
var numberOfComponents = attribute.num_components();
|
|
@@ -329,21 +329,21 @@ export function enCodeMesh(mesh, byteLength = 14, attr = undefined) {
|
|
|
329
329
|
* 初始化Draco文件
|
|
330
330
|
*/
|
|
331
331
|
export function initDrcCoder() {
|
|
332
|
-
if (!
|
|
332
|
+
if (!globalThis.encoderModule) {
|
|
333
333
|
const timerEncoder = setInterval(() => {
|
|
334
|
-
if (
|
|
335
|
-
|
|
336
|
-
|
|
334
|
+
if (globalThis.DracoEncoderModule) {
|
|
335
|
+
globalThis.DracoEncoderModule().then((res) => {
|
|
336
|
+
globalThis.encoderModule = res;
|
|
337
337
|
});
|
|
338
338
|
clearInterval(timerEncoder);
|
|
339
339
|
}
|
|
340
340
|
}, 50);
|
|
341
341
|
}
|
|
342
|
-
if (!
|
|
342
|
+
if (!globalThis.decoderModule) {
|
|
343
343
|
const timerDecoder = setInterval(() => {
|
|
344
|
-
if (
|
|
345
|
-
|
|
346
|
-
|
|
344
|
+
if (globalThis.DracoDecoderModule) {
|
|
345
|
+
globalThis.DracoDecoderModule().then((res) => {
|
|
346
|
+
globalThis.decoderModule = res;
|
|
347
347
|
function a() {
|
|
348
348
|
return res;
|
|
349
349
|
}
|
package/src/utils.js
CHANGED
|
@@ -38,7 +38,7 @@ export const detectZoom = getRatio;
|
|
|
38
38
|
*/
|
|
39
39
|
|
|
40
40
|
export function base64ToArrayBuffer(base64String) {
|
|
41
|
-
const binary_string =
|
|
41
|
+
const binary_string = globalThis.atob(base64String);
|
|
42
42
|
const len = binary_string.length;
|
|
43
43
|
const bytes = new Uint8Array(len);
|
|
44
44
|
for (var i = 0; i < len; i++) {
|
|
@@ -58,7 +58,7 @@ export function int8ArrayToBase64(int8) {
|
|
|
58
58
|
for (let i = 0; i < data.length; i++) {
|
|
59
59
|
base64String += String.fromCharCode(data[i])
|
|
60
60
|
}
|
|
61
|
-
return
|
|
61
|
+
return globalThis.btoa(base64String)
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
|