@d5techs/3dgs-lib 1.4.82 → 1.4.84

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.
@@ -8,29 +8,29 @@ export interface VolumeState {
8
8
  dimensions: [number, number, number];
9
9
  }
10
10
  /**
11
- * 射线追踪体积选择渲染器 - 复刻 SuperSplat 的视觉效果
12
- *
13
- * 在一个 box mesh 上通过 fragment shader 做射线-盒/射线-球相交,
14
- * 用条纹网格 (strips) 绘制半透明体积。
15
- * 正面条纹为白色 (alpha 0.6),背面条纹为黑色 (alpha 0.6)。
16
- * 使用 frag_depth + 噪声抖动实现随机透明度深度排序。
11
+ * Pass 线框渲染器:
12
+ * Pass 1 (front) depthCompare=less-equal → 正面线条亮色,被模型遮挡则不画
13
+ * Pass 2 (behind) depthCompare=greater → 被遮挡线条暗色半透明,保留完整体积可见性
17
14
  */
18
15
  export declare class SelectionVolumeRenderer {
19
16
  private renderer;
20
17
  private camera;
21
- private boxPipeline;
22
- private spherePipeline;
18
+ private frontPipeline;
19
+ private behindPipeline;
23
20
  private uniformBuffer;
24
21
  private bindGroup;
25
22
  private vertexBuffer;
26
23
  private _volume;
24
+ private vertexCount;
25
+ private frontColor;
27
26
  constructor(renderer: Renderer, camera: Camera);
28
27
  get volume(): VolumeState;
29
28
  setVolume(type: VolumeType, center?: [number, number, number], dimensions?: [number, number, number]): void;
30
29
  setCenter(x: number, y: number, z: number): void;
31
30
  setDimensions(a: number, b: number, c: number): void;
32
- private createResources;
33
- private computeFrustumUniforms;
31
+ private createPipelines;
32
+ private generateBoxVertices;
33
+ private generateSphereVertices;
34
34
  render(pass: GPURenderPassEncoder): void;
35
35
  destroy(): void;
36
36
  }
@@ -111,6 +111,10 @@ export declare class SplatEditor {
111
111
  * 创建体积位置的 TransformableObject 代理,供 gizmo 控制
112
112
  */
113
113
  createVolumeTransformProxy(): TransformableObject | null;
114
+ setBoxDimensions(lx: number, ly: number, lz: number): void;
115
+ getBoxDimensions(): [number, number, number];
116
+ setSphereRadius(radius: number): void;
117
+ getSphereRadius(): number;
114
118
  /**
115
119
  * 获取模型世界空间包围盒(中心 + 尺寸)
116
120
  */
@@ -1,24 +1,14 @@
1
1
  import type { Tool } from './ToolManager';
2
- export interface BoxSelectionCallbacks {
3
- onApply: (op: 'add' | 'remove' | 'set') => void;
4
- onDimensionsChanged: (lenX: number, lenY: number, lenZ: number) => void;
5
- }
6
2
  export declare class BoxSelection implements Tool {
7
- private parent;
8
- private toolbar;
9
- private callbacks;
10
3
  private _lenX;
11
4
  private _lenY;
12
5
  private _lenZ;
13
- private inputX;
14
- private inputY;
15
- private inputZ;
6
+ private _onDimensionsChanged?;
16
7
  get lenX(): number;
17
8
  get lenY(): number;
18
9
  get lenZ(): number;
19
- constructor(parent: HTMLElement, callbacks: BoxSelectionCallbacks);
10
+ constructor(onDimensionsChanged?: (lenX: number, lenY: number, lenZ: number) => void);
20
11
  setDimensions(lenX: number, lenY: number, lenZ: number): void;
21
12
  activate(): void;
22
13
  deactivate(): void;
23
- private emitDims;
24
14
  }
@@ -1,16 +1,9 @@
1
1
  import type { Tool } from './ToolManager';
2
- export interface SphereSelectionCallbacks {
3
- onApply: (op: 'add' | 'remove' | 'set') => void;
4
- onRadiusChanged: (radius: number) => void;
5
- }
6
2
  export declare class SphereSelection implements Tool {
7
- private parent;
8
- private toolbar;
9
- private callbacks;
10
3
  private _radius;
11
- private radiusInput;
4
+ private _onRadiusChanged?;
12
5
  get radius(): number;
13
- constructor(parent: HTMLElement, callbacks: SphereSelectionCallbacks);
6
+ constructor(onRadiusChanged?: (radius: number) => void);
14
7
  setRadius(radius: number): void;
15
8
  activate(): void;
16
9
  deactivate(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d5techs/3dgs-lib",
3
- "version": "1.4.82",
3
+ "version": "1.4.84",
4
4
  "description": "可扩展的 WebGPU 3D 渲染引擎",
5
5
  "type": "module",
6
6
  "main": "./dist/3dgs-lib.cjs",