xl-public-utils 1.0.6 → 1.0.8
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/index.d.ts +965 -901
- package/index.js +5 -5
- package/package.json +33 -8
- package/src/{bwip-js.mjs → bwip-js.js} +1 -1
- package/src/{drcUtils.mjs → drcUtils.js} +4 -4
- package/src/{exportPLY.mjs → exportPLY.js} +1 -2
- package/src/{exportSTL.mjs → exportSTL.js} +1 -1
- package/src/{qrcode.mjs → qrcode.js} +1 -1
- package/src/{utils.mjs → utils.js} +10 -0
- package/src/{vtkUtils.mjs → vtkUtils.js} +252 -27
- package/tsconfig.json +2 -2
- package/types/{bwip-js.d.mts → bwip-js.d.ts} +1 -1
- package/types/{drcUtils.d.mts → drcUtils.d.ts} +5 -5
- package/types/{exportPLY.d.mts → exportPLY.d.ts} +1 -1
- package/types/{exportSTL.d.mts → exportSTL.d.ts} +1 -1
- package/types/{utils.d.mts → utils.d.ts} +6 -0
- package/types/{vtkUtils.d.mts → vtkUtils.d.ts} +81 -12
- /package/src/{bwipp.mjs → bwipp.js} +0 -0
- /package/types/{bwipp.d.mts → bwipp.d.ts} +0 -0
- /package/types/{qrcode.d.mts → qrcode.d.ts} +0 -0
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
import vtkInteractorStyleManipulator from "@kitware/vtk.js/Interaction/Style/InteractorStyleManipulator"
|
|
3
|
-
import { vec3, mat4, mat3 } from 'gl-matrix';
|
|
4
|
-
import vtkRenderer from "@kitware/vtk.js/Rendering/Core/Renderer";
|
|
5
|
-
import vtkRenderWindowInteractor from "@kitware/vtk.js/Rendering/Core/RenderWindowInteractor";
|
|
6
|
-
import vtkPolyData from "@kitware/vtk.js/Common/DataModel/PolyData";
|
|
7
1
|
/**
|
|
8
2
|
* 计算屏幕坐标到三维坐标
|
|
9
3
|
* @param {vtkRenderer} renderer vtkRenderer
|
|
@@ -160,12 +154,18 @@ export function createPlyBlob(mesh: vtkPolyData, format?: "ascii" | "binary"): B
|
|
|
160
154
|
* @returns {Blob} 网格的BinarySTL文件Blob
|
|
161
155
|
*/
|
|
162
156
|
export function createStlBlob(mesh: vtkPolyData): Blob;
|
|
157
|
+
/**
|
|
158
|
+
* @typedef {Object} Mesh
|
|
159
|
+
* @property {number[][] | vec3[]} vertices 点信息
|
|
160
|
+
* @property {number[][] | vec3[]} faces 面信息
|
|
161
|
+
*/
|
|
163
162
|
/**
|
|
164
163
|
* 将网格压缩为drc文件,导出drc需要先加载draco_encode.js,并调用initDrcCoder初始化
|
|
165
|
-
* @param {vtkPolyData} mesh 网格文件
|
|
164
|
+
* @param {vtkPolyData | Mesh} mesh 网格文件
|
|
165
|
+
* @param {number} byteLength=14 压缩率
|
|
166
166
|
* @returns {Blob} drc文件
|
|
167
167
|
*/
|
|
168
|
-
export function createDrcBlob(mesh: vtkPolyData): Blob;
|
|
168
|
+
export function createDrcBlob(mesh: vtkPolyData | Mesh, byteLength?: number): Blob;
|
|
169
169
|
/**
|
|
170
170
|
* 将网格输出为对应类型的Blob,均采用默认参数,导出drc需要先加载draco_encode.js,并调用initDrcCoder初始化
|
|
171
171
|
* @param {vtkPolyData} mesh 网格文件
|
|
@@ -173,6 +173,12 @@ export function createDrcBlob(mesh: vtkPolyData): Blob;
|
|
|
173
173
|
* @returns {Blob} 对应类型的Blob
|
|
174
174
|
*/
|
|
175
175
|
export function createMeshTypeBlob(mesh: vtkPolyData, type: "ply" | "stl" | "drc"): Blob;
|
|
176
|
+
/**
|
|
177
|
+
* vtkPolyData的顶点去重 用于3倍顶点的stl和老版本的vtkMarchingCube
|
|
178
|
+
* @param {vtkPolyData} data 网格的vtkPolyData
|
|
179
|
+
* @returns {vtkPolyData} 去重之后的vtkPolyData
|
|
180
|
+
*/
|
|
181
|
+
export function deduplicatePolyData(data: vtkPolyData): vtkPolyData;
|
|
176
182
|
/**
|
|
177
183
|
* 计算一组三维点的中心点
|
|
178
184
|
* @param {vec3[]} points 三维点数组
|
|
@@ -235,12 +241,13 @@ export function convMatrix2EularZYX(rmat: mat3, eular: [number, number, number])
|
|
|
235
241
|
*/
|
|
236
242
|
export function convEular2matrixZYX(rmat: mat3, xangle: number, yangle: number, zangle: number): mat3;
|
|
237
243
|
/**
|
|
238
|
-
* 将
|
|
239
|
-
* @param {vtkPolyData} mesh
|
|
244
|
+
* 将polyData转换为Base64string
|
|
245
|
+
* @param {vtkPolyData | Mesh} mesh 网格数据
|
|
240
246
|
* @param {mat4} [matrix] 变换矩阵
|
|
247
|
+
* @param {number} byteLength=14 压缩率
|
|
241
248
|
* @returns {string} drc压缩之后的网格base64
|
|
242
249
|
*/
|
|
243
|
-
export function enCodeMeshToBase64(mesh: vtkPolyData, matrix?: mat4): string;
|
|
250
|
+
export function enCodeMeshToBase64(mesh: vtkPolyData | Mesh, matrix?: mat4, byteLength?: number): string;
|
|
244
251
|
/**
|
|
245
252
|
* 将一圈有序点按指定size进行平滑
|
|
246
253
|
* @param {vec3[]} points 一圈有序点
|
|
@@ -268,6 +275,43 @@ export function smaPointNotRound(points: vec3[], smaSize?: number): vec3[];
|
|
|
268
275
|
* @returns {AxisObject} 三个轴向
|
|
269
276
|
*/
|
|
270
277
|
export function getAxisFormMat4(matrix: mat4): AxisObject;
|
|
278
|
+
/**
|
|
279
|
+
* 判断一个矩阵是否是正交矩阵
|
|
280
|
+
* @param {mat4} matrix 矩阵
|
|
281
|
+
* @returns {boolean} 是否是正交矩阵
|
|
282
|
+
*/
|
|
283
|
+
export function isRotationMatrix(matrix: mat4): boolean;
|
|
284
|
+
/**
|
|
285
|
+
* 将vtkPolyData进行三角化
|
|
286
|
+
* @param {vtkPolyData} polydata 需要三角化的vtkPolydata
|
|
287
|
+
* @returns {vtkPolyData} 三角化之后的vtkPolydata
|
|
288
|
+
*/
|
|
289
|
+
export function trianglePolys(polydata: vtkPolyData): vtkPolyData;
|
|
290
|
+
/**
|
|
291
|
+
* 加载网格
|
|
292
|
+
* @param {string | File | Blob} file 文件或者文件链接
|
|
293
|
+
* @param {'drc' | 'stl' | 'ply'} [type] 文件类型,当file为string | File的时候可以不传根据文件后缀自动获取,drc需要先进行初始化
|
|
294
|
+
* @param {boolean} [process] 是否需要预先对数据进行处理,stl默认(去重)
|
|
295
|
+
* @returns {Promise<vtkPolyData>} vtkPolyData
|
|
296
|
+
*/
|
|
297
|
+
export function loadMeshData(file: string | File | Blob, type?: "drc" | "stl" | "ply", process?: boolean): Promise<vtkPolyData>;
|
|
298
|
+
/**
|
|
299
|
+
* @typedef Plane
|
|
300
|
+
* @property {vec3} origin 对应vtk坐标系的x值
|
|
301
|
+
* @property {vec3} normal 对应vtk坐标系的y值
|
|
302
|
+
*/
|
|
303
|
+
/**
|
|
304
|
+
* 将一组离散的三维点是使用PCA拟合一个平面结果和最小二乘结果近似
|
|
305
|
+
* @param {vec3[]} points 三维点
|
|
306
|
+
* @returns {Plane| null} 拟合的平面
|
|
307
|
+
*/
|
|
308
|
+
export function pcaFitPlane(points: vec3[]): Plane | null;
|
|
309
|
+
/**
|
|
310
|
+
* 计算一组 3D 点的最佳拟合平面(最小二乘法)。
|
|
311
|
+
* @param {Array<vec3>} points - 3D 点数组,每个点是一个 vec3 向量。
|
|
312
|
+
* @returns {Plane|null} - 返回平面的 origin(质心)和 normal(法向量),如果点数少于 3 个则返回 null。
|
|
313
|
+
*/
|
|
314
|
+
export function leastSquaresFitPlane(points: Array<vec3>): Plane | null;
|
|
271
315
|
/**
|
|
272
316
|
* 计算 w2l(word 2 local, word to local) 的变换矩阵
|
|
273
317
|
* @param {vec3} center 中心点
|
|
@@ -286,7 +330,16 @@ export function getmatw2l(center: vec3, xaxis: vec3, yaxis: vec3, zaxis: vec3):
|
|
|
286
330
|
* @returns { mat4 } 变换矩阵
|
|
287
331
|
*/
|
|
288
332
|
export function getmatofl2w(center: vec3, xaxis: vec3, yaxis: vec3, zaxis: vec3): mat4;
|
|
289
|
-
export
|
|
333
|
+
export type Mesh = {
|
|
334
|
+
/**
|
|
335
|
+
* 点信息
|
|
336
|
+
*/
|
|
337
|
+
vertices: number[][] | vec3[];
|
|
338
|
+
/**
|
|
339
|
+
* 面信息
|
|
340
|
+
*/
|
|
341
|
+
faces: number[][] | vec3[];
|
|
342
|
+
};
|
|
290
343
|
export type Position = {
|
|
291
344
|
/**
|
|
292
345
|
* 对应vtk坐标系的x值
|
|
@@ -318,3 +371,19 @@ export type AxisObject = {
|
|
|
318
371
|
*/
|
|
319
372
|
z: vec3;
|
|
320
373
|
};
|
|
374
|
+
export type Plane = {
|
|
375
|
+
/**
|
|
376
|
+
* 对应vtk坐标系的x值
|
|
377
|
+
*/
|
|
378
|
+
origin: vec3;
|
|
379
|
+
/**
|
|
380
|
+
* 对应vtk坐标系的y值
|
|
381
|
+
*/
|
|
382
|
+
normal: vec3;
|
|
383
|
+
};
|
|
384
|
+
import vtkRenderer from "@kitware/vtk.js/Rendering/Core/Renderer.js";
|
|
385
|
+
import { vec3 } from 'gl-matrix';
|
|
386
|
+
import { mat4 } from 'gl-matrix';
|
|
387
|
+
import vtkRenderWindowInteractor from "@kitware/vtk.js/Rendering/Core/RenderWindowInteractor.js";
|
|
388
|
+
import vtkPolyData from "@kitware/vtk.js/Common/DataModel/PolyData.js";
|
|
389
|
+
import { mat3 } from 'gl-matrix';
|
|
File without changes
|
|
File without changes
|
|
File without changes
|