@hatiolab/things-scene 10.0.0-beta.9 → 10.0.0-beta.90
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/CHANGELOG.md +77 -0
- package/dist-types/animation/animate.d.ts.map +1 -1
- package/dist-types/animation/animations/animation.d.ts.map +1 -1
- package/dist-types/animation/animations/heartbeat.d.ts +0 -7
- package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
- package/dist-types/animation/animations/waypoint.d.ts +45 -4
- package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
- package/dist-types/animation/interfaces.d.ts +1 -1
- package/dist-types/animation/interfaces.d.ts.map +1 -1
- package/dist-types/command/command-migrate.d.ts.map +1 -1
- package/dist-types/command/snapshot-commander.d.ts.map +1 -1
- package/dist-types/components/audio.d.ts.map +1 -1
- package/dist-types/components/component-data.d.ts +24 -0
- package/dist-types/components/component-data.d.ts.map +1 -1
- package/dist-types/components/component.d.ts +5 -0
- package/dist-types/components/component.d.ts.map +1 -1
- package/dist-types/components/container-abstract.d.ts +34 -1
- package/dist-types/components/container-abstract.d.ts.map +1 -1
- package/dist-types/components/container.d.ts +1 -1
- package/dist-types/components/container.d.ts.map +1 -1
- package/dist-types/components/data/data.d.ts.map +1 -1
- package/dist-types/components/drawer/fill.d.ts.map +1 -1
- package/dist-types/components/drawer/stroke.d.ts.map +1 -1
- package/dist-types/components/generic-placeholders.d.ts +287 -0
- package/dist-types/components/generic-placeholders.d.ts.map +1 -0
- package/dist-types/components/geometry/snap-guide.d.ts +45 -0
- package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
- package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
- package/dist-types/components/global-ref.d.ts.map +1 -1
- package/dist-types/components/group.d.ts +1 -0
- package/dist-types/components/group.d.ts.map +1 -1
- package/dist-types/components/html/shadow.d.ts +33 -1
- package/dist-types/components/html/shadow.d.ts.map +1 -1
- package/dist-types/components/html-overlay-container.d.ts +1 -1
- package/dist-types/components/html-overlay-container.d.ts.map +1 -1
- package/dist-types/components/html-overlay-element.d.ts.map +1 -1
- package/dist-types/components/image-view.d.ts.map +1 -1
- package/dist-types/components/index.d.ts +6 -0
- package/dist-types/components/index.d.ts.map +1 -1
- package/dist-types/components/line.d.ts +2 -1
- package/dist-types/components/line.d.ts.map +1 -1
- package/dist-types/components/mixins/gltf-component.d.ts +276 -0
- package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
- package/dist-types/components/mixins/html-element.d.ts.map +1 -1
- package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
- package/dist-types/components/mixins/three-d-only.d.ts +243 -0
- package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
- package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
- package/dist-types/components/mutater/path.d.ts.map +1 -1
- package/dist-types/components/popup-container.d.ts +25 -0
- package/dist-types/components/popup-container.d.ts.map +1 -0
- package/dist-types/components/popup.d.ts +30 -0
- package/dist-types/components/popup.d.ts.map +1 -1
- package/dist-types/components/position/popup-position.d.ts +11 -0
- package/dist-types/components/position/popup-position.d.ts.map +1 -1
- package/dist-types/components/root-container.d.ts +11 -4
- package/dist-types/components/root-container.d.ts.map +1 -1
- package/dist-types/components/service-component.d.ts +264 -0
- package/dist-types/components/service-component.d.ts.map +1 -0
- package/dist-types/decorator/decorator-registry.d.ts +4 -0
- package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
- package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
- package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
- package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
- package/dist-types/diagnostics/data-lag-tracker.d.ts +44 -0
- package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
- package/dist-types/diagnostics/inspector.d.ts +14 -4
- package/dist-types/diagnostics/inspector.d.ts.map +1 -1
- package/dist-types/diagnostics/load-tracker.d.ts +82 -0
- package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
- package/dist-types/diagnostics/loading-overlay.d.ts +41 -0
- package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
- package/dist-types/effect/shadow.d.ts +3 -1
- package/dist-types/effect/shadow.d.ts.map +1 -1
- package/dist-types/event-map/index.d.ts +1 -0
- package/dist-types/event-map/index.d.ts.map +1 -1
- package/dist-types/event-map/transition-handler.d.ts +2 -0
- package/dist-types/event-map/transition-handler.d.ts.map +1 -0
- package/dist-types/interfaces/providers.d.ts +20 -3
- package/dist-types/interfaces/providers.d.ts.map +1 -1
- package/dist-types/interfaces/rendering.d.ts +86 -14
- package/dist-types/interfaces/rendering.d.ts.map +1 -1
- package/dist-types/layer/action/popup.d.ts +13 -0
- package/dist-types/layer/action/popup.d.ts.map +1 -1
- package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
- package/dist-types/layer/index.d.ts +1 -0
- package/dist-types/layer/index.d.ts.map +1 -1
- package/dist-types/layer/layer.d.ts +1 -0
- package/dist-types/layer/layer.d.ts.map +1 -1
- package/dist-types/layer/model-layer.d.ts +53 -7
- package/dist-types/layer/model-layer.d.ts.map +1 -1
- package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
- package/dist-types/layer/modeling-layer.d.ts.map +1 -1
- package/dist-types/layer/selection/selected-finder.d.ts +1 -1
- package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
- package/dist-types/layer/selection-layer.d.ts.map +1 -1
- package/dist-types/layer/snap-guide-layer.d.ts +23 -0
- package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
- package/dist-types/search/index.d.ts +3 -0
- package/dist-types/search/index.d.ts.map +1 -0
- package/dist-types/search/scene-search-engine.d.ts +65 -0
- package/dist-types/search/scene-search-engine.d.ts.map +1 -0
- package/dist-types/search/search-overlay.d.ts +69 -0
- package/dist-types/search/search-overlay.d.ts.map +1 -0
- package/dist-types/things-scene/api/align.d.ts.map +1 -1
- package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
- package/dist-types/things-scene/api/place.d.ts.map +1 -1
- package/dist-types/things-scene/application-context.d.ts +43 -0
- package/dist-types/things-scene/application-context.d.ts.map +1 -1
- package/dist-types/things-scene/create.d.ts +38 -3
- package/dist-types/things-scene/create.d.ts.map +1 -1
- package/dist-types/things-scene/index.d.ts +10 -0
- package/dist-types/things-scene/index.d.ts.map +1 -1
- package/dist-types/things-scene/scene.d.ts +64 -1
- package/dist-types/things-scene/scene.d.ts.map +1 -1
- package/dist-types/threed/arrow-3d.d.ts +13 -4
- package/dist-types/threed/arrow-3d.d.ts.map +1 -1
- package/dist-types/threed/environments/base-environment.d.ts +9 -0
- package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
- package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/factory-environment.d.ts +2 -3
- package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/home-environment.d.ts +2 -3
- package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/office-environment.d.ts +2 -3
- package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
- package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/studio-environment.d.ts +2 -3
- package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
- package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
- package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
- package/dist-types/threed/environments/warehouse-environment.d.ts +2 -3
- package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
- package/dist-types/threed/factories/backdrop.d.ts +525 -0
- package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
- package/dist-types/threed/factories/banner.d.ts +35 -34
- package/dist-types/threed/factories/banner.d.ts.map +1 -1
- package/dist-types/threed/factories/camera.d.ts +34 -33
- package/dist-types/threed/factories/camera.d.ts.map +1 -1
- package/dist-types/threed/factories/cube.d.ts +34 -33
- package/dist-types/threed/factories/cube.d.ts.map +1 -1
- package/dist-types/threed/factories/cylinder.d.ts +1 -0
- package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
- package/dist-types/threed/factories/decal.d.ts +502 -0
- package/dist-types/threed/factories/decal.d.ts.map +1 -0
- package/dist-types/threed/factories/floor-plate.d.ts +10 -0
- package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
- package/dist-types/threed/factories/gltf-object.d.ts +286 -68
- package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
- package/dist-types/threed/factories/group.d.ts +2 -0
- package/dist-types/threed/factories/group.d.ts.map +1 -0
- package/dist-types/threed/factories/light.d.ts +1 -0
- package/dist-types/threed/factories/light.d.ts.map +1 -1
- package/dist-types/threed/factories/line.d.ts +10 -0
- package/dist-types/threed/factories/line.d.ts.map +1 -0
- package/dist-types/threed/factories/ortholine.d.ts +10 -0
- package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
- package/dist-types/threed/factories/polygon.d.ts.map +1 -1
- package/dist-types/threed/factories/polyline.d.ts +10 -0
- package/dist-types/threed/factories/polyline.d.ts.map +1 -0
- package/dist-types/threed/factories/rect.d.ts.map +1 -1
- package/dist-types/threed/factories/sphere.d.ts +6 -0
- package/dist-types/threed/factories/sphere.d.ts.map +1 -1
- package/dist-types/threed/factories/sprite.d.ts +34 -33
- package/dist-types/threed/factories/sprite.d.ts.map +1 -1
- package/dist-types/threed/factories/triangle.d.ts.map +1 -1
- package/dist-types/threed/factories/wall.d.ts +34 -33
- package/dist-types/threed/factories/wall.d.ts.map +1 -1
- package/dist-types/threed/floor/floor.d.ts.map +1 -1
- package/dist-types/threed/handle-3d.d.ts +21 -0
- package/dist-types/threed/handle-3d.d.ts.map +1 -0
- package/dist-types/threed/html/elements.d.ts.map +1 -1
- package/dist-types/threed/index.d.ts +20 -0
- package/dist-types/threed/index.d.ts.map +1 -1
- package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
- package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
- package/dist-types/threed/managers/camera-bookmark-manager.d.ts +127 -0
- package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -0
- package/dist-types/threed/managers/camera-manager.d.ts +9 -3
- package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/controls-manager.d.ts +25 -4
- package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/event-manager3d.d.ts +8 -0
- package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
- package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
- package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts +55 -1
- package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/index.d.ts +3 -0
- package/dist-types/threed/managers/index.d.ts.map +1 -1
- package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
- package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/light-manager.d.ts +15 -0
- package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
- package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/scene-manager.d.ts +6 -2
- package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
- package/dist-types/threed/managers/types.d.ts +5 -2
- package/dist-types/threed/managers/types.d.ts.map +1 -1
- package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +109 -0
- package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
- package/dist-types/threed/material-3d.d.ts +5 -2
- package/dist-types/threed/material-3d.d.ts.map +1 -1
- package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
- package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
- package/dist-types/threed/real-object-dom-element.d.ts +1 -0
- package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
- package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
- package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
- package/dist-types/threed/real-object-external-model.d.ts +24 -0
- package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
- package/dist-types/threed/real-object-extrude.d.ts +6 -0
- package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
- package/dist-types/threed/real-object-gltf.d.ts +42 -12
- package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
- package/dist-types/threed/real-object-group.d.ts +2 -0
- package/dist-types/threed/real-object-group.d.ts.map +1 -1
- package/dist-types/threed/real-object-line.d.ts +83 -0
- package/dist-types/threed/real-object-line.d.ts.map +1 -0
- package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
- package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
- package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
- package/dist-types/threed/real-object-service.d.ts +14 -0
- package/dist-types/threed/real-object-service.d.ts.map +1 -0
- package/dist-types/threed/real-object-sprite.d.ts +7 -1
- package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
- package/dist-types/threed/real-object-text.d.ts +3 -0
- package/dist-types/threed/real-object-text.d.ts.map +1 -1
- package/dist-types/threed/real-object.d.ts +131 -6
- package/dist-types/threed/real-object.d.ts.map +1 -1
- package/dist-types/threed/text-editor-3d.d.ts +11 -0
- package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
- package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
- package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
- package/dist-types/threed/texture/fillstyle-texture.d.ts +46 -0
- package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
- package/dist-types/threed/texture/text-texture.d.ts +15 -0
- package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
- package/dist-types/threed/three-capability.d.ts +142 -6
- package/dist-types/threed/three-capability.d.ts.map +1 -1
- package/dist-types/threed/three-container.d.ts +0 -1
- package/dist-types/threed/three-container.d.ts.map +1 -1
- package/dist-types/threed/three-dimensional-container.d.ts +0 -1
- package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
- package/dist-types/threed/utils/anchor.d.ts +33 -0
- package/dist-types/threed/utils/anchor.d.ts.map +1 -0
- package/dist-types/threed/utils/dispose.d.ts.map +1 -1
- package/dist-types/threed/utils/tether.d.ts +46 -0
- package/dist-types/threed/utils/tether.d.ts.map +1 -0
- package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
- package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
- package/dist-types/transfer/container-capacity.d.ts +42 -0
- package/dist-types/transfer/container-capacity.d.ts.map +1 -0
- package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
- package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
- package/dist-types/transfer/index.d.ts +7 -0
- package/dist-types/transfer/index.d.ts.map +1 -0
- package/dist-types/transfer/simulation-clock.d.ts +45 -0
- package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
- package/dist-types/transfer/types.d.ts +285 -0
- package/dist-types/transfer/types.d.ts.map +1 -0
- package/dist-types/transition/transition-effect.d.ts +91 -0
- package/dist-types/transition/transition-effect.d.ts.map +1 -0
- package/dist-types/types/bounding.d.ts +1 -1
- package/dist-types/types/bounding.d.ts.map +1 -1
- package/package.json +12 -1
- package/things-scene-min.js +12 -13
- package/things-scene-min.js.map +1 -1
- package/things-scene-transfer.mjs +1 -0
- package/things-scene.mjs +8 -9
- package/things-scene.mjs.map +1 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type Component from '../components/component.js';
|
|
2
|
+
/**
|
|
3
|
+
* 검색 결과 하나를 나타낸다.
|
|
4
|
+
*/
|
|
5
|
+
export interface SearchResult {
|
|
6
|
+
/** 매칭된 컴포넌트 */
|
|
7
|
+
component: Component;
|
|
8
|
+
/** 매칭 카테고리 */
|
|
9
|
+
matchType: 'id' | 'name' | 'tag' | 'type' | 'class' | 'text' | 'data' | 'property';
|
|
10
|
+
/** 매칭된 필드 이름 (예: 'accessor', 'fillStyle') */
|
|
11
|
+
matchField: string;
|
|
12
|
+
/** 매칭된 값 */
|
|
13
|
+
matchValue: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SearchOptions {
|
|
16
|
+
/** 검색할 필드 범위 (기본: 전체) */
|
|
17
|
+
fields?: SearchResult['matchType'][];
|
|
18
|
+
/** 대소문자 구분 (기본: false) */
|
|
19
|
+
caseSensitive?: boolean;
|
|
20
|
+
/** hidden 컴포넌트 포함 (기본: false) */
|
|
21
|
+
includeHidden?: boolean;
|
|
22
|
+
/** 최대 결과 수 (기본: 무제한) */
|
|
23
|
+
maxResults?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* things-scene 컴포넌트 트리를 대상으로 텍스트 검색을 수행하는 엔진.
|
|
27
|
+
*
|
|
28
|
+
* 에디터/뷰어, 2D/3D 모드 공용.
|
|
29
|
+
* 검색 대상: id, name, tag, type, class, text, data-binding(accessor/target/property), 주요 속성값.
|
|
30
|
+
*/
|
|
31
|
+
export declare class SceneSearchEngine {
|
|
32
|
+
private _results;
|
|
33
|
+
private _currentIndex;
|
|
34
|
+
private _lastQuery;
|
|
35
|
+
get results(): readonly SearchResult[];
|
|
36
|
+
get currentIndex(): number;
|
|
37
|
+
get currentResult(): SearchResult | undefined;
|
|
38
|
+
get resultCount(): number;
|
|
39
|
+
/**
|
|
40
|
+
* 컴포넌트 트리에서 query를 검색한다.
|
|
41
|
+
* 동일 컴포넌트가 여러 필드에서 매칭되면 첫 번째 매칭만 결과에 포함한다.
|
|
42
|
+
*/
|
|
43
|
+
search(root: Component, query: string, options?: SearchOptions): SearchResult[];
|
|
44
|
+
/** 다음 결과로 이동 */
|
|
45
|
+
navigateNext(): SearchResult | undefined;
|
|
46
|
+
/** 이전 결과로 이동 */
|
|
47
|
+
navigatePrev(): SearchResult | undefined;
|
|
48
|
+
/** 특정 인덱스로 이동 */
|
|
49
|
+
navigateTo(index: number): SearchResult | undefined;
|
|
50
|
+
/** 검색 결과 초기화 */
|
|
51
|
+
clear(): void;
|
|
52
|
+
private _traverse;
|
|
53
|
+
private _matchComponent;
|
|
54
|
+
/**
|
|
55
|
+
* data-binding 설정(mappings)에서 검색.
|
|
56
|
+
* accessor, target, property, source 필드를 대상으로 한다.
|
|
57
|
+
*/
|
|
58
|
+
private _matchDataBinding;
|
|
59
|
+
/**
|
|
60
|
+
* 주요 속성값에서 검색.
|
|
61
|
+
* fillStyle(문자열), strokeStyle(문자열), ref, src 등.
|
|
62
|
+
*/
|
|
63
|
+
private _matchProperties;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=scene-search-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene-search-engine.d.ts","sourceRoot":"","sources":["../../src/search/scene-search-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;IAClF,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAA;IACpC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAK;IAEvB,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,SAAS,CAE5C;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAmC/E,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,iBAAiB;IACjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMnD,gBAAgB;IAChB,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAoEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAkCzB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type Component from '../components/component.js';
|
|
2
|
+
import { SceneSearchEngine } from './scene-search-engine.js';
|
|
3
|
+
/**
|
|
4
|
+
* SearchOverlayHost: 검색 오버레이가 동작하기 위한 호스트 인터페이스.
|
|
5
|
+
* Scene이 이 인터페이스를 구현한다.
|
|
6
|
+
*/
|
|
7
|
+
export interface SearchOverlayHost {
|
|
8
|
+
/** 검색 대상 루트 컴포넌트 */
|
|
9
|
+
readonly root: Component & {
|
|
10
|
+
selected?: Component[];
|
|
11
|
+
};
|
|
12
|
+
/** 오버레이를 붙일 DOM element */
|
|
13
|
+
readonly element: HTMLElement | null;
|
|
14
|
+
/** 컴포넌트로 카메라/뷰포트 이동 */
|
|
15
|
+
centerTo(component: Component, animated?: boolean): void;
|
|
16
|
+
/** 선택 변경 */
|
|
17
|
+
setSelected(components: Component[]): void;
|
|
18
|
+
/** 3D outline 하이라이트 (있으면) */
|
|
19
|
+
highlightSearchResults?(components: Component[]): void;
|
|
20
|
+
/** 2D invalidate */
|
|
21
|
+
invalidate?(): void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 2D/3D 모드 공용 검색 오버레이 UI.
|
|
25
|
+
*
|
|
26
|
+
* 호스트의 DOM element에 겹쳐 놓는 가벼운 검색 바.
|
|
27
|
+
* F키로 토글, ↑↓ 결과 네비게이션, Enter 선택, Esc 닫기.
|
|
28
|
+
* 입력 히스토리(↑↓), Shift+Tab으로 input 복귀, 마우스+키보드 심리스 전환.
|
|
29
|
+
*/
|
|
30
|
+
export declare class SearchOverlay {
|
|
31
|
+
private _host?;
|
|
32
|
+
private _engine;
|
|
33
|
+
private _container?;
|
|
34
|
+
private _input?;
|
|
35
|
+
private _statusEl?;
|
|
36
|
+
private _resultListEl?;
|
|
37
|
+
private _visible;
|
|
38
|
+
private _debounceTimer?;
|
|
39
|
+
private _queryHistory;
|
|
40
|
+
private _historyIndex;
|
|
41
|
+
private _savedInput;
|
|
42
|
+
private static MAX_HISTORY;
|
|
43
|
+
private _keyboardNav;
|
|
44
|
+
get isVisible(): boolean;
|
|
45
|
+
get engine(): SceneSearchEngine;
|
|
46
|
+
setup(host: SearchOverlayHost): void;
|
|
47
|
+
/**
|
|
48
|
+
* 오버레이 토글. 이미 열려 있으면 입력 필드에 포커스.
|
|
49
|
+
*/
|
|
50
|
+
toggle(): void;
|
|
51
|
+
show(): void;
|
|
52
|
+
hide(): void;
|
|
53
|
+
destroy(): void;
|
|
54
|
+
private _buildDOM;
|
|
55
|
+
private _buttonStyle;
|
|
56
|
+
private _doSearch;
|
|
57
|
+
private _addToHistory;
|
|
58
|
+
private _navigateHistory;
|
|
59
|
+
private _isHistoryMode;
|
|
60
|
+
private _focusResult;
|
|
61
|
+
private _selectResult;
|
|
62
|
+
private _clearHighlight;
|
|
63
|
+
private _updateStatus;
|
|
64
|
+
private _renderResultList;
|
|
65
|
+
private _updateResultListSelection;
|
|
66
|
+
private _hideResultList;
|
|
67
|
+
private _truncate;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=search-overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-overlay.d.ts","sourceRoot":"","sources":["../../src/search/search-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAqB,MAAM,0BAA0B,CAAA;AAE/E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG;QAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAA;IACrD,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,uBAAuB;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxD,YAAY;IACZ,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1C,6BAA6B;IAC7B,sBAAsB,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IACtD,oBAAoB;IACpB,UAAU,CAAC,IAAI,IAAI,CAAA;CACpB;AAaD;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,cAAc,CAAC,CAA+B;IAGtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAG/B,OAAO,CAAC,YAAY,CAAQ;IAE5B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAad,IAAI,IAAI,IAAI;IAqBZ,IAAI,IAAI,IAAI;IAYZ,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,SAAS;IAuIjB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,iBAAiB;IA+HzB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;CAGlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"AA2JA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/place.ts"],"names":[],"mappings":"AAkFA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/place.ts"],"names":[],"mappings":"AAkFA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAcpD"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { DataLagTracker } from '../diagnostics/data-lag-tracker.js';
|
|
2
|
+
import type { LagMonitorConfig } from '../diagnostics/data-lag-tracker.js';
|
|
3
|
+
import { LoadTracker } from '../diagnostics/load-tracker.js';
|
|
4
|
+
import type { LoadingOptions } from '../diagnostics/load-tracker.js';
|
|
1
5
|
export default class ApplicationContext {
|
|
2
6
|
_mode: number;
|
|
3
7
|
_screen: number;
|
|
4
8
|
_baseUrl: string | null;
|
|
5
9
|
_refProvider: unknown;
|
|
10
|
+
_postprocessing: boolean;
|
|
6
11
|
_rotateStep: number;
|
|
7
12
|
_rotateStepForced: boolean;
|
|
8
13
|
_dataSubscriptionProvider: {
|
|
@@ -13,8 +18,21 @@ export default class ApplicationContext {
|
|
|
13
18
|
_PPI: number;
|
|
14
19
|
_PPM: number;
|
|
15
20
|
_commander: unknown;
|
|
21
|
+
_loadTracker?: LoadTracker;
|
|
22
|
+
_loadTrackerOwned: boolean;
|
|
23
|
+
_lagTracker?: DataLagTracker;
|
|
24
|
+
/** 영구 플래그 (런타임 setter로 조작) */
|
|
25
|
+
_suppressAnimationsFlag: boolean;
|
|
26
|
+
/** 스코프드 API 의 중첩 호출용 ref count */
|
|
27
|
+
_suppressScopeCount: number;
|
|
16
28
|
trigger: (event: string, ...args: unknown[]) => void;
|
|
17
29
|
constructor(mode: number, refProvider: unknown);
|
|
30
|
+
initLoadTracker(options?: LoadingOptions): LoadTracker;
|
|
31
|
+
get loadTracker(): LoadTracker | undefined;
|
|
32
|
+
/** 앱에서 미리 생성한 LoadTracker를 받아서 사용 (dispose 책임은 앱에 있음) */
|
|
33
|
+
adoptLoadTracker(tracker: LoadTracker): void;
|
|
34
|
+
initLagTracker(config: LagMonitorConfig | LagMonitorConfig[]): DataLagTracker;
|
|
35
|
+
get lagTracker(): DataLagTracker | undefined;
|
|
18
36
|
dispose(): void;
|
|
19
37
|
_calcScreen(): void;
|
|
20
38
|
subscribe(tag: string, component: unknown): unknown;
|
|
@@ -47,5 +65,30 @@ export default class ApplicationContext {
|
|
|
47
65
|
set rotateStepForced(force: boolean);
|
|
48
66
|
get dataStorage(): unknown;
|
|
49
67
|
set dataStorage(dataStorage: unknown);
|
|
68
|
+
get postprocessing(): boolean;
|
|
69
|
+
set postprocessing(value: boolean);
|
|
70
|
+
/**
|
|
71
|
+
* 애니메이션 억제 상태 (영구 플래그 OR 활성 스코프 중 하나라도 해당되면 true).
|
|
72
|
+
*
|
|
73
|
+
* 확인 지점: Animation.start, animate(), ValueHolder.animOnValueChange,
|
|
74
|
+
* DecoratorRegistry.addToOverlay, AnimatedIconDecorator.start
|
|
75
|
+
*/
|
|
76
|
+
get suppressAnimations(): boolean;
|
|
77
|
+
/** 런타임에 영구 플래그 토글. 스코프드 카운트와 OR 로 병합됨. */
|
|
78
|
+
set suppressAnimations(value: boolean);
|
|
79
|
+
/**
|
|
80
|
+
* 주어진 콜백을 애니메이션 억제 상태에서 실행.
|
|
81
|
+
* - 중첩 호출 안전 (ref-count)
|
|
82
|
+
* - sync/async 자동 판별 — Promise 리턴 시 완료될 때까지 억제 유지
|
|
83
|
+
* - 예외 발생 시에도 카운터 정상 복구
|
|
84
|
+
*/
|
|
85
|
+
withSuppressedAnimations<T>(fn: () => T | Promise<T>): T | Promise<T>;
|
|
86
|
+
/**
|
|
87
|
+
* 수동 제어용 disposable. `end()` 를 반드시 호출해야 함.
|
|
88
|
+
* 스코프가 콜백 경계를 넘어서는 경우 (이벤트 핸들러 사이 등) 사용.
|
|
89
|
+
*/
|
|
90
|
+
beginSuppressAnimations(): {
|
|
91
|
+
end(): void;
|
|
92
|
+
};
|
|
50
93
|
}
|
|
51
94
|
//# sourceMappingURL=application-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-context.d.ts","sourceRoot":"","sources":["../../src/things-scene/application-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application-context.d.ts","sourceRoot":"","sources":["../../src/things-scene/application-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,54 @@
|
|
|
1
1
|
import type { SceneMode } from '../const.js';
|
|
2
2
|
import type { FITMODE } from '../interfaces/types.js';
|
|
3
3
|
import type { ReferenceProvider, DataSubscriptionProvider, PersistentDataStorage } from '../interfaces/providers.js';
|
|
4
|
+
import type { LoadingOptions } from '../diagnostics/load-tracker.js';
|
|
5
|
+
import type { Model } from '../interfaces/model.js';
|
|
4
6
|
import Scene from './scene.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for creating a Scene instance.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const scene = create({
|
|
13
|
+
* target: document.getElementById('board'),
|
|
14
|
+
* model: boardModel,
|
|
15
|
+
* mode: SCENE_MODE.VIEW,
|
|
16
|
+
* handlers: ['zoom-handler', 'shift-handler'],
|
|
17
|
+
* refProvider: myProvider
|
|
18
|
+
* })
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
5
21
|
export interface SceneCreateOptions {
|
|
22
|
+
/** DOM element (or element ID) where the scene will be rendered */
|
|
6
23
|
target?: HTMLElement | string;
|
|
7
|
-
model
|
|
24
|
+
/** Board model — component tree as a JSON-compatible object */
|
|
25
|
+
model?: Model;
|
|
26
|
+
/** Theme style map (name → value) applied to the scene */
|
|
8
27
|
style?: Record<string, any>;
|
|
9
|
-
|
|
28
|
+
/** Additional layer configurations (e.g. scroll-layer, movement-layer) */
|
|
29
|
+
layers?: {
|
|
30
|
+
type: string;
|
|
31
|
+
id?: string;
|
|
32
|
+
[key: string]: any;
|
|
33
|
+
}[];
|
|
34
|
+
/** Event handler names to attach (e.g. 'zoom-handler', 'shift-handler') */
|
|
10
35
|
handlers?: string[];
|
|
36
|
+
/** Scene mode: MODE_VIEW (0) for monitoring, MODE_EDIT (1) for modelling */
|
|
11
37
|
mode?: SceneMode;
|
|
38
|
+
/** Reference provider for sub-board linking */
|
|
12
39
|
refProvider?: ReferenceProvider;
|
|
40
|
+
/** Real-time data subscription provider (e.g. GraphQL subscription) */
|
|
13
41
|
dataSubscriptionProvider?: DataSubscriptionProvider;
|
|
42
|
+
/** Per-component persistent data storage (e.g. IndexedDB) */
|
|
14
43
|
dataStorage?: PersistentDataStorage;
|
|
44
|
+
/** Base URL for resources (images, GLTF models, etc.) */
|
|
15
45
|
baseUrl?: string;
|
|
46
|
+
/** Initial fit mode: 'ratio' | 'both' | 'width' | 'height' | 'none' */
|
|
16
47
|
fitMode?: FITMODE;
|
|
48
|
+
/** Enable 3D post-processing effects (OutlinePass, SMAAPass). Default: true */
|
|
49
|
+
postprocessing?: boolean;
|
|
50
|
+
/** Loading monitor options */
|
|
51
|
+
loading?: LoadingOptions;
|
|
17
52
|
}
|
|
18
|
-
export default function create({ target, model, style, layers, handlers, mode, refProvider, dataSubscriptionProvider, dataStorage, baseUrl, fitMode }: SceneCreateOptions): Scene;
|
|
53
|
+
export default function create({ target, model, style, layers, handlers, mode, refProvider, dataSubscriptionProvider, dataStorage, baseUrl, fitMode, postprocessing, loading: loadingOptions }: SceneCreateOptions): Scene;
|
|
19
54
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/things-scene/create.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/things-scene/create.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACpH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IAC7B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,0EAA0E;IAC1E,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAA;IAC5D,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,uEAAuE;IACvE,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD,6DAA6D;IAC7D,WAAW,CAAC,EAAE,qBAAqB,CAAA;IACnC,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAUD,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAW,EACX,QAAa,EACb,IAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,WAAkC,EAClC,OAAO,EACP,OAAO,EACP,cAAqB,EACrB,OAAO,EAAE,cAAc,EACxB,EAAE,kBAAkB,SAiDpB"}
|
|
@@ -21,12 +21,15 @@ export * from '../animation/index.js';
|
|
|
21
21
|
export * from '../components/index.js';
|
|
22
22
|
export * from '../layout/index.js';
|
|
23
23
|
export * from '../types/index.js';
|
|
24
|
+
export type { Component } from '../types/component.js';
|
|
24
25
|
export type { POINT, SCALE, TRANSLATE, POSITION, LOCATION, ROTATION, DIMENSION, BOUNDS, DELTA, FITMODE, ComponentNature, Anchor, LinkEndConfig, ControlHandler, Control, Decorator, PopupOptions, ChangeFunction, Class, Properties, State, Style } from '../interfaces/types.js';
|
|
25
26
|
export type { ReferenceProvider, DataSubscriptionProvider, PersistentDataStorage } from '../interfaces/providers.js';
|
|
26
27
|
export type { SceneRenderContext, DrawOptions, StyleOptions, FillStyle, StrokeStyle, TextStyle, Shadow, IFillDrawer, IStrokeDrawer, ITextDrawer, ILineTipDrawer, IImageDrawer } from '../interfaces/rendering.js';
|
|
27
28
|
export type { LinkEnd } from '../decorator/decorators/link-decorator.js';
|
|
28
29
|
export type { LAYOUT, LayoutRegistry } from '../interfaces/layout.js';
|
|
29
30
|
export type { IRealObject } from '../interfaces/real-object.js';
|
|
31
|
+
export type { Vec3, Size3, Bounds3, SlotArrangement, GridShape, SlotDef, SlotAssignment, TransferOptions, StaticPolicy, DynamicPolicy, PendingPolicy, ConnectionPolicy, Port, TransferEventType, TransferEvent, CarrierAttachPoint, ArrangementStrategy, Transferable, NavigationTarget, NavigationOptions, Movable, ArticulatedCapability, MissionStatus, VehicleMission, MissionExecutor, SensorPoint, SpawnPoint, SinkPoint, SimulationClock } from '../transfer/index.js';
|
|
32
|
+
export { FixedSlotStrategy, CenteringSlotStrategy, ContainerCapacity, TRANSFER_SLOT_KEY, globalSimClock } from '../transfer/index.js';
|
|
30
33
|
export { default as ReferenceMap } from '../core/reference-map.js';
|
|
31
34
|
export { default as ScriptLoader } from '../core/script-loader.js';
|
|
32
35
|
export * from '../core/logger.js';
|
|
@@ -35,6 +38,13 @@ export { default as version } from './version.js';
|
|
|
35
38
|
export { default as FPS, stopFPSMeasure } from './fps.js';
|
|
36
39
|
export { metrics } from '../diagnostics/metrics.js';
|
|
37
40
|
export { inspector } from '../diagnostics/inspector.js';
|
|
41
|
+
export { LoadTracker } from '../diagnostics/load-tracker.js';
|
|
42
|
+
export type { LoadPhase, LoadEntry, LoadingOptions, LoadStats, PhaseRecord } from '../diagnostics/load-tracker.js';
|
|
43
|
+
export { DataLagTracker } from '../diagnostics/data-lag-tracker.js';
|
|
44
|
+
export type { LagMonitorConfig, LagTrend, LagLevel, LagStats } from '../diagnostics/data-lag-tracker.js';
|
|
45
|
+
export { LoadingOverlay } from '../diagnostics/loading-overlay.js';
|
|
38
46
|
export { default as ScenePopup } from '../layer/action/popup.js';
|
|
47
|
+
export { default as TransitionEffect } from '../transition/transition-effect.js';
|
|
48
|
+
export * from '../search/index.js';
|
|
39
49
|
export * from '../threed/index.js';
|
|
40
50
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/things-scene/index.ts"],"names":[],"mappings":"AAIA,OAAO,mBAAmB,CAAA;AAE1B,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAC1C,OAAO,UAAU,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAEzE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,WAAW,KAAK;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,yBAAiB,KAAK,CAAC;IACd,MAAM,OAAO,iBAAW,CAAA;IACxB,MAAM,SAAS,mBAAa,CAAA;IAC5B,MAAM,MAAM,gBAAU,CAAA;IACtB,MAAM,KAAK,eAAS,CAAA;CAC5B;AAED,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAE/D,cAAc,aAAa,CAAA;AAE3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AAGjC,YAAY,EACV,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EACxE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EACzE,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACpH,YAAY,EACV,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EACxF,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EACtE,MAAM,4BAA4B,CAAA;AACnC,YAAY,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAA;AACxE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACrE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/things-scene/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,36 @@
|
|
|
1
1
|
import animate from '../animation/animate.js';
|
|
2
|
+
import type { LoadTracker } from '../diagnostics/load-tracker.js';
|
|
3
|
+
import { LoadingOverlay } from '../diagnostics/loading-overlay.js';
|
|
4
|
+
import { SearchOverlay } from '../search/search-overlay.js';
|
|
2
5
|
/**
|
|
3
|
-
*
|
|
6
|
+
* The top-level API object for things-scene, managing the full lifecycle of a visual board:
|
|
7
|
+
* creation, rendering (2D Canvas + 3D Three.js), interaction, and disposal.
|
|
8
|
+
*
|
|
9
|
+
* Created via the `create()` factory function.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { create, SCENE_MODE } from '@hatiolab/things-scene'
|
|
14
|
+
*
|
|
15
|
+
* const scene = create({
|
|
16
|
+
* target: document.getElementById('board'),
|
|
17
|
+
* model: JSON.parse(boardJson),
|
|
18
|
+
* mode: SCENE_MODE.VIEW,
|
|
19
|
+
* handlers: ['zoom-handler', 'shift-handler']
|
|
20
|
+
* })
|
|
21
|
+
*
|
|
22
|
+
* scene.data = { sensor1: { value: 42 } } // data binding
|
|
23
|
+
* scene.dispose() // cleanup
|
|
24
|
+
* ```
|
|
4
25
|
*/
|
|
5
26
|
declare class Scene {
|
|
6
27
|
_container: any;
|
|
7
28
|
_commander: any;
|
|
8
29
|
app: any;
|
|
30
|
+
private _searchOverlay;
|
|
31
|
+
private _loadingOverlay;
|
|
32
|
+
onDataBindingToggle?: () => void;
|
|
33
|
+
onMonitorToggle?: () => void;
|
|
9
34
|
static get residents(): number;
|
|
10
35
|
static get residentsCount(): number;
|
|
11
36
|
/**
|
|
@@ -88,11 +113,49 @@ declare class Scene {
|
|
|
88
113
|
set valuesByRefid(values: any);
|
|
89
114
|
get baseUrl(): any;
|
|
90
115
|
set baseUrl(baseUrl: any);
|
|
116
|
+
/**
|
|
117
|
+
* 애니메이션 억제 활성 여부.
|
|
118
|
+
* 영구 플래그(set suppressAnimations) 또는 활성 스코프(withSuppressedAnimations/
|
|
119
|
+
* beginSuppressAnimations) 중 하나라도 해당되면 true.
|
|
120
|
+
*/
|
|
121
|
+
get suppressAnimations(): boolean;
|
|
122
|
+
/** 런타임 모드 토글: 지정된 상태로 고정. 스코프드 API 와는 독립적으로 동작. */
|
|
123
|
+
set suppressAnimations(value: boolean);
|
|
124
|
+
/**
|
|
125
|
+
* 콜백 실행 동안만 애니메이션 억제.
|
|
126
|
+
* 중첩 호출 / sync·async / 예외 모두 안전.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* scene.withSuppressedAnimations(() => {
|
|
130
|
+
* for (const record of snapshot) component.data = record
|
|
131
|
+
* })
|
|
132
|
+
*/
|
|
133
|
+
withSuppressedAnimations<T>(fn: () => T | Promise<T>): T | Promise<T>;
|
|
134
|
+
/**
|
|
135
|
+
* 수동 제어용 disposable. end() 호출 전까지 억제 유지.
|
|
136
|
+
* 스코프가 콜백 경계를 넘어가는 케이스 (이벤트 기반 드래그 등) 에 사용.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* const d = scene.beginSuppressAnimations()
|
|
140
|
+
* // ... some async flow ...
|
|
141
|
+
* d.end()
|
|
142
|
+
*/
|
|
143
|
+
beginSuppressAnimations(): {
|
|
144
|
+
end(): void;
|
|
145
|
+
};
|
|
91
146
|
startAddMode(models?: any): void;
|
|
92
147
|
startStylePasteMode(): void;
|
|
93
148
|
stopStylePasteMode(): void;
|
|
94
149
|
startDatabindPasteMode(): void;
|
|
95
150
|
stopDatabindPasteMode(): void;
|
|
151
|
+
get loading(): LoadTracker | undefined;
|
|
152
|
+
get loadingOverlay(): LoadingOverlay;
|
|
153
|
+
showLoadingOverlay(): void;
|
|
154
|
+
hideLoadingOverlay(): void;
|
|
155
|
+
toggleLoadingOverlay(): void;
|
|
156
|
+
get searchOverlay(): SearchOverlay;
|
|
157
|
+
private _setupSearchOverlay;
|
|
158
|
+
private _setupLoadingOverlay;
|
|
96
159
|
}
|
|
97
160
|
export default Scene;
|
|
98
161
|
//# sourceMappingURL=scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/things-scene/scene.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/things-scene/scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { Line2 } from 'three/examples/jsm/lines/Line2.js';
|
|
3
|
-
export type TipType = 'none' | 'arrow' | 'open-arrow' | 'sharp-arrow' | 'diamond' | 'oval';
|
|
3
|
+
export type TipType = 'none' | 'arrow' | 'open-arrow' | 'sharp-arrow' | 'diamond' | 'oval' | 'cross';
|
|
4
4
|
export type TipSize = 'size1' | 'size2' | 'size3' | 'size4' | 'size5' | 'size6' | 'size7' | 'size8' | 'size9';
|
|
5
5
|
export type LineDash = 'solid' | 'round-dot' | 'square-dot' | 'dash' | 'dash-dot' | 'long-dash' | 'long-dash-dot' | 'long-dash-dot-dot';
|
|
6
6
|
export interface ArrowStyle3D {
|
|
@@ -22,16 +22,25 @@ export declare function tipSize(size: TipSize | undefined, lineWidth: number): {
|
|
|
22
22
|
Y: number;
|
|
23
23
|
};
|
|
24
24
|
/**
|
|
25
|
-
* 팁 타입별
|
|
26
|
-
*
|
|
25
|
+
* 팁 타입별 3D Geometry 생성.
|
|
26
|
+
* +X 방향이 화살표가 가리키는 방향(외부에서 쿼터니언 회전).
|
|
27
27
|
* 반환이 null이면 'none' 팁.
|
|
28
|
+
*
|
|
29
|
+
* 3D 형상 매핑:
|
|
30
|
+
* - arrow → ConeGeometry (넓은 원뿔)
|
|
31
|
+
* - sharp-arrow → ConeGeometry (좁고 긴 원뿔)
|
|
32
|
+
* - open-arrow → ConeGeometry (wireframe)
|
|
33
|
+
* - diamond → OctahedronGeometry
|
|
34
|
+
* - oval → SphereGeometry
|
|
35
|
+
* - cross → TetrahedronGeometry
|
|
28
36
|
*/
|
|
29
37
|
export declare function createTipGeometry(type: TipType, size: {
|
|
30
38
|
X: number;
|
|
31
39
|
Y: number;
|
|
32
|
-
},
|
|
40
|
+
}, _lineWidth: number): {
|
|
33
41
|
mesh?: THREE.Mesh;
|
|
34
42
|
line2?: Line2;
|
|
43
|
+
group?: THREE.Group;
|
|
35
44
|
} | null;
|
|
36
45
|
/**
|
|
37
46
|
* Line2 + LineMaterial 기반 화살표 줄기 생성.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrow-3d.d.ts","sourceRoot":"","sources":["../../src/threed/arrow-3d.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAQzD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"arrow-3d.d.ts","sourceRoot":"","sources":["../../src/threed/arrow-3d.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAQzD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;AACpG,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAC7G,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,WAAW,GACX,YAAY,GACZ,MAAM,GACN,UAAU,GACV,WAAW,GACX,eAAe,GACf,mBAAmB,CAAA;AAEvB,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAMD;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAwB9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9B,UAAU,EAAE,MAAM,GACjB;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAA;CAAE,GAAG,IAAI,CA4ElE;AAqCD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,EACnB,IAAI,EAAE,KAAK,CAAC,OAAO,EACnB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,KAAK,CAAC,OAAO,GACxB,KAAK,CA4CP;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,CAAC,OAAO,GACtB,KAAK,CAAC,MAAM,CAqCd;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,KAAK,CAAC,OAAO,EACnB,IAAI,EAAE,KAAK,CAAC,OAAO,EACnB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,KAAK,CAAC,OAAO,GACxB,KAAK,CAAC,KAAK,CAuGb"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Scene } from 'three';
|
|
2
|
+
/**
|
|
3
|
+
* 환경 씬 공통 베이스 클래스.
|
|
4
|
+
* PMREMGenerator.fromScene()으로 cubemap을 생성하는 환경 씬들의 공통 dispose() 로직을 제공한다.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class BaseEnvironment extends Scene {
|
|
7
|
+
dispose(): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=base-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/base-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,EAAE,MAAM,OAAO,CAAA;AAEnC;;;GAGG;AACH,8BAAsB,eAAgB,SAAQ,KAAK;IACjD,OAAO;CAYR"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseEnvironment } from './base-environment.js';
|
|
2
|
+
/**
|
|
3
|
+
* Cloudy 환경 — 흐린 날씨.
|
|
4
|
+
* 높은 turbidity + 낮은 rayleigh로 하늘 전체가 회백색 느낌.
|
|
5
|
+
* 태양은 구름 뒤에 있는 듯 약한 halo만 보임.
|
|
6
|
+
*/
|
|
7
|
+
export declare class CloudyEnvironment extends BaseEnvironment {
|
|
8
|
+
constructor();
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=cloudy-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudy-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/cloudy-environment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;;CAsBrD"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEnvironment } from './base-environment.js';
|
|
2
2
|
/**
|
|
3
3
|
* 공장 환경 — 높은 천장, 강한 상단 조명, 금속적 톤, 높은 대비.
|
|
4
4
|
* PMREMGenerator.fromScene()으로 cubemap을 생성하여
|
|
5
5
|
* scene.environment / GroundedSkybox에 사용한다.
|
|
6
6
|
*/
|
|
7
|
-
export declare class FactoryEnvironment extends
|
|
7
|
+
export declare class FactoryEnvironment extends BaseEnvironment {
|
|
8
8
|
constructor();
|
|
9
|
-
dispose(): void;
|
|
10
9
|
}
|
|
11
10
|
//# sourceMappingURL=factory-environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/factory-environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/factory-environment.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;;CA+DtD"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEnvironment } from './base-environment.js';
|
|
2
2
|
/**
|
|
3
3
|
* 가정 환경 — 아늑한 분위기, 따뜻한 조명, 낮은 천장, 넓은 창문.
|
|
4
4
|
* PMREMGenerator.fromScene()으로 cubemap을 생성하여
|
|
5
5
|
* scene.environment / scene.background에 사용한다.
|
|
6
6
|
*/
|
|
7
|
-
export declare class HomeEnvironment extends
|
|
7
|
+
export declare class HomeEnvironment extends BaseEnvironment {
|
|
8
8
|
constructor();
|
|
9
|
-
dispose(): void;
|
|
10
9
|
}
|
|
11
10
|
//# sourceMappingURL=home-environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/home-environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"home-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/home-environment.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,eAAe;;CA0DnD"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEnvironment } from './base-environment.js';
|
|
2
2
|
/**
|
|
3
3
|
* 사무실 환경 — 낮은 천장, 균일한 면광원, 따뜻한 색온도.
|
|
4
4
|
* PMREMGenerator.fromScene()으로 cubemap을 생성하여
|
|
5
5
|
* scene.environment / GroundedSkybox에 사용한다.
|
|
6
6
|
*/
|
|
7
|
-
export declare class OfficeEnvironment extends
|
|
7
|
+
export declare class OfficeEnvironment extends BaseEnvironment {
|
|
8
8
|
constructor();
|
|
9
|
-
dispose(): void;
|
|
10
9
|
}
|
|
11
10
|
//# sourceMappingURL=office-environment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"office-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/office-environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"office-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/office-environment.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;;CAuDrD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseEnvironment } from './base-environment.js';
|
|
2
|
+
/**
|
|
3
|
+
* Rainy 환경 — 비 오는 날씨.
|
|
4
|
+
* 매우 높은 turbidity + 억제된 rayleigh로 어두운 회청색 하늘.
|
|
5
|
+
* 태양은 거의 안 보이고 전반적으로 어둑한 분위기.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RainyEnvironment extends BaseEnvironment {
|
|
8
|
+
constructor();
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=rainy-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rainy-environment.d.ts","sourceRoot":"","sources":["../../../src/threed/environments/rainy-environment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;;CAsBpD"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseEnvironment } from './base-environment.js';
|
|
2
2
|
/**
|
|
3
3
|
* 스튜디오 환경 — 밝고 균일한 조명, 중성 배경.
|
|
4
4
|
* RoomEnvironment 대체용. 바닥 오브젝트 없이 벽/천장/조명만 구성.
|
|
5
5
|
* PMREMGenerator.fromScene()으로 cubemap을 생성하여
|
|
6
6
|
* scene.environment / scene.background에 사용한다.
|
|
7
7
|
*/
|
|
8
|
-
export declare class StudioEnvironment extends
|
|
8
|
+
export declare class StudioEnvironment extends BaseEnvironment {
|
|
9
9
|
constructor();
|
|
10
|
-
dispose(): void;
|
|
11
10
|
}
|
|
12
11
|
//# sourceMappingURL=studio-environment.d.ts.map
|