@openheart/tavio-renderer 2.3.30-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.
- package/build/esm/assets/{tavio-JUxSmuMi.js → tavio-DVLlyem4.js} +211 -211
- package/build/esm/assets/{workerHelpers-yS8SNwfU.js → workerHelpers-BWRcUO-d.js} +1 -1
- package/build/esm/index.js +7366 -6111
- package/build/esm/types/editor/selector/boxSelector.d.ts +4 -3
- package/build/esm/types/module.d.ts +5 -4
- package/build/esm/types/viewer/canvas.d.ts +150 -1560
- package/build/esm/types/viewer/constants.d.ts +99 -0
- package/build/esm/types/viewer/driver/coreDriver.d.ts +1402 -0
- package/build/esm/types/viewer/driver/iCoreDriver.d.ts +206 -0
- package/build/esm/types/viewer/driver/offscreenDriver.d.ts +222 -0
- package/build/esm/types/viewer/driver/rpcBridge.d.ts +39 -0
- package/build/esm/types/viewer/driver/workerElementAdapter.d.ts +66 -0
- package/build/esm/types/viewer/materialGenerator.d.ts +24 -27
- package/build/esm/types/viewer/renderView.d.ts +4 -3
- package/build/esm/types/viewer/shaderRegistry.d.ts +22 -0
- package/build/esm/types/viewer/tavioMesh/localTransform.d.ts +65 -0
- package/build/esm/types/viewer/tavioMesh/minMaxRange.d.ts +47 -0
- package/build/esm/types/viewer/tavioMesh/parsers/imageParser.d.ts +14 -0
- package/build/esm/types/{utility/plyDecoder.d.ts → viewer/tavioMesh/parsers/plyParser.d.ts} +4 -15
- package/build/esm/types/viewer/tavioMesh/parsers/splatParser.d.ts +12 -0
- package/build/esm/types/viewer/tavioMesh/selection.d.ts +39 -0
- package/build/esm/types/viewer/{tavioMesh.d.ts → tavioMesh/tavioMesh.d.ts} +73 -62
- package/build/esm/types/viewer/types.d.ts +376 -0
- package/build/esm/types/worker/renderingWorker.d.ts +8 -0
- package/build/esm/types/worker/tavioWorker.d.ts +1 -1
- package/build/esm/wasm/pkg/no-thread/tavio.d.ts +13 -13
- package/build/esm/wasm/pkg/no-thread/tavio.js +125 -125
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/no-thread/tavio_bg.wasm.d.ts +13 -13
- package/build/esm/wasm/pkg/thread/tavio.d.ts +16 -16
- package/build/esm/wasm/pkg/thread/tavio.js +154 -154
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm +0 -0
- package/build/esm/wasm/pkg/thread/tavio_bg.wasm.d.ts +16 -16
- package/package.json +1 -1
- package/build/esm/types/animation/animationController.d.ts +0 -146
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { default as EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iVectorLike, iSelectorInfo, iPickingInfo, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
3
|
+
import { iCollisionTarget } from '../../worker/tavioWorker';
|
|
4
|
+
import { iSphereSelectorOption } from '../../editor/selector/sphereSelector';
|
|
5
|
+
import { iBoxSelectorOption } from '../../editor/selector/boxSelector';
|
|
6
|
+
import { MeshStandardMaterialParameters } from 'three';
|
|
7
|
+
import { iLatitudeLongitude } from '../../camera/flightControls';
|
|
8
|
+
import { WorkerElementAdapter } from './workerElementAdapter';
|
|
9
|
+
import { CameraPath } from '../../camera/cameraPath';
|
|
10
|
+
export interface iCoreDriver extends EventEmitter {
|
|
11
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
12
|
+
viewerOption: iViewerOption;
|
|
13
|
+
getElementAdapter(): HTMLCanvasElement | OffscreenCanvas | WorkerElementAdapter;
|
|
14
|
+
init(canvas: HTMLCanvasElement | OffscreenCanvas, materialOption?: iViewerMaterialOption): void;
|
|
15
|
+
start(): void;
|
|
16
|
+
pause(): void;
|
|
17
|
+
resume(): void;
|
|
18
|
+
resize(width?: number, height?: number, start?: boolean): void;
|
|
19
|
+
dispose(): void;
|
|
20
|
+
addAmbientLight(color: number, intensity: number): void;
|
|
21
|
+
addSpotLight(position: iVectorLike, target: iVectorLike, color: number, intensity: number, distance: number, angle: number, penumbra: number, decay: number, castShadow?: boolean, isDebug?: boolean): void;
|
|
22
|
+
addWhiteCube(position?: iVectorLike, scale?: iVectorLike, receiveShadow?: boolean, materialOption?: MeshStandardMaterialParameters): void;
|
|
23
|
+
setAmbientLightIntensity(intensity: number): void;
|
|
24
|
+
setSpotLightPosition(position: iVectorLike): void;
|
|
25
|
+
setSpotLightTargetPosition(target: iVectorLike): void;
|
|
26
|
+
setSpotLightIntensity(intensity: number): void;
|
|
27
|
+
setSpotLightDistance(distance: number): void;
|
|
28
|
+
setSpotLightAngle(angle: number): void;
|
|
29
|
+
setSpotLightPenumbra(penumbra: number): void;
|
|
30
|
+
setSpotLightDecay(decay: number): void;
|
|
31
|
+
renderShadow(): void;
|
|
32
|
+
loadTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
33
|
+
loadTavioWasm(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
34
|
+
loadPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
35
|
+
loadSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
36
|
+
loadImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
37
|
+
loadCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
38
|
+
concatTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
39
|
+
concatPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
40
|
+
concatSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
41
|
+
concatImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
42
|
+
concatCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
43
|
+
saveSplatWasm(name: string, fileName?: string): Promise<any>;
|
|
44
|
+
savePlyWasm(name: string, fileName?: string): Promise<any>;
|
|
45
|
+
saveSpzWasm(name: string, fileName?: string): Promise<any>;
|
|
46
|
+
saveTavioWasm(name: string, fileName?: string, options?: any): Promise<any>;
|
|
47
|
+
exportTavioWasm(name: string, options?: any): Promise<any>;
|
|
48
|
+
addTavioMesh(name: string): void;
|
|
49
|
+
removeTavioMesh(name: string, renderViewName?: string | Symbol): void;
|
|
50
|
+
removeTavioMeshAllRenderView(name: string): void;
|
|
51
|
+
disposeTavioMesh(name: string): void;
|
|
52
|
+
setVisibilityTavioMesh(name: string, visibility: boolean): void;
|
|
53
|
+
setVisibilityPoints(name: string, visibility: boolean): void;
|
|
54
|
+
setBackgroundOpacity(opacity: number): void;
|
|
55
|
+
setBackgroundByTavioMesh(name: string): void;
|
|
56
|
+
getFirstMeshName(): Promise<string | null> | string | null;
|
|
57
|
+
createRenderView(name: string | Symbol): void;
|
|
58
|
+
setRenderView(name?: string | Symbol | null): void;
|
|
59
|
+
getCurrentRenderViewName(): Promise<string | null> | string | null;
|
|
60
|
+
getRenderViewCount(): Promise<number> | number;
|
|
61
|
+
setRenderViewSize(renderViewName?: string | Symbol, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
|
|
62
|
+
getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null> | iPickingInfo | null;
|
|
63
|
+
setUniforms(uniforms: Record<string, tUniformValue>): void;
|
|
64
|
+
setPointUniforms(uniforms: Record<string, tUniformValue>): void;
|
|
65
|
+
setCustomDefines(defines: tCustomDefines): void;
|
|
66
|
+
setCustomUniforms(uniforms: tCustomUniforms): void;
|
|
67
|
+
setGaussianScale(scale: number): void;
|
|
68
|
+
setOpacityAdditive(opacity: number): void;
|
|
69
|
+
setOpacityMultiplier(multiplier: number): void;
|
|
70
|
+
setOpacityPoints(opacity: number): void;
|
|
71
|
+
setSphericalHarmonicsIntensity(intensity: number): void;
|
|
72
|
+
setUsingSphericalHarmonics(isUsing: boolean): void;
|
|
73
|
+
setColorBlur(blur: number): void;
|
|
74
|
+
setColorSharpness(sharpness: number): void;
|
|
75
|
+
setColorTemperature(temperature: number): void;
|
|
76
|
+
setColorTint(tint: number): void;
|
|
77
|
+
setColorContrast(contrast: number): void;
|
|
78
|
+
setHSVColor(hsv: iVectorLike): void;
|
|
79
|
+
setColorRGB(rgb: iVectorLike): void;
|
|
80
|
+
setClippingEnabled(enabled: boolean): void;
|
|
81
|
+
setClippingSphere(position: iVectorLike, scale: iVectorLike): void;
|
|
82
|
+
setOutsideClipPointSize(size: number): void;
|
|
83
|
+
setOutsideClipOpacity(opacity: number): void;
|
|
84
|
+
setEffectMinimumScale(value: number): void;
|
|
85
|
+
setEffectDistanceBase(value: number): void;
|
|
86
|
+
setEffectDistanceRange(value: number): void;
|
|
87
|
+
setWorldOrigin(x: number, y: number, z: number): void;
|
|
88
|
+
setEffectDistancePoints(value: number): void;
|
|
89
|
+
setEffectDistanceNearPoints(value: number): void;
|
|
90
|
+
setEffectSonar(value: number): void;
|
|
91
|
+
setEffectSonarRange(value: number): void;
|
|
92
|
+
startBloomPoints(duration?: number): void;
|
|
93
|
+
startDissolveToGaussian(duration?: number, backgroundFadeInDelay?: number, backgroundFadeInDuration?: number): void;
|
|
94
|
+
startSonarWave(duration?: number): void;
|
|
95
|
+
animatePath(name?: string, duration?: number): void;
|
|
96
|
+
startFadeInBackground(duration?: number): void;
|
|
97
|
+
startFadeOutBackground(duration?: number): void;
|
|
98
|
+
setOrbitCursorAutoDisplay(enabled: boolean): void;
|
|
99
|
+
isOrbitCursorAutoDisplayEnabled(): Promise<boolean> | boolean;
|
|
100
|
+
setOrbitCursorDisplay(enabled: boolean): void;
|
|
101
|
+
isOrbitCursorDisplay(): Promise<boolean> | boolean;
|
|
102
|
+
setOrbitCursorScale(scale: number): void;
|
|
103
|
+
setAxisVisible(visible: boolean): void;
|
|
104
|
+
isAxisVisible(): Promise<boolean> | boolean;
|
|
105
|
+
applyLocalTransformToSelected(name: string, translation: iVectorLike, rotation: iVectorLike, scale: iVectorLike): void;
|
|
106
|
+
resetLocalTransformOfSelected(name: string): void;
|
|
107
|
+
resetAllLocalTransforms(name: string): void;
|
|
108
|
+
setLocalTransformGizmoEnabled(enabled: boolean): void;
|
|
109
|
+
setLocalTransformGizmoMode(mode: "translate" | "rotate" | "scale"): void;
|
|
110
|
+
setDropShadow(enabled: boolean): void;
|
|
111
|
+
setModelTransform(name: string, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
|
|
112
|
+
getModelTransform(name: string): Promise<iTransform | null> | iTransform | null;
|
|
113
|
+
setTransform(name: string, index: number, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
|
|
114
|
+
getTransform(name: string, index: number): Promise<iTransform | null> | iTransform | null;
|
|
115
|
+
setBillboard(name: string, index: number, flag: boolean): void;
|
|
116
|
+
setCameraParameter(position?: number[] | iVectorLike, target?: number[] | iVectorLike, fov?: number): void;
|
|
117
|
+
getCameraParameter(): Promise<iCameraParameter> | iCameraParameter;
|
|
118
|
+
setCameraColliderEnabled(enabled: boolean): void;
|
|
119
|
+
setCameraColliderSelector(selectorNames?: string[]): void;
|
|
120
|
+
getCameraColliderEnabled(): Promise<boolean> | boolean;
|
|
121
|
+
setInteractiveMode(interactive: boolean): void;
|
|
122
|
+
getInteractiveMode(): Promise<boolean> | boolean;
|
|
123
|
+
setControlsType(controlsType: string): void;
|
|
124
|
+
getControlsType(): Promise<tControlsType> | tControlsType;
|
|
125
|
+
setControlsAttenuation(attenuation: number): void;
|
|
126
|
+
selectCameraPath(name: string): void;
|
|
127
|
+
updateCameraPath(time?: number): void;
|
|
128
|
+
createCameraPath(position: number[][] | iVectorLike[], target: number[][] | iVectorLike[], debug?: boolean): CameraPath | void;
|
|
129
|
+
addCameraPath(name: string, position: number[][] | iVectorLike[], target: number[][] | iVectorLike[], debug?: boolean): void;
|
|
130
|
+
removeCameraPath(name: string): void;
|
|
131
|
+
getPathNames(): Promise<string[]> | string[];
|
|
132
|
+
getActiveCameraPathName(): Promise<string | null> | string | null;
|
|
133
|
+
getCameraPathByTime(name?: string, time?: number): Promise<{
|
|
134
|
+
position: iVectorLike;
|
|
135
|
+
target: iVectorLike;
|
|
136
|
+
} | null> | {
|
|
137
|
+
position: iVectorLike;
|
|
138
|
+
target: iVectorLike;
|
|
139
|
+
} | null;
|
|
140
|
+
getCameraPathTime(): Promise<number> | number;
|
|
141
|
+
setCameraPathOption(option: iCameraPathOption): void;
|
|
142
|
+
setCameraPathCollisionRadius(radius: number): void;
|
|
143
|
+
setCameraPathInteraction(x: number, y: number): void;
|
|
144
|
+
setOrbitPointerDown(isDown: boolean): void;
|
|
145
|
+
setOrbitRelativeRotateLeft(value: number): void;
|
|
146
|
+
setOrbitRelativeRotateUp(value: number): void;
|
|
147
|
+
setOrbitRelativeTranslateLeft(value: number): void;
|
|
148
|
+
setOrbitRelativeTranslateUp(value: number): void;
|
|
149
|
+
setOrbitRelativeDollyOut(value: number): void;
|
|
150
|
+
getOrbitDistance(): Promise<number> | number;
|
|
151
|
+
setOrbitDistance(distance: number): void;
|
|
152
|
+
setOrbitRotation(pitch: number, yaw: number, isForce?: boolean): void;
|
|
153
|
+
setOrbitRelativeRotation(pitch: number, yaw: number): void;
|
|
154
|
+
setOrbitEnableZoom(enable: boolean): void;
|
|
155
|
+
setOrbitEnablePan(enable: boolean): void;
|
|
156
|
+
setOrbitEnableLimit(enable: boolean): void;
|
|
157
|
+
setOrbitEnableZoomLimit(enable: boolean): void;
|
|
158
|
+
setOrbitOverflow(value: number): void;
|
|
159
|
+
setOrbitUpLimit(value: number): void;
|
|
160
|
+
setOrbitDownLimit(value: number): void;
|
|
161
|
+
setOrbitLeftLimit(value: number): void;
|
|
162
|
+
setOrbitRightLimit(value: number): void;
|
|
163
|
+
setOrbitZoomInLimit(value: number): void;
|
|
164
|
+
setOrbitZoomOutLimit(value: number): void;
|
|
165
|
+
setTransferPosition(position: iVectorLike): void;
|
|
166
|
+
setTransferRelativePosition(position: iVectorLike, isForce?: boolean): void;
|
|
167
|
+
moveTransferByDirection(offset: iVectorLike, scale: number, isForce?: boolean): void;
|
|
168
|
+
moveTransferByHorizontalDirection(x: number, y: number, scale: number, isForce?: boolean): void;
|
|
169
|
+
moveTransferToTop(scale: number, isForce?: boolean): void;
|
|
170
|
+
moveTransferToBottom(scale: number, isForce?: boolean): void;
|
|
171
|
+
setTransferFov(fov: number): void;
|
|
172
|
+
getFlightParameter(): Promise<iLatitudeLongitude | null> | iLatitudeLongitude | null;
|
|
173
|
+
setFlightLongitude(longitude: number): void;
|
|
174
|
+
setFlightLatitude(latitude: number): void;
|
|
175
|
+
setFlightRelativeLatitude(latitude: number, isForce?: boolean): void;
|
|
176
|
+
setFlightRelativeLongitude(longitude: number, isForce?: boolean): void;
|
|
177
|
+
selectSplatByScreenArea(minX: number, minY: number, maxX: number, maxY: number, mode?: tSelectionMode, maskCanvas?: tMaskSource | {
|
|
178
|
+
width: number;
|
|
179
|
+
height: number;
|
|
180
|
+
data: ArrayBuffer;
|
|
181
|
+
}): void;
|
|
182
|
+
setFrameRateLimit(fps: number): void;
|
|
183
|
+
setDevicePixelRatio(value: number): void;
|
|
184
|
+
getDevicePixelRatio(): number | null;
|
|
185
|
+
getHeaderInfo(name: string): Promise<iHeaderInfo | null> | iHeaderInfo | null;
|
|
186
|
+
setCollisionReversed(reversed: boolean): void;
|
|
187
|
+
deleteSelectedGaussian(): void;
|
|
188
|
+
undoDeletedGaussian(): void;
|
|
189
|
+
resetDeletedGaussian(): void;
|
|
190
|
+
resetCollision(): void;
|
|
191
|
+
setCollision(collision: iCollisionTarget | iCollisionTarget[], mode?: tSelectionMode): void;
|
|
192
|
+
checkCollisionBySelector(name: string, mode?: tSelectionMode): void;
|
|
193
|
+
checkCollisionBySelectors(names: string[], mode?: tSelectionMode): void;
|
|
194
|
+
checkCollisionByAllSelectors(mode?: tSelectionMode): void;
|
|
195
|
+
getAllSelectorInfo(): Promise<iSelectorInfo[]> | iSelectorInfo[];
|
|
196
|
+
setSelectorVisible(name: string, visible: boolean): void;
|
|
197
|
+
setSelectorModeTranslate(name: string): void;
|
|
198
|
+
setSelectorModeScale(name: string): void;
|
|
199
|
+
setSelectorModeRotate(name: string): void;
|
|
200
|
+
setSelectorPosition(name: string, position: iVectorLike): void;
|
|
201
|
+
setSelectorRotation(name: string, rotation: iVectorLike): void;
|
|
202
|
+
setSelectorScale(name: string, scale: iVectorLike): void;
|
|
203
|
+
deleteSelector(name: string): void;
|
|
204
|
+
addSphereSelector(name: string, option?: iSphereSelectorOption): void;
|
|
205
|
+
addBoxSelector(name: string, option?: iBoxSelectorOption): void;
|
|
206
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { default as EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { iCoreDriver } from './iCoreDriver';
|
|
3
|
+
import { iViewerOption, iViewerMaterialOption, iLoadingOption, iHeaderInfo, iTransform, iVectorLike, iSelectorInfo, iPickingInfo, iCameraPathOption, iCameraParameter, tSelectionMode, tMaskSource, tControlsType, tUniformValue, tCustomDefines, tCustomUniforms } from '../types';
|
|
4
|
+
import { iCollisionTarget } from '../../worker/tavioWorker';
|
|
5
|
+
import { iLatitudeLongitude } from '../../camera/flightControls';
|
|
6
|
+
import { iSphereSelectorOption } from '../../editor/selector/sphereSelector';
|
|
7
|
+
import { iBoxSelectorOption } from '../../editor/selector/boxSelector';
|
|
8
|
+
import { MeshStandardMaterialParameters } from 'three';
|
|
9
|
+
import { WorkerElementAdapter } from './workerElementAdapter';
|
|
10
|
+
/**
|
|
11
|
+
* # OffscreenDriver (Main-Thread RPC Proxy)
|
|
12
|
+
*
|
|
13
|
+
* ## 役割と背景
|
|
14
|
+
* メインスレッド側に位置し、`iCoreDriver` インターフェースを 100% 透過的に実装する RPC プロキシ。
|
|
15
|
+
* アプリケーション(demo/main.ts 等)からの公開 API 呼び出しを受け取ると、
|
|
16
|
+
* `postRpc` を通じて Worker スレッド上の `renderingWorker.ts`(CoreDriver)へ処理を委譲し、
|
|
17
|
+
* Worker 側から発生した描画・更新イベントをメインスレッドのリスナーへバブリング(中継)します。
|
|
18
|
+
*/
|
|
19
|
+
export declare class OffscreenDriver extends EventEmitter implements iCoreDriver {
|
|
20
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
21
|
+
viewerOption: iViewerOption;
|
|
22
|
+
getElementAdapter(): HTMLCanvasElement | OffscreenCanvas | WorkerElementAdapter;
|
|
23
|
+
private worker;
|
|
24
|
+
private reqIdCounter;
|
|
25
|
+
private rpcResolvers;
|
|
26
|
+
private isInitialized;
|
|
27
|
+
constructor(viewerOption?: iViewerOption);
|
|
28
|
+
init(canvas: HTMLCanvasElement | OffscreenCanvas, materialOption?: iViewerMaterialOption): void;
|
|
29
|
+
private bindDomEvents;
|
|
30
|
+
private handleWorkerMessage;
|
|
31
|
+
postCommand(method: string, args?: any[], transferables?: Transferable[]): void;
|
|
32
|
+
private postRpc;
|
|
33
|
+
start(): void;
|
|
34
|
+
pause(): void;
|
|
35
|
+
resume(): void;
|
|
36
|
+
resize(width?: number, height?: number, start?: boolean): void;
|
|
37
|
+
dispose(): void;
|
|
38
|
+
setUniforms(uniforms: Record<string, tUniformValue>): void;
|
|
39
|
+
setPointUniforms(uniforms: Record<string, tUniformValue>): void;
|
|
40
|
+
setColorTemperature(temperature: number): void;
|
|
41
|
+
setColorTint(tint: number): void;
|
|
42
|
+
setColorContrast(contrast: number): void;
|
|
43
|
+
setHSVColor(hsv: iVectorLike): void;
|
|
44
|
+
setColorRGB(rgb: iVectorLike): void;
|
|
45
|
+
setClippingEnabled(enabled: boolean): void;
|
|
46
|
+
setClippingSphere(position: iVectorLike, scale: iVectorLike): void;
|
|
47
|
+
setOutsideClipPointSize(size: number): void;
|
|
48
|
+
setOutsideClipOpacity(opacity: number): void;
|
|
49
|
+
setEffectMinimumScale(value: number): void;
|
|
50
|
+
setEffectDistanceBase(value: number): void;
|
|
51
|
+
setEffectDistanceRange(value: number): void;
|
|
52
|
+
setWorldOrigin(x: number, y: number, z: number): void;
|
|
53
|
+
setEffectDistancePoints(value: number): void;
|
|
54
|
+
setEffectDistanceNearPoints(value: number): void;
|
|
55
|
+
setEffectSonar(value: number): void;
|
|
56
|
+
setEffectSonarRange(value: number): void;
|
|
57
|
+
startBloomPoints(duration?: number): void;
|
|
58
|
+
startDissolveToGaussian(duration?: number, backgroundFadeInDelay?: number, backgroundFadeInDuration?: number): void;
|
|
59
|
+
startSonarWave(duration?: number): void;
|
|
60
|
+
animatePath(name?: string, duration?: number): void;
|
|
61
|
+
startFadeInBackground(duration?: number): void;
|
|
62
|
+
startFadeOutBackground(duration?: number): void;
|
|
63
|
+
applyLocalTransformToSelected(name: string, translation: iVectorLike, rotation: iVectorLike, scale: iVectorLike): void;
|
|
64
|
+
resetLocalTransformOfSelected(name: string): void;
|
|
65
|
+
resetAllLocalTransforms(name: string): void;
|
|
66
|
+
setLocalTransformGizmoEnabled(enabled: boolean): void;
|
|
67
|
+
setLocalTransformGizmoMode(mode: "translate" | "rotate" | "scale"): void;
|
|
68
|
+
setOrbitCursorAutoDisplay(enabled: boolean): void;
|
|
69
|
+
isOrbitCursorAutoDisplayEnabled(): Promise<boolean> | boolean;
|
|
70
|
+
setOrbitCursorDisplay(enabled: boolean): void;
|
|
71
|
+
isOrbitCursorDisplay(): Promise<boolean> | boolean;
|
|
72
|
+
setOrbitCursorScale(scale: number): void;
|
|
73
|
+
setAxisVisible(visible: boolean): void;
|
|
74
|
+
isAxisVisible(): Promise<boolean> | boolean;
|
|
75
|
+
private resolveSource;
|
|
76
|
+
renderShadow(): void;
|
|
77
|
+
loadTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
78
|
+
loadTavioWasm(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
79
|
+
loadPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
80
|
+
loadSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
81
|
+
loadImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
82
|
+
loadCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
83
|
+
concatTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
84
|
+
concatPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
85
|
+
concatSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
86
|
+
concatImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
87
|
+
concatCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
88
|
+
disposeTavioMesh(name: string): void;
|
|
89
|
+
setVisibilityTavioMesh(name: string, visibility: boolean): void;
|
|
90
|
+
setVisibilityPoints(name: string, visibility: boolean): void;
|
|
91
|
+
setBackgroundOpacity(opacity: number): void;
|
|
92
|
+
setBackgroundByTavioMesh(name: string): void;
|
|
93
|
+
setModelTransform(name: string, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
|
|
94
|
+
getModelTransform(name: string): Promise<iTransform | null>;
|
|
95
|
+
setTransform(name: string, index: number, translation: iVectorLike, rotation: iVectorLike, scale: number): void;
|
|
96
|
+
getTransform(name: string, index: number): Promise<iTransform | null>;
|
|
97
|
+
setBillboard(name: string, index: number, flag: boolean): void;
|
|
98
|
+
setCameraParameter(position?: number[] | iVectorLike, target?: number[] | iVectorLike, fov?: number): void;
|
|
99
|
+
setControlsType(controlsType: string): void;
|
|
100
|
+
getControlsType(): Promise<tControlsType>;
|
|
101
|
+
selectCameraPath(name: string): void;
|
|
102
|
+
updateCameraPath(time?: number): void;
|
|
103
|
+
setOrbitPointerDown(isDown: boolean): void;
|
|
104
|
+
setOrbitRelativeRotateLeft(value: number): void;
|
|
105
|
+
setOrbitRelativeRotateUp(value: number): void;
|
|
106
|
+
setOrbitRelativeTranslateLeft(value: number): void;
|
|
107
|
+
setOrbitRelativeTranslateUp(value: number): void;
|
|
108
|
+
setOrbitRelativeDollyOut(value: number): void;
|
|
109
|
+
getOrbitDistance(): Promise<number>;
|
|
110
|
+
setOrbitDistance(distance: number): void;
|
|
111
|
+
setOrbitRotation(pitch: number, yaw: number, isForce?: boolean): void;
|
|
112
|
+
setOrbitRelativeRotation(pitch: number, yaw: number): void;
|
|
113
|
+
setOrbitEnableZoom(enable: boolean): void;
|
|
114
|
+
setOrbitEnablePan(enable: boolean): void;
|
|
115
|
+
setOrbitEnableLimit(enable: boolean): void;
|
|
116
|
+
setOrbitEnableZoomLimit(enable: boolean): void;
|
|
117
|
+
addAmbientLight(color: number, intensity: number): void;
|
|
118
|
+
setAmbientLightIntensity(intensity: number): void;
|
|
119
|
+
setSpotLightPosition(position: iVectorLike): void;
|
|
120
|
+
setSpotLightTargetPosition(target: iVectorLike): void;
|
|
121
|
+
setSpotLightIntensity(intensity: number): void;
|
|
122
|
+
setSpotLightDistance(distance: number): void;
|
|
123
|
+
setSpotLightAngle(angle: number): void;
|
|
124
|
+
setSpotLightPenumbra(penumbra: number): void;
|
|
125
|
+
setSpotLightDecay(decay: number): void;
|
|
126
|
+
addSpotLight(position: iVectorLike, target: iVectorLike, color: number, intensity: number, distance: number, angle: number, penumbra: number, decay: number, castShadow?: boolean, isDebug?: boolean): void;
|
|
127
|
+
addWhiteCube(position?: iVectorLike, scale?: iVectorLike, receiveShadow?: boolean, materialOption?: MeshStandardMaterialParameters): void;
|
|
128
|
+
saveSplatWasm(name: string, fileName?: string): Promise<any>;
|
|
129
|
+
savePlyWasm(name: string, fileName?: string): Promise<any>;
|
|
130
|
+
saveSpzWasm(name: string, fileName?: string): Promise<any>;
|
|
131
|
+
saveTavioWasm(name: string, fileName?: string, options?: any): Promise<any>;
|
|
132
|
+
exportTavioWasm(name: string, options?: any): Promise<any>;
|
|
133
|
+
addTavioMesh(name: string): void;
|
|
134
|
+
getFirstMeshName(): Promise<string | null>;
|
|
135
|
+
createRenderView(name: string | Symbol): void;
|
|
136
|
+
setRenderView(name?: string | Symbol | null): void;
|
|
137
|
+
getCurrentRenderViewName(): Promise<string | null>;
|
|
138
|
+
setRenderViewSize(renderViewName?: string | Symbol, x?: number, y?: number, width?: number, height?: number, start?: boolean): void;
|
|
139
|
+
getWorldPositionByRenderView(x: number, y: number, isDebug?: boolean): Promise<iPickingInfo | null>;
|
|
140
|
+
setCustomDefines(defines: tCustomDefines): void;
|
|
141
|
+
setCustomUniforms(uniforms: tCustomUniforms): void;
|
|
142
|
+
setGaussianScale(scale: number): void;
|
|
143
|
+
setOpacityAdditive(opacity: number): void;
|
|
144
|
+
setOpacityMultiplier(multiplier: number): void;
|
|
145
|
+
setOpacityPoints(opacity: number): void;
|
|
146
|
+
setSphericalHarmonicsIntensity(intensity: number): void;
|
|
147
|
+
setColorBlur(blur: number): void;
|
|
148
|
+
setColorSharpness(sharpness: number): void;
|
|
149
|
+
getCameraParameter(): Promise<iCameraParameter>;
|
|
150
|
+
setCameraColliderEnabled(enabled: boolean): void;
|
|
151
|
+
setCameraColliderSelector(selectorNames?: string[]): void;
|
|
152
|
+
setInteractiveMode(interactive: boolean): void;
|
|
153
|
+
getInteractiveMode(): Promise<boolean>;
|
|
154
|
+
createCameraPath(position: number[][] | iVectorLike[], target: number[][] | iVectorLike[], debug?: boolean): void;
|
|
155
|
+
addCameraPath(name: string, position: number[][] | iVectorLike[], target: number[][] | iVectorLike[], debug?: boolean): void;
|
|
156
|
+
removeCameraPath(name: string): void;
|
|
157
|
+
getPathNames(): Promise<string[]>;
|
|
158
|
+
getActiveCameraPathName(): Promise<string | null>;
|
|
159
|
+
getCameraPathByTime(name?: string, time?: number): Promise<{
|
|
160
|
+
position: iVectorLike;
|
|
161
|
+
target: iVectorLike;
|
|
162
|
+
} | null>;
|
|
163
|
+
getCameraPathTime(): Promise<number>;
|
|
164
|
+
setCameraPathOption(option: iCameraPathOption): void;
|
|
165
|
+
setCameraPathCollisionRadius(radius: number): void;
|
|
166
|
+
setCameraPathInteraction(x: number, y: number): void;
|
|
167
|
+
setTransferPosition(position: iVectorLike): void;
|
|
168
|
+
moveTransferByDirection(offset: iVectorLike, scale: number, isForce?: boolean): void;
|
|
169
|
+
setTransferFov(fov: number): void;
|
|
170
|
+
getFlightParameter(): Promise<iLatitudeLongitude | null>;
|
|
171
|
+
setFlightLongitude(longitude: number): void;
|
|
172
|
+
setFlightLatitude(latitude: number): void;
|
|
173
|
+
setOrbitOverflow(value: number): void;
|
|
174
|
+
setOrbitUpLimit(value: number): void;
|
|
175
|
+
setOrbitDownLimit(value: number): void;
|
|
176
|
+
setOrbitLeftLimit(value: number): void;
|
|
177
|
+
setOrbitRightLimit(value: number): void;
|
|
178
|
+
setOrbitZoomInLimit(value: number): void;
|
|
179
|
+
setOrbitZoomOutLimit(value: number): void;
|
|
180
|
+
selectSplatByScreenArea(minX: number, minY: number, maxX: number, maxY: number, mode?: tSelectionMode, maskCanvas?: tMaskSource | {
|
|
181
|
+
width: number;
|
|
182
|
+
height: number;
|
|
183
|
+
data: ArrayBuffer;
|
|
184
|
+
}): void;
|
|
185
|
+
removeTavioMesh(name: string, renderViewName?: string | Symbol): void;
|
|
186
|
+
removeTavioMeshAllRenderView(name: string): void;
|
|
187
|
+
setUsingSphericalHarmonics(isUsing: boolean): void;
|
|
188
|
+
setDropShadow(enabled: boolean): void;
|
|
189
|
+
setControlsAttenuation(attenuation: number): void;
|
|
190
|
+
setFlightRelativeLatitude(latitude: number, isForce?: boolean): void;
|
|
191
|
+
setFlightRelativeLongitude(longitude: number, isForce?: boolean): void;
|
|
192
|
+
setTransferRelativePosition(position: iVectorLike, isForce?: boolean): void;
|
|
193
|
+
moveTransferByHorizontalDirection(x: number, y: number, scale: number, isForce?: boolean): void;
|
|
194
|
+
moveTransferToTop(scale: number, isForce?: boolean): void;
|
|
195
|
+
moveTransferToBottom(scale: number, isForce?: boolean): void;
|
|
196
|
+
getCameraColliderEnabled(): Promise<boolean>;
|
|
197
|
+
getRenderViewCount(): Promise<number>;
|
|
198
|
+
setFrameRateLimit(fps: number): void;
|
|
199
|
+
setDevicePixelRatio(value: number): void;
|
|
200
|
+
getDevicePixelRatio(): number | null;
|
|
201
|
+
getHeaderInfo(name: string): Promise<iHeaderInfo | null>;
|
|
202
|
+
setCollisionReversed(reversed: boolean): void;
|
|
203
|
+
deleteSelectedGaussian(): void;
|
|
204
|
+
undoDeletedGaussian(): void;
|
|
205
|
+
resetDeletedGaussian(): void;
|
|
206
|
+
resetCollision(): void;
|
|
207
|
+
setCollision(collision: iCollisionTarget | iCollisionTarget[], mode?: tSelectionMode): void;
|
|
208
|
+
checkCollisionBySelector(name: string, mode?: tSelectionMode): void;
|
|
209
|
+
checkCollisionBySelectors(names: string[], mode?: tSelectionMode): void;
|
|
210
|
+
checkCollisionByAllSelectors(mode?: tSelectionMode): void;
|
|
211
|
+
getAllSelectorInfo(): Promise<iSelectorInfo[]>;
|
|
212
|
+
setSelectorVisible(name: string, visible: boolean): void;
|
|
213
|
+
setSelectorModeTranslate(name: string): void;
|
|
214
|
+
setSelectorModeScale(name: string): void;
|
|
215
|
+
setSelectorModeRotate(name: string): void;
|
|
216
|
+
setSelectorPosition(name: string, position: iVectorLike): void;
|
|
217
|
+
setSelectorRotation(name: string, rotation: iVectorLike): void;
|
|
218
|
+
setSelectorScale(name: string, scale: iVectorLike): void;
|
|
219
|
+
deleteSelector(name: string): void;
|
|
220
|
+
addSphereSelector(name: string, option?: iSphereSelectorOption): void;
|
|
221
|
+
addBoxSelector(name: string, option?: iBoxSelectorOption): void;
|
|
222
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # RPC / Event Message Protocol for Offscreen Worker
|
|
3
|
+
*
|
|
4
|
+
* ## 役割と背景
|
|
5
|
+
* Offscreen Worker モードにおいて、メインスレッドと Worker スレッド間で型安全な
|
|
6
|
+
* 非同期メソッド呼び出し(RPC)および双方向イベント伝播(Event Bubbling)を行うためのプロトコル定義。
|
|
7
|
+
*/
|
|
8
|
+
export interface WorkerCmdMessage {
|
|
9
|
+
type: "cmd";
|
|
10
|
+
method: string;
|
|
11
|
+
args: any[];
|
|
12
|
+
}
|
|
13
|
+
export interface WorkerRpcMessage {
|
|
14
|
+
type: "rpc";
|
|
15
|
+
reqId: number;
|
|
16
|
+
method: string;
|
|
17
|
+
args: any[];
|
|
18
|
+
}
|
|
19
|
+
export interface WorkerRpcReplyMessage {
|
|
20
|
+
type: "rpc:reply";
|
|
21
|
+
reqId: number;
|
|
22
|
+
result?: any;
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface WorkerEventMessage {
|
|
26
|
+
type: "event";
|
|
27
|
+
name: string;
|
|
28
|
+
payload?: any;
|
|
29
|
+
}
|
|
30
|
+
export type WorkerMessage = WorkerCmdMessage | WorkerRpcMessage | WorkerRpcReplyMessage | WorkerEventMessage;
|
|
31
|
+
/**
|
|
32
|
+
* 転送不可なオブジェクトや DOM 依存オブジェクトをメッセージパラメータ用に安全にクリーンアップする
|
|
33
|
+
*
|
|
34
|
+
* ## 役割と背景
|
|
35
|
+
* postMessage は HTMLCanvasElement や関数などのクローン不可能なオブジェクトを送信すると
|
|
36
|
+
* DataCloneError を発生させます。本関数は引数配列を事前走査し、安全に転送可能な
|
|
37
|
+
* プレーンデータ / ArrayBuffer / TypedArray / Blob のみを抽出・サニタイズします。
|
|
38
|
+
*/
|
|
39
|
+
export declare function sanitizeArgsForMessage(args: any[]): any[];
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Worker Element Adapter (DOM Emulator in Worker)
|
|
3
|
+
*
|
|
4
|
+
* ## 役割と背景
|
|
5
|
+
* Web Worker 環境には `document` や `window` や `HTMLCanvasElement` が存在しません。
|
|
6
|
+
* 本クラスは、メインスレッド側でキャッチされた pointerdown / pointermove / wheel などの DOM イベントを
|
|
7
|
+
* Worker 内で受領し、Three.js の Controls(OrbitControls / TransferControls など)が
|
|
8
|
+
* あたかも本物の DOM 要素からイベントを受け取っているかのようにエミュレートするアダプターです。
|
|
9
|
+
*/
|
|
10
|
+
export interface SyntheticPointerEventInit {
|
|
11
|
+
type: string;
|
|
12
|
+
pointerId?: number;
|
|
13
|
+
pointerType?: string;
|
|
14
|
+
clientX?: number;
|
|
15
|
+
clientY?: number;
|
|
16
|
+
offsetX?: number;
|
|
17
|
+
offsetY?: number;
|
|
18
|
+
button?: number;
|
|
19
|
+
buttons?: number;
|
|
20
|
+
altKey?: boolean;
|
|
21
|
+
ctrlKey?: boolean;
|
|
22
|
+
metaKey?: boolean;
|
|
23
|
+
shiftKey?: boolean;
|
|
24
|
+
deltaX?: number;
|
|
25
|
+
deltaY?: number;
|
|
26
|
+
boundingLeft?: number;
|
|
27
|
+
boundingTop?: number;
|
|
28
|
+
boundingWidth?: number;
|
|
29
|
+
boundingHeight?: number;
|
|
30
|
+
}
|
|
31
|
+
export declare class WorkerElementAdapter {
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
clientWidth: number;
|
|
35
|
+
clientHeight: number;
|
|
36
|
+
boundingLeft: number;
|
|
37
|
+
boundingTop: number;
|
|
38
|
+
style: Record<string, string>;
|
|
39
|
+
private ownerListeners;
|
|
40
|
+
ownerDocument: any;
|
|
41
|
+
private listeners;
|
|
42
|
+
constructor(width?: number, height?: number);
|
|
43
|
+
setSize(width: number, height: number): void;
|
|
44
|
+
addEventListener(type: string, listener: (evt: any) => void): void;
|
|
45
|
+
removeEventListener(type: string, listener: (evt: any) => void): void;
|
|
46
|
+
dispatchEvent(event: any): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* メインスレッドから転送されたイベント情報をもとに合成イベントを作成して一括配信する
|
|
49
|
+
*/
|
|
50
|
+
dispatchTransferredEvent(init: SyntheticPointerEventInit): void;
|
|
51
|
+
getContext(): null;
|
|
52
|
+
getBoundingClientRect(): {
|
|
53
|
+
left: number;
|
|
54
|
+
top: number;
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
right: number;
|
|
58
|
+
bottom: number;
|
|
59
|
+
x: number;
|
|
60
|
+
y: number;
|
|
61
|
+
};
|
|
62
|
+
setPointerCapture(): void;
|
|
63
|
+
releasePointerCapture(): void;
|
|
64
|
+
focus(): void;
|
|
65
|
+
blur(): void;
|
|
66
|
+
}
|
|
@@ -1,36 +1,20 @@
|
|
|
1
1
|
import { RawShaderMaterial } from 'three';
|
|
2
|
-
|
|
3
|
-
* MaterialGenerator は原則として static なメソッドのみで実装しステートを持たない。
|
|
4
|
-
*
|
|
5
|
-
* ビューアの基本機能については src/shaderChunk 以下にシェーダのチャンクとなる各部品を置く。
|
|
6
|
-
* src/shaderChunk/common 以下にあるシェーダは 3DGS を描画するのみで色もつかない、最もシンプルな形。
|
|
7
|
-
* src/shaderChunk/viewer は直流成分および交流成分の計算など、ビューアの基本機能を拡張する。
|
|
8
|
-
* src/shaderChunk/editor はカラーグレーディングなどのエディタ用機能。
|
|
9
|
-
* src/shaderChunk/picking は座標をレンダリングするピッキング用のシェーダ。
|
|
10
|
-
*
|
|
11
|
-
* 独自に拡張する場合は、iMaterialOption 単体またはその配列を定義し MaterialGenerator.generate() に渡す。
|
|
12
|
-
* iMaterialOption.target で、ベーシックやピッキングなどのシェーダを結合する対象を(CHUNK_TARGET の論理和で)指定する。
|
|
13
|
-
* iMaterialOption.uniforms で拡張部分で用いる uniform 変数を定義。
|
|
14
|
-
* iMaterialOption.vertex / fragment でシェーダのチャンク情報を iShaderChunk 単体または配列で指定する。
|
|
15
|
-
*
|
|
16
|
-
* iShaderChunk.stage は SHADER_STAGE で定義されているシェーダ内のステージの指定。
|
|
17
|
-
* iShaderChunk.source はシェーダのソースコード。
|
|
18
|
-
*
|
|
19
|
-
* このファイル内で定義されているシェーダのチャンクは src/shaderChunk/common 以下にあるもののみ。
|
|
20
|
-
* それ以外のチャンクは canvas.ts など、ビューア実装側で付与する。
|
|
21
|
-
*/
|
|
2
|
+
import { tCustomUniforms, tCustomDefines, tUniformValue } from './types';
|
|
22
3
|
/**
|
|
23
4
|
* チャンクをどのシェーダに反映するかを表す
|
|
24
5
|
* これらの値は論理和を用いて組み合わせて指定できる
|
|
25
6
|
*/
|
|
26
7
|
export declare const CHUNK_TARGET: {
|
|
27
8
|
readonly ANY: 0;
|
|
28
|
-
readonly
|
|
29
|
-
readonly
|
|
30
|
-
readonly
|
|
31
|
-
readonly
|
|
9
|
+
readonly ANY_SPLAT: 1;
|
|
10
|
+
readonly BASIC: 2;
|
|
11
|
+
readonly PICKING: 4;
|
|
12
|
+
readonly SHADOWING: 8;
|
|
13
|
+
readonly INDEX_SELECTION: 16;
|
|
14
|
+
readonly POINTS: 32;
|
|
32
15
|
};
|
|
33
|
-
export type
|
|
16
|
+
export type tChunkTargetValue = typeof CHUNK_TARGET[keyof typeof CHUNK_TARGET];
|
|
17
|
+
export type tChunkTarget = tChunkTargetValue | (number & {});
|
|
34
18
|
/**
|
|
35
19
|
* チャンクがどのステージにあたるかを表す
|
|
36
20
|
* 指定されたステージの末尾に処理が追加される
|
|
@@ -69,6 +53,7 @@ export interface iMaterials {
|
|
|
69
53
|
picking: RawShaderMaterial;
|
|
70
54
|
shadowing: RawShaderMaterial;
|
|
71
55
|
indexSelection: RawShaderMaterial;
|
|
56
|
+
points: RawShaderMaterial;
|
|
72
57
|
}
|
|
73
58
|
/**
|
|
74
59
|
* マテリアル生成に使われるシェーダチャンク
|
|
@@ -82,8 +67,8 @@ export interface iShaderChunk {
|
|
|
82
67
|
*/
|
|
83
68
|
export interface iMaterialOption {
|
|
84
69
|
target: tChunkTarget;
|
|
85
|
-
uniforms?:
|
|
86
|
-
defines?:
|
|
70
|
+
uniforms?: tCustomUniforms | Record<string, tUniformValue>;
|
|
71
|
+
defines?: tCustomDefines;
|
|
87
72
|
vertex?: iShaderChunk | iShaderChunk[];
|
|
88
73
|
fragment?: iShaderChunk | iShaderChunk[];
|
|
89
74
|
}
|
|
@@ -99,6 +84,18 @@ export declare class MaterialGenerator {
|
|
|
99
84
|
* shaderChunk/common に含まれるフラグメントシェーダのチャンクをセットした Map オブジェクトを生成する
|
|
100
85
|
*/
|
|
101
86
|
private static _createFragmentMap;
|
|
87
|
+
/**
|
|
88
|
+
* shaderChunk/points に含まれる頂点シェーダのチャンクをセットした Map オブジェクトを生成する
|
|
89
|
+
*/
|
|
90
|
+
private static _createPointsVertexMap;
|
|
91
|
+
/**
|
|
92
|
+
* shaderChunk/points に含まれるフラグメントシェーダのチャンクをセットした Map オブジェクトを生成する
|
|
93
|
+
*/
|
|
94
|
+
private static _createPointsFragmentMap;
|
|
95
|
+
/**
|
|
96
|
+
* 点描画マテリアル用 uniform 変数の初期値を生成する
|
|
97
|
+
*/
|
|
98
|
+
private static _createPointsUniforms;
|
|
102
99
|
/**
|
|
103
100
|
* シェーダチャンクに iMaterialOption.vertex / fragment に含まれるソースコードを結合する
|
|
104
101
|
* @param option - シェーダチャンクを含むマテリアルオプション
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Group, SpotLight, PerspectiveCamera, Quaternion, Scene, Vector3, AmbientLight, CameraHelper } from 'three';
|
|
2
|
-
import { tControlInstance, tControlsType } from './
|
|
1
|
+
import { AxesHelper, Group, SpotLight, PerspectiveCamera, Quaternion, Scene, Vector3, AmbientLight, CameraHelper } from 'three';
|
|
2
|
+
import { tControlInstance, tControlsType } from './types';
|
|
3
3
|
import { CameraCollider } from '../camera/cameraCollider';
|
|
4
4
|
import { TransferControls } from '../camera/transferControls';
|
|
5
5
|
import { CameraPathManager } from '../camera/cameraPathManager';
|
|
@@ -43,9 +43,10 @@ export declare class RenderView {
|
|
|
43
43
|
previousRotation: Quaternion;
|
|
44
44
|
previousFov: number;
|
|
45
45
|
orbitCursor: Group;
|
|
46
|
-
previousOrbitTarget: Vector3;
|
|
47
46
|
orbitCursorAutoDisplay: boolean;
|
|
48
47
|
orbitCursorDisplay: boolean;
|
|
48
|
+
previousOrbitTarget: Vector3;
|
|
49
|
+
axesHelper?: AxesHelper;
|
|
49
50
|
/**
|
|
50
51
|
* @param name - レンダービューの名前
|
|
51
52
|
*/
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RawShaderMaterial } from 'three';
|
|
2
|
+
import { iViewerMaterialOption, iViewerOption } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* シェーダマテリアルの生成およびレジストリ管理を行う
|
|
5
|
+
*/
|
|
6
|
+
export declare class ShaderRegistry {
|
|
7
|
+
gaussianMaterial: RawShaderMaterial;
|
|
8
|
+
gaussianPickingMaterial: RawShaderMaterial;
|
|
9
|
+
gaussianShadowingMaterial: RawShaderMaterial;
|
|
10
|
+
gaussianIndexSelectionMaterial: RawShaderMaterial;
|
|
11
|
+
gaussianPointMaterial: RawShaderMaterial;
|
|
12
|
+
/**
|
|
13
|
+
* マテリアルをセットアップする
|
|
14
|
+
* @param viewerOption - ビューアのオプション
|
|
15
|
+
* @param option - シェーダチャンクなどの情報を含むマテリアルオプション
|
|
16
|
+
*/
|
|
17
|
+
setupMaterial(viewerOption: iViewerOption, option?: iViewerMaterialOption): void;
|
|
18
|
+
/**
|
|
19
|
+
* 保持しているマテリアルリソースを破棄する
|
|
20
|
+
*/
|
|
21
|
+
dispose(): void;
|
|
22
|
+
}
|