@openheart/tavio-renderer 2.3.29-with-wasm → 2.4.0

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.
Files changed (55) hide show
  1. package/build/esm/assets/{tavio-BvEEQQX4.js → tavio-DVLlyem4.js} +211 -211
  2. package/build/esm/assets/{workerHelpers-CHsFxiyH.js → workerHelpers-BWRcUO-d.js} +1 -1
  3. package/build/esm/index.js +9209 -11301
  4. package/build/esm/types/{src/editor → editor}/selector/boxSelector.d.ts +4 -3
  5. package/build/esm/types/module.d.ts +7 -0
  6. package/build/esm/types/viewer/canvas.d.ts +233 -0
  7. package/build/esm/types/viewer/constants.d.ts +99 -0
  8. package/build/esm/types/{src/viewer/canvas.d.ts → viewer/driver/coreDriver.d.ts} +423 -505
  9. package/build/esm/types/viewer/driver/iCoreDriver.d.ts +206 -0
  10. package/build/esm/types/viewer/driver/offscreenDriver.d.ts +222 -0
  11. package/build/esm/types/viewer/driver/rpcBridge.d.ts +39 -0
  12. package/build/esm/types/viewer/driver/workerElementAdapter.d.ts +66 -0
  13. package/build/esm/types/{src/viewer → viewer}/materialGenerator.d.ts +36 -36
  14. package/build/esm/types/{src/viewer → viewer}/renderView.d.ts +5 -4
  15. package/build/esm/types/viewer/shaderRegistry.d.ts +22 -0
  16. package/build/esm/types/viewer/tavioMesh/localTransform.d.ts +65 -0
  17. package/build/esm/types/viewer/tavioMesh/minMaxRange.d.ts +47 -0
  18. package/build/esm/types/viewer/tavioMesh/parsers/imageParser.d.ts +14 -0
  19. package/build/esm/types/{src/utility/plyDecoder.d.ts → viewer/tavioMesh/parsers/plyParser.d.ts} +4 -15
  20. package/build/esm/types/viewer/tavioMesh/parsers/splatParser.d.ts +12 -0
  21. package/build/esm/types/viewer/tavioMesh/selection.d.ts +39 -0
  22. package/build/esm/types/{src/viewer → viewer/tavioMesh}/tavioMesh.d.ts +153 -60
  23. package/build/esm/types/viewer/types.d.ts +376 -0
  24. package/build/esm/types/worker/renderingWorker.d.ts +8 -0
  25. package/build/esm/types/{src/worker → worker}/tavioWorker.d.ts +1 -1
  26. package/build/esm/wasm/pkg/no-thread/tavio.d.ts +13 -13
  27. package/build/esm/wasm/pkg/no-thread/tavio.js +125 -125
  28. package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm +0 -0
  29. package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm.d.ts +13 -13
  30. package/build/esm/wasm/pkg/thread/tavio.d.ts +17 -17
  31. package/build/esm/wasm/pkg/thread/tavio.js +154 -154
  32. package/build/esm/wasm/pkg/thread/tavio_bg.wasm +0 -0
  33. package/build/esm/wasm/pkg/thread/tavio_bg.wasm.d.ts +17 -17
  34. package/package.json +1 -1
  35. package/build/esm/types/src/animation/animationController.d.ts +0 -146
  36. package/build/esm/types/src/module.d.ts +0 -5
  37. /package/build/esm/types/{src/camera → camera}/cameraCollider.d.ts +0 -0
  38. /package/build/esm/types/{src/camera → camera}/cameraPath.d.ts +0 -0
  39. /package/build/esm/types/{src/camera → camera}/cameraPathControls.d.ts +0 -0
  40. /package/build/esm/types/{src/camera → camera}/cameraPathManager.d.ts +0 -0
  41. /package/build/esm/types/{src/camera → camera}/flightControls.d.ts +0 -0
  42. /package/build/esm/types/{src/camera → camera}/orbitControls.d.ts +0 -0
  43. /package/build/esm/types/{src/camera → camera}/transferControls.d.ts +0 -0
  44. /package/build/esm/types/{src/editor → editor}/selector/selector.d.ts +0 -0
  45. /package/build/esm/types/{src/editor → editor}/selector/sphereSelector.d.ts +0 -0
  46. /package/build/esm/types/{src/extension → extension}/InstancedMeshEX.d.ts +0 -0
  47. /package/build/esm/types/{src/loader → loader}/streamLoader.d.ts +0 -0
  48. /package/build/esm/types/{src/math → math}/easing.d.ts +0 -0
  49. /package/build/esm/types/{src/math → math}/interpolation.d.ts +0 -0
  50. /package/build/esm/types/{src/utility → utility}/console.d.ts +0 -0
  51. /package/build/esm/types/{src/utility → utility}/utility.d.ts +0 -0
  52. /package/build/esm/types/{src/wasm-bindings → wasm-bindings}/wasm-handlers.d.ts +0 -0
  53. /package/build/esm/types/{src/wasm-bindings → wasm-bindings}/wasm-worker-client.d.ts +0 -0
  54. /package/build/esm/types/{src/wasm-bindings → wasm-bindings}/wasm-worker.d.ts +0 -0
  55. /package/build/esm/types/{src/wasm-bindings → wasm-bindings}/wasm.d.ts +0 -0
@@ -0,0 +1,376 @@
1
+ import { Matrix3, Matrix4, Quaternion, Vector2, Vector3, Vector4 } from 'three';
2
+ import { CameraPathControls } from '../camera/cameraPathControls';
3
+ import { FlightControls } from '../camera/flightControls';
4
+ import { OrbitControls } from '../camera/orbitControls';
5
+ import { iMaterialOption } from './materialGenerator';
6
+ import { SELECTION_MODE } from './constants';
7
+ /**
8
+ * Tavio Viewer のカスタムエラークラス
9
+ */
10
+ export declare class TavioError extends Error {
11
+ /** エラーコード */
12
+ code: string;
13
+ constructor(code: string, message: string);
14
+ }
15
+ /**
16
+ * カメラコントロールの種類
17
+ */
18
+ export type tControlsType = "orbit" | "path" | "flight";
19
+ /**
20
+ * カメラコントロールの型チェック用定義
21
+ */
22
+ export type tControlInstance = OrbitControls | CameraPathControls | FlightControls;
23
+ /**
24
+ * 範囲選択用マスクのソース型 (画面上のマスク形状を表す要素)
25
+ */
26
+ export type tMaskSource = HTMLCanvasElement | OffscreenCanvas | ImageData;
27
+ /**
28
+ * Vector3 と同様に外部データを扱うための型定義
29
+ */
30
+ export interface iVectorLike {
31
+ x: number;
32
+ y: number;
33
+ z: number;
34
+ }
35
+ /**
36
+ * 外部(デモ層)から渡すことができるプレーンな Uniform 値
37
+ * ※ Three.js を import することなく、Worker 間でシリアライズ安全に扱える型
38
+ */
39
+ export type tUniformPlainValue = number | boolean | string | number[] | iVectorLike | {
40
+ x?: number;
41
+ y?: number;
42
+ z?: number;
43
+ w?: number;
44
+ } | {
45
+ r?: number;
46
+ g?: number;
47
+ b?: number;
48
+ a?: number;
49
+ } | {
50
+ elements: number[];
51
+ } | Record<string, unknown> | null | undefined;
52
+ /**
53
+ * Three.js 準拠の { value: ... } 形式を持つ Custom Uniform
54
+ */
55
+ export type tCustomUniformValue = {
56
+ value: tUniformPlainValue;
57
+ };
58
+ /**
59
+ * 拡張 Uniform オブジェクト全体のマップ型
60
+ */
61
+ export type tCustomUniforms = Record<string, tCustomUniformValue>;
62
+ /**
63
+ * MaterialGenerator 等で独自定義された Custom Defines の型定義
64
+ */
65
+ export type tCustomDefines = Record<string, string | number | boolean | null | undefined>;
66
+ /**
67
+ * 内部エンジン用 (TavioMesh / CoreDriver 内部で Three.js オブジェクトも許容する Uniform 値)
68
+ */
69
+ export type tUniformValue = tUniformPlainValue | Vector2 | Vector3 | Vector4 | Quaternion | Matrix3 | Matrix4;
70
+ /**
71
+ * カメラパスコントロールのオプション
72
+ */
73
+ export interface iCameraPathOption {
74
+ attenuation?: number;
75
+ scaleX?: number;
76
+ scaleY?: number;
77
+ }
78
+ /**
79
+ * 汎用カメラパラメータ
80
+ */
81
+ export interface iCameraParameter {
82
+ position?: number[];
83
+ eye?: number[];
84
+ target?: number[];
85
+ fov?: number;
86
+ }
87
+ /**
88
+ * ビューアオプション
89
+ */
90
+ export interface iViewerOption {
91
+ disableBackground?: boolean;
92
+ usingSharedArrayBuffer?: boolean;
93
+ controlsType?: tControlsType;
94
+ gaussianScale?: number;
95
+ opacityPoints?: number;
96
+ opacityAdditive?: number;
97
+ opacityMultiplier?: number;
98
+ colorBlur?: number;
99
+ colorSharpness?: number;
100
+ backgroundOpacity?: number;
101
+ consoleOutput?: boolean;
102
+ dropShadow?: boolean;
103
+ shadowMapSize?: number;
104
+ indexSelectionDivisor?: number;
105
+ useOffscreen?: boolean;
106
+ preserveDrawingBuffer?: boolean;
107
+ powerPreference?: WebGLPowerPreference;
108
+ enableColorGrading?: boolean;
109
+ colorTemperature?: number;
110
+ colorTint?: number;
111
+ colorContrast?: number;
112
+ colorHSV?: iVectorLike;
113
+ colorRGB?: iVectorLike;
114
+ enableClipping?: boolean;
115
+ clippingEnabled?: boolean;
116
+ clippingSpherePosition?: iVectorLike;
117
+ clippingSphereScale?: iVectorLike;
118
+ outsidePointSize?: number;
119
+ outsideOpacity?: number;
120
+ enableAnimation?: boolean;
121
+ minimumScale?: number;
122
+ distanceEffectPoint?: number;
123
+ distanceEffectPointNear?: number;
124
+ distanceEffectBase?: number;
125
+ distanceEffectRange?: number;
126
+ effectSonar?: number;
127
+ effectSonarRange?: number;
128
+ worldOrigin?: iVectorLike;
129
+ enableLocalTransform?: boolean;
130
+ enableOrbitCursor?: boolean;
131
+ orbitCursorAutoDisplay?: boolean;
132
+ orbitCursorDisplay?: boolean;
133
+ orbitCursorAlwaysDisplay?: boolean;
134
+ orbitCursorScale?: number;
135
+ }
136
+ /**
137
+ * ビューアのマテリアルオプション
138
+ */
139
+ export interface iViewerMaterialOption {
140
+ materialOption: iMaterialOption | iMaterialOption[];
141
+ isDebug?: boolean;
142
+ }
143
+ /**
144
+ * セレクターの情報
145
+ */
146
+ export interface iSelectorInfo {
147
+ name: string;
148
+ visible: boolean;
149
+ position?: iVectorLike;
150
+ rotation?: iVectorLike;
151
+ scale?: iVectorLike;
152
+ radius?: number | null;
153
+ width?: number | null;
154
+ height?: number | null;
155
+ depth?: number | null;
156
+ }
157
+ /**
158
+ * ファイルのロードオプション
159
+ */
160
+ export interface iLoadingOption {
161
+ useSphericalHarmonics?: boolean;
162
+ autoInsert?: boolean;
163
+ autoBackground?: boolean;
164
+ }
165
+ /**
166
+ * ファイル内に含まれる 3DGS の原点からの距離と割合
167
+ */
168
+ export interface iDistanceInfo {
169
+ per50?: number | null;
170
+ per70?: number | null;
171
+ per90?: number | null;
172
+ per100: number | null;
173
+ }
174
+ /**
175
+ * ファイル内のヘッダ及び頂点情報
176
+ */
177
+ export interface iHeaderInfo {
178
+ majorVersionNumber: number;
179
+ minorVersionNumber: number;
180
+ featureBits: any;
181
+ distance: iDistanceInfo;
182
+ }
183
+ /**
184
+ * ファイルに対する座標変換情報
185
+ */
186
+ export interface iTransform {
187
+ translation: iVectorLike;
188
+ rotation: iVectorLike;
189
+ scale: number;
190
+ }
191
+ /**
192
+ * ピッキングして得られた情報
193
+ */
194
+ export interface iPickingInfo {
195
+ name: string;
196
+ index: number;
197
+ target: iVectorLike;
198
+ }
199
+ /**
200
+ * ビューポートや focal の情報
201
+ */
202
+ export interface iViewportInfo extends Record<string, tUniformValue> {
203
+ projection: Matrix4;
204
+ focal: Vector2;
205
+ inverseViewport: Vector2;
206
+ }
207
+ /**
208
+ * ローカルトランスフォームの情報
209
+ */
210
+ export interface iLocalTransformInfo {
211
+ /** 選択されているスプラットの総数 */
212
+ count: number;
213
+ /** ローカル変換を適用する前の初期ワールド中心座標(単一選択時はスプラットの初期座標にインスタンス変換を適用した位置、複数選択時は選択オブジェクトの初期重心) */
214
+ initialCenter: Vector3;
215
+ /** ローカル変換(平行移動)適用後の現在のワールド中心座標 */
216
+ worldCenter: Vector3;
217
+ /** ギズモの親オブジェクトに設定するワールド姿勢(単一選択時はスプラット初期回転+インスタンス回転、複数選択時はインスタンス回転のみ) */
218
+ worldQuaternion: Quaternion;
219
+ /** 現在スプラットに適用されているローカル平行移動量(複数選択時は null) */
220
+ localTranslation: Vector3 | null;
221
+ /** 現在スプラットに適用されているローカル回転(複数選択時は null) */
222
+ localQuaternion: Quaternion | null;
223
+ /** 現在スプラットに適用されているローカルスケール(複数選択時は null) */
224
+ localScale: Vector3 | null;
225
+ /** スプラット固有の初期回転(単一選択時のみ設定される) */
226
+ initialQuaternion?: Quaternion;
227
+ /** スプラットが属するインスタンスのスケール値(単一選択時のみ設定される) */
228
+ instanceScale?: number;
229
+ }
230
+ /** スプラットの選択モード型 */
231
+ export type tSelectionMode = typeof SELECTION_MODE[keyof typeof SELECTION_MODE];
232
+ /**
233
+ * 圧縮方式(RAW は非圧縮)
234
+ */
235
+ export type tEncode = "RAW" | "PNG" | "ZIP";
236
+ /**
237
+ * tavio 形式の各プロパティにおけるデータのビット深度
238
+ */
239
+ export type tBitDepth = 8 | 16 | 32;
240
+ /**
241
+ * 画素情報として扱えるオブジェクト
242
+ */
243
+ export type tImageSource = HTMLImageElement | HTMLCanvasElement;
244
+ /**
245
+ * ファイル読み込み時の球面調和関数用型定義(shN)
246
+ */
247
+ export interface iSphericallInfo {
248
+ centroid: {
249
+ encode: tEncode | null;
250
+ length: number | null;
251
+ decoded: any;
252
+ };
253
+ label: {
254
+ encode: tEncode | null;
255
+ length: number | null;
256
+ decoded: any;
257
+ };
258
+ min: number | null;
259
+ max: number | null;
260
+ quantize: number | null;
261
+ cluster: number | null;
262
+ degree: number | null;
263
+ }
264
+ /**
265
+ * チャンク内ヘッダ情報用定義
266
+ */
267
+ export interface iChunkHeaderProperty {
268
+ type: number;
269
+ length: number;
270
+ }
271
+ /**
272
+ * チャンク内ヘッダ情報用定義
273
+ */
274
+ export interface iChunkHeader {
275
+ propertyCount: number;
276
+ properties: iChunkHeaderProperty[];
277
+ }
278
+ /**
279
+ * チャンク内プロパティ用型定義
280
+ */
281
+ export interface iPropertyInfo {
282
+ encode?: tEncode;
283
+ depth?: tBitDepth;
284
+ length?: number;
285
+ decoded: any;
286
+ channelCount?: number;
287
+ min?: number[];
288
+ max?: number[];
289
+ }
290
+ /**
291
+ * 複数ファイルを扱う場合の、既存データのプロパティ用型定義
292
+ */
293
+ export interface iPreviousPropertyInfo {
294
+ min: number[];
295
+ max: number[];
296
+ }
297
+ /**
298
+ * すべてのプロパティを保持するための型定義
299
+ */
300
+ export interface iProperties {
301
+ position?: iPropertyInfo;
302
+ scale?: iPropertyInfo;
303
+ rotation?: iPropertyInfo;
304
+ alpha?: iPropertyInfo;
305
+ sh0?: iPropertyInfo;
306
+ shN?: iSphericallInfo;
307
+ previousScale?: iPreviousPropertyInfo;
308
+ previousAlpha?: iPreviousPropertyInfo;
309
+ }
310
+ /**
311
+ * テクスチャの幅と高さ
312
+ */
313
+ export interface iTextureWidth {
314
+ width: number;
315
+ height: number;
316
+ }
317
+ /**
318
+ * 読み込んだファイルのプロパティ
319
+ */
320
+ export interface iSourceProperty {
321
+ ready: boolean;
322
+ index: number;
323
+ type: string;
324
+ vertexCount: number;
325
+ vertexOffset: number;
326
+ featureBits: any;
327
+ containmentRadius: any;
328
+ magicNumber: string;
329
+ majorVersion: number;
330
+ minorVersion: number;
331
+ transform: iTransform;
332
+ billboard: boolean;
333
+ }
334
+ /**
335
+ * 画像や canvas 要素をパースした結果
336
+ */
337
+ export interface iSplatSource {
338
+ count: number;
339
+ position32: Float32Array;
340
+ color8: Uint8ClampedArray;
341
+ converted: Uint8Array;
342
+ min: {
343
+ alpha: number;
344
+ scale: iVectorLike;
345
+ };
346
+ max: {
347
+ alpha: number;
348
+ scale: iVectorLike;
349
+ };
350
+ }
351
+ /**
352
+ * スプラットパーサー(PLY, SPLAT, IMAGE 等)の共通パース結果
353
+ */
354
+ export interface iParsedSplatData {
355
+ /** ROW_LENGTH_TAVIO (19 bytes/splat) でパックされたバイナリ */
356
+ splatBuffer: Uint8ClampedArray | ArrayBuffer;
357
+ /** スプラット総数 */
358
+ count: number;
359
+ /** スケールとアルファの min-max 範囲 */
360
+ minMax: {
361
+ scaleMinX: number;
362
+ scaleMinY: number;
363
+ scaleMinZ: number;
364
+ alphaMin: number;
365
+ scaleMaxX: number;
366
+ scaleMaxY: number;
367
+ scaleMaxZ: number;
368
+ alphaMax: number;
369
+ };
370
+ /** 点群表示用の位置・色バッファ */
371
+ pointsPosition: Float32Array;
372
+ pointsColor: Uint8ClampedArray;
373
+ /** 球面調和関数バッファ (存在する場合) */
374
+ sphericalHarmonicsBuffer?: Float32Array;
375
+ sphericalHarmonicsDegrees?: number;
376
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * # Rendering Worker Entrypoint (Dedicated Worker Scope)
3
+ *
4
+ * ## 役割と背景
5
+ * Worker スレッド側で OffscreenCanvas を受容し、実際の Three.js レンダラーおよび
6
+ * `DirectCoreDriver` を初期化・駆動させるエントリポイント。
7
+ */
8
+ export {};
@@ -1,4 +1,4 @@
1
- import { iVectorLike } from '../viewer/canvas';
1
+ import { iVectorLike } from '../viewer/types';
2
2
  export type tCollisionType = "sphere" | "box";
3
3
  export interface iSphereCollision {
4
4
  radius: number;
@@ -66,9 +66,9 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
66
66
 
67
67
  export interface InitOutput {
68
68
  readonly memory: WebAssembly.Memory;
69
- readonly encodeTavio: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
70
- readonly resolveGaussianEdits: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
71
- readonly main: () => void;
69
+ readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
70
+ readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
71
+ readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
72
72
  readonly decodePly: (a: number, b: number, c: number) => number;
73
73
  readonly decodeSog: (a: number, b: number, c: number) => number;
74
74
  readonly decodeSplat: (a: number, b: number, c: number) => number;
@@ -77,24 +77,24 @@ export interface InitOutput {
77
77
  readonly encodePly: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
78
78
  readonly encodeSplat: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
79
79
  readonly encodeSpz: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => void;
80
- readonly sort: (a: number, b: number, c: number) => number;
81
- readonly registerEventHandler: (a: number) => number;
82
- readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
83
- readonly intounderlyingsource_cancel: (a: number) => void;
84
- readonly intounderlyingsource_pull: (a: number, b: number) => number;
85
- readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
80
+ readonly encodeTavio: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => void;
86
81
  readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
87
82
  readonly intounderlyingbytesource_cancel: (a: number) => void;
88
83
  readonly intounderlyingbytesource_pull: (a: number, b: number) => number;
89
84
  readonly intounderlyingbytesource_start: (a: number, b: number) => void;
90
85
  readonly intounderlyingbytesource_type: (a: number) => number;
91
- readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
92
86
  readonly intounderlyingsink_abort: (a: number, b: number) => number;
93
87
  readonly intounderlyingsink_close: (a: number) => number;
94
88
  readonly intounderlyingsink_write: (a: number, b: number) => number;
95
- readonly __wasm_bindgen_func_elem_2857: (a: number, b: number, c: number, d: number) => void;
96
- readonly __wasm_bindgen_func_elem_2859: (a: number, b: number, c: number, d: number) => void;
97
- readonly __wasm_bindgen_func_elem_1098: (a: number, b: number, c: number) => void;
89
+ readonly intounderlyingsource_cancel: (a: number) => void;
90
+ readonly intounderlyingsource_pull: (a: number, b: number) => number;
91
+ readonly main: () => void;
92
+ readonly registerEventHandler: (a: number) => number;
93
+ readonly resolveGaussianEdits: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
94
+ readonly sort: (a: number, b: number, c: number) => number;
95
+ readonly __wasm_bindgen_func_elem_2970: (a: number, b: number, c: number, d: number) => void;
96
+ readonly __wasm_bindgen_func_elem_2972: (a: number, b: number, c: number, d: number) => void;
97
+ readonly __wasm_bindgen_func_elem_1183: (a: number, b: number, c: number) => void;
98
98
  readonly __wbindgen_export: (a: number, b: number) => number;
99
99
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
100
100
  readonly __wbindgen_export3: (a: number) => void;