@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.
- package/dist/3dgs-lib.cjs +243 -638
- package/dist/3dgs-lib.cjs.map +1 -1
- package/dist/3dgs-lib.js +243 -638
- package/dist/3dgs-lib.js.map +1 -1
- package/dist/editor/SelectionVolumeRenderer.d.ts +10 -10
- package/dist/editor/SplatEditor.d.ts +4 -0
- package/dist/editor/tools/BoxSelection.d.ts +2 -12
- package/dist/editor/tools/SphereSelection.d.ts +2 -9
- package/package.json +1 -1
|
@@ -8,29 +8,29 @@ export interface VolumeState {
|
|
|
8
8
|
dimensions: [number, number, number];
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
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
|
|
22
|
-
private
|
|
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
|
|
33
|
-
private
|
|
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
|
|
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(
|
|
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
|
|
4
|
+
private _onRadiusChanged?;
|
|
12
5
|
get radius(): number;
|
|
13
|
-
constructor(
|
|
6
|
+
constructor(onRadiusChanged?: (radius: number) => void);
|
|
14
7
|
setRadius(radius: number): void;
|
|
15
8
|
activate(): void;
|
|
16
9
|
deactivate(): void;
|