rm-webgpu-compute-tasks 0.0.4 → 0.0.6

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rm-webgpu-compute-tasks",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
package/src/index.d.ts CHANGED
@@ -283,6 +283,29 @@ declare interface IData {
283
283
  }[];
284
284
  }
285
285
 
286
+ declare interface IItemsFile {
287
+ cameraMat: number[];
288
+ extrinsicMat: number[];
289
+ filename: string;
290
+ imageSize: [number, number];
291
+ position: {
292
+ x: number;
293
+ y: number;
294
+ z: number;
295
+ };
296
+ quaternion: {
297
+ x: number;
298
+ y: number;
299
+ z: number;
300
+ w: number;
301
+ };
302
+ sam3Objects: {
303
+ category: string;
304
+ objId: string;
305
+ coordinates: [number, number][];
306
+ }[];
307
+ }
308
+
286
309
  declare type InitOption = {
287
310
  featureLevel?: string;
288
311
  powerPreference?: GPUPowerPreference;
@@ -487,7 +510,11 @@ export declare class Renderer {
487
510
  }
488
511
 
489
512
  export declare const segmentObjectPointClouds: typeof sopc_ & {
490
- getResult(opt: Option_2): Promise<number[][][]>;
513
+ getResult(opt: Option_2): Promise<{
514
+ results: number[][][];
515
+ objIds: string[][];
516
+ itemsFiles: IItemsFile[];
517
+ }>;
491
518
  };
492
519
 
493
520
  export declare const shaderLocationMap: Map<string, number>;
@@ -592,6 +619,8 @@ declare function sopc_(opt: Option_2): Promise<{
592
619
  camera: PerspectiveCamera;
593
620
  results: number[][][];
594
621
  pointsArray: Float32Array<ArrayBufferLike>;
622
+ objIds: string[][];
623
+ itemsFiles: IItemsFile[];
595
624
  }>;
596
625
 
597
626
  export declare class Texture {
package/src/index.js CHANGED
@@ -3190,7 +3190,12 @@ async function sopc_(opt) {
3190
3190
  console.log("开始计算");
3191
3191
  let t = performance.now();
3192
3192
  await initWebgpu();
3193
- const canvasWidth = window?.innerWidth ?? 256, canvasHeight = window?.innerHeight ?? 256, renderer = new Renderer(canvasWidth, canvasHeight, "rgba8unorm"), camera = new PerspectiveCamera(75, canvasWidth / canvasHeight, 1e-3, 100), { points: pointsArray, itemsFiles, width, height } = await load(base, urls), pointCount = pointsArray.length / 3, pcIndexMaterial = new PointCloudsIndexMaterial(width, height), polyAreaIndexMaterial = new PolyAreaIndexMaterial(width, height), erodeMaskComputeMaterial = new ErodeMaskComputeMaterial(width, height, polyAreaIndexMaterial.resultTexture, erodeMaskSize), sopcComputeMaterial = new SOPCComputeMaterial(width, height, pointCount, pcIndexMaterial.resultTexture, kernelSize), points = new Object3D(
3193
+ let canvasWidth = 256, canvasHeight = 256;
3194
+ if (typeof window !== "undefined") {
3195
+ canvasWidth = window.innerWidth ?? canvasWidth;
3196
+ canvasHeight = window.innerHeight ?? canvasHeight;
3197
+ }
3198
+ const renderer = new Renderer(canvasWidth, canvasHeight, "rgba8unorm"), camera = new PerspectiveCamera(75, canvasWidth / canvasHeight, 1e-3, 100), { points: pointsArray, itemsFiles, width, height } = await load(base, urls), pointCount = pointsArray.length / 3, pcIndexMaterial = new PointCloudsIndexMaterial(width, height), polyAreaIndexMaterial = new PolyAreaIndexMaterial(width, height), erodeMaskComputeMaterial = new ErodeMaskComputeMaterial(width, height, polyAreaIndexMaterial.resultTexture, erodeMaskSize), sopcComputeMaterial = new SOPCComputeMaterial(width, height, pointCount, pcIndexMaterial.resultTexture, kernelSize), points = new Object3D(
3194
3199
  new BufferGeometry().setAttribute("position", new THREE.BufferAttribute(pointsArray, 3)),
3195
3200
  pcIndexMaterial
3196
3201
  ), mesh = new Object3D(
@@ -3280,15 +3285,17 @@ async function sopc_(opt) {
3280
3285
  renderer,
3281
3286
  camera,
3282
3287
  results,
3283
- pointsArray
3288
+ pointsArray,
3289
+ objIds: itemsFiles.map((item) => item.sam3Objects.map((sam3Object) => sam3Object.objId)),
3290
+ itemsFiles
3284
3291
  };
3285
3292
  }
3286
3293
  const segmentObjectPointClouds = Object.assign(sopc_, {
3287
3294
  async getResult(opt) {
3288
3295
  await initWebgpu();
3289
- const { results } = await sopc_(opt);
3296
+ const { results, objIds, itemsFiles } = await sopc_(opt);
3290
3297
  await destroyWebgpu();
3291
- return results;
3298
+ return { results, objIds, itemsFiles };
3292
3299
  }
3293
3300
  });
3294
3301
  export {