soonspacejs 2.13.6 → 2.13.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +8 -8
  2. package/dist/index.esm.js +2 -2
  3. package/dist/src/Animation/createPathAnimation.d.ts +61 -0
  4. package/dist/src/Animation/index.d.ts +4 -0
  5. package/dist/src/Animation/path-animation.d.ts +108 -0
  6. package/dist/src/Cache/ObjectsCache.d.ts +19 -0
  7. package/dist/src/Cache/index.d.ts +1 -0
  8. package/dist/src/Constants/headers.d.ts +1 -0
  9. package/dist/src/Constants/index.d.ts +22 -0
  10. package/dist/src/Constants/viewpoints.d.ts +7 -0
  11. package/dist/src/Controls/index.d.ts +14 -0
  12. package/dist/src/Interface/animation.d.ts +10 -0
  13. package/dist/src/Interface/base.d.ts +63 -0
  14. package/dist/src/Interface/controls.d.ts +94 -0
  15. package/dist/src/Interface/events.d.ts +40 -0
  16. package/dist/src/Interface/gmlToJson.d.ts +189 -0
  17. package/dist/src/Interface/index.d.ts +13 -0
  18. package/dist/src/Interface/manager.d.ts +177 -0
  19. package/dist/src/Interface/modelAnimation.d.ts +5 -0
  20. package/dist/src/Interface/plugin.d.ts +7 -0
  21. package/dist/src/Interface/poiMesh.d.ts +23 -0
  22. package/dist/src/Interface/sbmCache.d.ts +19 -0
  23. package/dist/src/Interface/sbmXmlToJson.d.ts +131 -0
  24. package/dist/src/Interface/signals.d.ts +47 -0
  25. package/dist/src/Interface/viewport.d.ts +208 -0
  26. package/dist/src/Library/BaseMesh.d.ts +19 -0
  27. package/dist/src/Library/BaseObject3D.d.ts +37 -0
  28. package/dist/src/Library/Canvas3D.d.ts +31 -0
  29. package/dist/src/Library/Circle.d.ts +21 -0
  30. package/dist/src/Library/Decal.d.ts +30 -0
  31. package/dist/src/Library/Ground.d.ts +8 -0
  32. package/dist/src/Library/Group.d.ts +9 -0
  33. package/dist/src/Library/Icon.d.ts +12 -0
  34. package/dist/src/Library/Line.d.ts +22 -0
  35. package/dist/src/Library/Link.d.ts +24 -0
  36. package/dist/src/Library/Model.d.ts +19 -0
  37. package/dist/src/Library/Node.d.ts +10 -0
  38. package/dist/src/Library/PluginObject.d.ts +7 -0
  39. package/dist/src/Library/Poi.d.ts +38 -0
  40. package/dist/src/Library/PoiMesh.d.ts +16 -0
  41. package/dist/src/Library/PoiNode.d.ts +31 -0
  42. package/dist/src/Library/Point.d.ts +21 -0
  43. package/dist/src/Library/Polygon.d.ts +23 -0
  44. package/dist/src/Library/PolygonPoiMesh.d.ts +13 -0
  45. package/dist/src/Library/Topology.d.ts +37 -0
  46. package/dist/src/Library/index.d.ts +20 -0
  47. package/dist/src/Loader/SbmLoader/SDataView.d.ts +11 -0
  48. package/dist/src/Loader/SbmLoader/SbkDecoder.d.ts +1 -0
  49. package/dist/src/Loader/SbmLoader/SbmLoader.d.ts +15 -0
  50. package/dist/src/Loader/SbmLoader/SbmObjectLoader.d.ts +25 -0
  51. package/dist/src/Loader/SbmLoader/SbmPrivateLoader.d.ts +39 -0
  52. package/dist/src/Loader/SbmLoader/SbmPublicLoader.d.ts +38 -0
  53. package/dist/src/Loader/SbmLoader/index.d.ts +2 -0
  54. package/dist/src/Loader/SbmLoader/utils/generateSbm.d.ts +26 -0
  55. package/dist/src/Manager/Canvas3DManage.d.ts +14 -0
  56. package/dist/src/Manager/DecalManage.d.ts +22 -0
  57. package/dist/src/Manager/DefaultManage.d.ts +19 -0
  58. package/dist/src/Manager/GroupManage.d.ts +9 -0
  59. package/dist/src/Manager/HelperManage.d.ts +23 -0
  60. package/dist/src/Manager/LightManage.d.ts +25 -0
  61. package/dist/src/Manager/ModelManage.d.ts +106 -0
  62. package/dist/src/Manager/PluginObjectManage.d.ts +13 -0
  63. package/dist/src/Manager/PoiManage.d.ts +25 -0
  64. package/dist/src/Manager/PoiNodeManage.d.ts +14 -0
  65. package/dist/src/Manager/TopologyManage.d.ts +68 -0
  66. package/dist/src/Manager/index.d.ts +83 -0
  67. package/dist/src/Math/dijkstra/DijkstraWorker.d.ts +13 -0
  68. package/dist/src/Math/dijkstra/dijkstra.worker.d.ts +2 -0
  69. package/dist/src/Math/dijkstra/index.d.ts +54 -0
  70. package/dist/src/Math/index.d.ts +2 -0
  71. package/dist/src/Renderer/CSS2DRenderer.d.ts +25 -0
  72. package/dist/src/Renderer/CSS3DRenderer.d.ts +28 -0
  73. package/dist/src/Renderer/index.d.ts +2 -0
  74. package/dist/src/Shared/MinHeap.d.ts +22 -0
  75. package/dist/src/Shared/buffer.d.ts +2 -0
  76. package/dist/src/Shared/cloneDeep.d.ts +2 -0
  77. package/dist/src/Shared/ctx.d.ts +5 -0
  78. package/dist/src/Shared/index.d.ts +47 -0
  79. package/dist/src/Shared/log.d.ts +4 -0
  80. package/dist/src/Shared/map.d.ts +11 -0
  81. package/dist/src/Shared/material.d.ts +3 -0
  82. package/dist/src/Shared/network.d.ts +7 -0
  83. package/dist/src/Shared/occlude.d.ts +5 -0
  84. package/dist/src/Shared/path.d.ts +1 -0
  85. package/dist/src/Shared/task.d.ts +1 -0
  86. package/dist/src/Shared/viewport.d.ts +40 -0
  87. package/dist/src/Shared/xml.d.ts +2 -0
  88. package/dist/src/Signals/index.d.ts +3 -0
  89. package/dist/src/Viewport/Bvh/GenerateMeshBVHWorker.d.ts +11 -0
  90. package/dist/src/Viewport/Bvh/generateBVH.worker.d.ts +1 -0
  91. package/dist/src/Viewport/Bvh/index.d.ts +18 -0
  92. package/dist/src/Viewport/CameraManager.d.ts +34 -0
  93. package/dist/src/Viewport/EffectManager.d.ts +45 -0
  94. package/dist/src/Viewport/EventHandler.d.ts +50 -0
  95. package/dist/src/Viewport/Info.d.ts +17 -0
  96. package/dist/src/Viewport/RendererManager.d.ts +26 -0
  97. package/dist/src/Viewport/Scener.d.ts +43 -0
  98. package/dist/src/Viewport/ViewHelper.d.ts +15 -0
  99. package/dist/src/Viewport/index.d.ts +131 -0
  100. package/dist/src/exporters/index.d.ts +6 -0
  101. package/dist/src/index.d.ts +1286 -0
  102. package/dist/src/three-patches.d.ts +1 -0
  103. package/dist/src/tools/find-objects.d.ts +47 -0
  104. package/dist/src/tools/index.d.ts +2 -0
  105. package/dist/src/tools/units.d.ts +48 -0
  106. package/package.json +2 -2
  107. package/types/Viewport/index.d.ts +0 -1
  108. package/types/index.d.ts +3 -0
@@ -0,0 +1,40 @@
1
+ import { Vector3, Euler, Box3, Object3D, Vector2, Camera } from 'three';
2
+ import { IVector3, AxisType, Rotation } from '../Interface';
3
+ declare function IVector3ToVector3(val: IVector3 | Vector3): Vector3;
4
+ declare function IVector3ToEuler(val: IVector3 | Euler): Euler;
5
+ /**
6
+ * 获取 object box
7
+ * @param object
8
+ * @returns
9
+ */
10
+ declare function getBoundingBox(object: Object3D, precise?: boolean): Box3;
11
+ declare function rotationAxisFix(axis: AxisType, source: Euler, target: Euler): Euler;
12
+ declare function rotationAFix(source: Euler, target: Euler): Euler;
13
+ declare function deg2Euler(deg: number): number;
14
+ declare function euler2Deg(euler: number): number;
15
+ /**
16
+ * 从 object 获取 position、rotation、scale
17
+ * @param object
18
+ * @param isFromWorld
19
+ * @returns
20
+ */
21
+ declare function getSpaceAttributeFromObject(object: Object3D, isFromWorld?: boolean): {
22
+ position: Vector3;
23
+ rotation: Euler;
24
+ scale: Vector3;
25
+ };
26
+ /**
27
+ * 同步 source 的 position、rotation、scale 到 target
28
+ * @param target
29
+ * @param source
30
+ * @param isFromWorld
31
+ */
32
+ declare function syncSpaceAttributeToObject(target: Object3D, source: Object3D, isFromWorld?: boolean): void;
33
+ declare function isObjectVisible(object: Object3D): boolean;
34
+ declare const calculateScaleFactor: (point3: Vector3, radiusPx: number, camera: Camera, size: Vector2) => number;
35
+ /**
36
+ * 计算 target
37
+ */
38
+ declare function computeTargetByRotation(position: IVector3, rotation: Rotation, scalar?: number): Vector3;
39
+ declare function absoluteAngle(targetAngle: number, sourceAngle: number): number;
40
+ export { IVector3ToVector3, IVector3ToEuler, getBoundingBox, rotationAxisFix, rotationAFix, deg2Euler, euler2Deg, getSpaceAttributeFromObject, syncSpaceAttributeToObject, isObjectVisible, calculateScaleFactor, computeTargetByRotation, absoluteAngle, };
@@ -0,0 +1,2 @@
1
+ declare function xmlToJson<T>(url: string): Promise<T>;
2
+ export { xmlToJson, };
@@ -0,0 +1,3 @@
1
+ import { SignalsState } from '../Interface';
2
+ declare const Signals: () => SignalsState;
3
+ export default Signals;
@@ -0,0 +1,11 @@
1
+ import { BufferGeometry } from 'three';
2
+ import { WorkerPool } from 'three/examples/jsm/utils/WorkerPool.js';
3
+ import { MeshBVH } from 'three-mesh-bvh';
4
+ declare class GenerateMeshBVHWorker {
5
+ workerPool: WorkerPool;
6
+ constructor();
7
+ generate(geometry: BufferGeometry, options?: any): Promise<MeshBVH | undefined>;
8
+ dispose(): void;
9
+ }
10
+ declare const generateMeshBVHWorker: GenerateMeshBVHWorker;
11
+ export { GenerateMeshBVHWorker, generateMeshBVHWorker, };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import Viewport from '..';
2
+ export type ModelsBoundsTreeOptions = {
3
+ type?: 'block' | 'slice' | 'worker';
4
+ force?: boolean;
5
+ frameSliceCount?: number;
6
+ workerCreator?: () => Worker;
7
+ };
8
+ declare class Bvh {
9
+ readonly viewport: Viewport;
10
+ cameraChanging: boolean;
11
+ timer: number | null;
12
+ computedGeometriesUuid: Map<string, string>;
13
+ generateMeshBVHWorker: import("./GenerateMeshBVHWorker").GenerateMeshBVHWorker;
14
+ constructor(viewport: Viewport);
15
+ computeModelsBoundsTree(options?: ModelsBoundsTreeOptions): Promise<void>;
16
+ dispose(): void;
17
+ }
18
+ export default Bvh;
@@ -0,0 +1,34 @@
1
+ import { Box3, PerspectiveCamera, OrthographicCamera, Vector3, Euler, Object3D } from 'three';
2
+ import { Rotation, Position, FlyToViewpoint, FlyToObjOptions, SurroundOptions, LabelOptions, CameraViewpointData, CameraViewpointDataLegacy, FlyToOptions, CameraType } from '../Interface';
3
+ import Viewport from '.';
4
+ declare class CameraManager {
5
+ viewport: Viewport;
6
+ /**
7
+ * the controls camera
8
+ */
9
+ mainCamera: PerspectiveCamera | OrthographicCamera;
10
+ /**
11
+ * 当前 renderer camera
12
+ */
13
+ currentCamera: PerspectiveCamera | OrthographicCamera;
14
+ cameras: {
15
+ [x: string]: PerspectiveCamera;
16
+ };
17
+ constructor(viewport: Viewport);
18
+ createCamera(key: string): PerspectiveCamera;
19
+ removeCamera(key: string): boolean;
20
+ setCurrentCamera(camera: PerspectiveCamera | OrthographicCamera): void;
21
+ /**
22
+ * set main camera
23
+ * @param camera
24
+ */
25
+ setCamera(cameraType: CameraType, viewpoint?: CameraViewpointData, enableTransition?: boolean): Promise<void>;
26
+ getCameraViewpoint(): CameraViewpointData;
27
+ setCameraViewpoint(data: CameraViewpointData | CameraViewpointDataLegacy, enableTransition?: boolean): Promise<void>;
28
+ flyTo(position: Position, rotation?: FlyToViewpoint | Rotation | Euler, options?: FlyToOptions): Promise<void>;
29
+ flyToObj(object: Object3D | Box3, viewpoint?: FlyToViewpoint, options?: FlyToObjOptions): Promise<void>;
30
+ surroundOnTarget(target: Position, options?: SurroundOptions): Promise<void>;
31
+ surroundOnObject(object: Object3D, options?: SurroundOptions): Promise<void>;
32
+ getObjectLabelPos(bbox: Box3 | Object3D, rotation?: FlyToViewpoint | Rotation | Euler, options?: LabelOptions): Vector3;
33
+ }
34
+ export default CameraManager;
@@ -0,0 +1,45 @@
1
+ import { Camera, Scene, WebGLRenderer } from 'three';
2
+ import { EffectComposer, Pass, Effect } from 'postprocessing';
3
+ export interface EffectState<T = Effect> {
4
+ enabled: boolean;
5
+ effect: T;
6
+ }
7
+ declare class EffectManager {
8
+ readonly renderer: WebGLRenderer;
9
+ readonly scene: Scene;
10
+ readonly camera: Camera;
11
+ static CONSTANTS: {
12
+ renderPass: string;
13
+ ssaoPass: string;
14
+ effectPass: string;
15
+ smaaEffect: string;
16
+ outlineEffect: string;
17
+ bloomEffect: string;
18
+ toneMappingEffect: string;
19
+ };
20
+ effectComposer: EffectComposer;
21
+ passesMap: Map<string, Pass>;
22
+ effectsMap: Map<string, EffectState>;
23
+ effectsNeedsUpdate: boolean;
24
+ constructor(renderer: WebGLRenderer, scene: Scene, camera: Camera);
25
+ /**
26
+ * 更新 Effect pass
27
+ */
28
+ updateEffectPass(): void;
29
+ /**
30
+ * 更新 camera
31
+ * @param camera
32
+ */
33
+ updateCamera(camera: Camera): void;
34
+ private _initEffectComposer;
35
+ private _initPasses;
36
+ private _initRenderPass;
37
+ private _initSSAOPass;
38
+ private _initEffectPass;
39
+ private _initEffects;
40
+ private _initSMAAEffect;
41
+ private _initToneMappingEffect;
42
+ private _initBloomEffect;
43
+ private _initOutlineEffect;
44
+ }
45
+ export default EffectManager;
@@ -0,0 +1,50 @@
1
+ import { Object3D } from 'three';
2
+ import Viewport from '.';
3
+ import { SceneEventType } from '../Interface';
4
+ /**
5
+ * @todo 事件部分待重构。目前实现不来灵活,且部分对象不支持事件。
6
+ */
7
+ declare class EventHandler {
8
+ readonly viewport: Viewport;
9
+ private dblClickMaxInterval;
10
+ /**
11
+ * PC
12
+ */
13
+ private mouseDownTimes;
14
+ private mouseDownEvent;
15
+ private container;
16
+ private options;
17
+ private signals;
18
+ private touchLongUpMaxInterval;
19
+ private isTouchLongPressAsTouchRightClick;
20
+ private timer;
21
+ private touchStartEvent;
22
+ private touchstartTimes;
23
+ private selectModel;
24
+ private selectPoi;
25
+ constructor(viewport: Viewport);
26
+ _getPoiAndModel(): Object3D<import("three").Object3DEventMap>[];
27
+ /**
28
+ * 触发场景交互事件
29
+ * @param {SceneEventType} eventType 事件类型 hover | click | dblClick | rightClick
30
+ * @param {MouseEvent | TouchEvent} event 鼠标事件对象 或 触摸事件对象
31
+ */
32
+ _triggerSceneEventInAllObject(eventType: SceneEventType, event: MouseEvent | TouchEvent, objects?: Object3D[]): void;
33
+ private handleMouseDown;
34
+ private handleMouseMove;
35
+ private handleMouseUp;
36
+ private handleDblClick;
37
+ private handleMouseWheel;
38
+ private handleTouchStart;
39
+ private handleTouchEnd;
40
+ private handleContextmenu;
41
+ /**
42
+ * key event
43
+ */
44
+ private handleKeyDown;
45
+ private handleKeyUp;
46
+ addEventListeners(): void;
47
+ removeEventListeners(): void;
48
+ dispose(): void;
49
+ }
50
+ export default EventHandler;
@@ -0,0 +1,17 @@
1
+ import { Scene } from 'three';
2
+ import { SignalsState } from '../Interface';
3
+ declare class Info {
4
+ readonly scene: Scene;
5
+ readonly signals: SignalsState;
6
+ container: HTMLDivElement;
7
+ state: {
8
+ objects: number;
9
+ meshes: number;
10
+ vertices: number;
11
+ triangles: number;
12
+ frametime: number;
13
+ };
14
+ constructor(scene: Scene, signals: SignalsState);
15
+ addListeners(): void;
16
+ }
17
+ export default Info;
@@ -0,0 +1,26 @@
1
+ import { WebGLRenderer } from 'three';
2
+ import { CSS2DRenderer, CSS3DRenderer } from '../Renderer';
3
+ import { InternalOptions } from '../Interface';
4
+ import Viewport from '.';
5
+ declare module 'three/src/renderers/WebGLRenderer' {
6
+ interface WebGLRenderer {
7
+ autoInstancing: boolean;
8
+ }
9
+ }
10
+ declare class RendererManager {
11
+ readonly viewport: Viewport;
12
+ internalOptions: InternalOptions;
13
+ renderer: WebGLRenderer;
14
+ container: HTMLElement;
15
+ interactiveContainer: HTMLElement;
16
+ rendererCSS2D: CSS2DRenderer;
17
+ rendererCSS3D: CSS3DRenderer;
18
+ constructor(viewport: Viewport);
19
+ setInternalState(name: keyof InternalOptions, state: boolean): void;
20
+ _initContainer(): HTMLElement;
21
+ _initRenderer(): WebGLRenderer;
22
+ _initRenderCSS2D(): CSS2DRenderer;
23
+ _initRenderCSS3D(): CSS3DRenderer;
24
+ _initInteractiveContainer(): HTMLDivElement;
25
+ }
26
+ export default RendererManager;
@@ -0,0 +1,43 @@
1
+ import { Scene, Mesh, Object3D } from 'three';
2
+ import localforage from 'localforage';
3
+ import { EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, SignalsState, ViewportState } from '../Interface';
4
+ declare class Scener {
5
+ readonly signals: SignalsState;
6
+ readonly viewportState: ViewportState;
7
+ scene: Scene;
8
+ selectedObjects: {
9
+ edge: Set<Object3D>;
10
+ stroke: Set<Object3D>;
11
+ opacity: Set<Object3D>;
12
+ highlight: Set<Object3D>;
13
+ emissive: Set<Object3D>;
14
+ };
15
+ intersectsList: {
16
+ meshOfModelList: Mesh[];
17
+ poiIconList: Object3D[];
18
+ otherObjList: Object3D[];
19
+ getAll: () => Object3D[];
20
+ };
21
+ /**
22
+ * 线框
23
+ */
24
+ strokeStore: typeof localforage;
25
+ constructor(signals: SignalsState, viewportState: ViewportState);
26
+ addObject(object: Object3D, parent?: Object3D | null): void;
27
+ attachObject(object: Object3D, parent?: Object3D | null): void;
28
+ removeObject(object: Object3D): void;
29
+ openSceneFog(options?: FogOptions): void;
30
+ closeSceneFog(): void;
31
+ edgeShow(object: Object3D | Object3D[], options?: EdgeSelectOptions): Promise<void>;
32
+ unEdgeShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
33
+ strokeShow(object: Object3D | Object3D[], options?: StrokeSelectOptions): Promise<void | void[]>;
34
+ unStrokeShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
35
+ opacityShow(object: Object3D | Object3D[], options?: OpacitySelectOptions): Promise<void | void[]>;
36
+ unOpacityShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
37
+ highlightShow(object: Object3D | Object3D[], options?: HighlightSelectOptions): Promise<void | void[]>;
38
+ unHighlightShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
39
+ emissiveShow(object: Object3D | Object3D[], options?: EmissiveSelectOptions): Promise<void | void[]>;
40
+ unEmissiveShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
41
+ _triggerObjectAdded(object: Object3D): void;
42
+ }
43
+ export default Scener;
@@ -0,0 +1,15 @@
1
+ import { Camera, Object3D, WebGLRenderer } from 'three';
2
+ import Controls from '../Controls';
3
+ declare class ViewHelper extends Object3D {
4
+ camera: Camera;
5
+ controls: Controls;
6
+ setLabels: (labelX: string, labelY: string, labelZ: string) => void;
7
+ setLabelStyle: (font: string, color: string, radius: number) => void;
8
+ render: (renderer: WebGLRenderer) => void;
9
+ handleClick: (event: MouseEvent) => void;
10
+ dispose: () => void;
11
+ isViewHelper: boolean;
12
+ animating: boolean;
13
+ constructor(camera: Camera, domElement: HTMLElement, controls: Controls);
14
+ }
15
+ export { ViewHelper, };
@@ -0,0 +1,131 @@
1
+ import { Mesh, Clock, Scene, PerspectiveCamera, WebGLRenderer, PMREMGenerator, Vector3, AnimationMixer, Raycaster, Intersection, AnimationClip, Texture, Material, OrthographicCamera } from 'three';
2
+ import { EffectComposer } from 'postprocessing';
3
+ import Stats from 'three/examples/jsm/libs/stats.module.js';
4
+ import { Sky } from 'three/examples/jsm/objects/Sky.js';
5
+ import { AnimationOperate } from '@three3d/animation';
6
+ import Scener from './Scener';
7
+ import { CSS2DRenderer, CSS3DRenderer } from '../Renderer';
8
+ import RendererManager from './RendererManager';
9
+ import CameraManager from './CameraManager';
10
+ import EffectManager from './EffectManager';
11
+ import Bvh from './Bvh';
12
+ import Controls from '../Controls';
13
+ import { Model } from '../Library';
14
+ import { IColorSpace, SkyOptions, IColor, OffsetPoint, Position, ViewportOptions, ViewportState, ModelAnimationFindFunc, SignalsState, ToneMappingOptions, SSAOOptions, BloomOptions, IntersectsOptions, EnvironmentOptions } from '../Interface';
15
+ import EventHandler from './EventHandler';
16
+ import Info from './Info';
17
+ import { ViewHelper } from './ViewHelper';
18
+ import { ObjectsCache } from '../Cache';
19
+ export declare const innerRenderState: {
20
+ needsUpdate: boolean;
21
+ };
22
+ declare class Viewport {
23
+ readonly options: ViewportOptions;
24
+ readonly signals: SignalsState;
25
+ readonly cache: ObjectsCache;
26
+ clock: Clock;
27
+ raycaster: Raycaster;
28
+ scene: Scene;
29
+ sky: Sky | null;
30
+ state: ViewportState;
31
+ scener: Scener;
32
+ rendererManager: RendererManager;
33
+ container: HTMLElement;
34
+ interactiveContainer: HTMLElement;
35
+ renderer: WebGLRenderer;
36
+ rendererCSS2D: CSS2DRenderer;
37
+ rendererCSS3D: CSS3DRenderer;
38
+ pmremGenerator: PMREMGenerator;
39
+ info: Info;
40
+ stats: Stats;
41
+ cameraManager: CameraManager;
42
+ camera: PerspectiveCamera | OrthographicCamera;
43
+ controls: Controls;
44
+ effectManager: EffectManager;
45
+ effectComposer: EffectComposer;
46
+ bvh: Bvh;
47
+ mixer: AnimationMixer;
48
+ clipsSet: Set<AnimationClip>;
49
+ viewHelper: ViewHelper;
50
+ eventHandler: EventHandler;
51
+ /**
52
+ * render 前回调(每帧执行)
53
+ */
54
+ postUpdate: Map<string | number, (time: number) => void>;
55
+ /**
56
+ * render 后回调
57
+ */
58
+ postRender: Map<string | number, () => void>;
59
+ private _loop;
60
+ resizeObserver: ResizeObserver;
61
+ constructor(options: ViewportOptions, signals: SignalsState, cache: ObjectsCache);
62
+ _initInfo(): void;
63
+ _initStats(): void;
64
+ setAutoInstancing(enabled: boolean): void;
65
+ /**
66
+ ***************************** post-processing ***************************
67
+ */
68
+ setBloom(options?: BloomOptions): void;
69
+ setSSAO(options?: SSAOOptions): void;
70
+ /**
71
+ ***************************** renderer ***************************
72
+ */
73
+ setColorSpace(colorSpace: IColorSpace): void;
74
+ setToneMapping(options?: ToneMappingOptions): void;
75
+ /**
76
+ ***************************** background ***************************
77
+ */
78
+ setSphereSkyBackground(imgUrl: string): Promise<void>;
79
+ setSkyBackground(dirPath: string, fileNames?: string[]): Promise<void>;
80
+ setBackgroundColor(color: IColor): void;
81
+ setBackgroundColorAlpha(color: IColor, alpha?: number): void;
82
+ setBackgroundImage(imgUrl: string): Promise<void>;
83
+ setSky(options?: SkyOptions): Sky | undefined;
84
+ closeSky(): boolean;
85
+ screenshot(): Promise<Blob | null>;
86
+ /**
87
+ ***************************** environment ***************************
88
+ */
89
+ setEnvironment(options?: EnvironmentOptions): Promise<Texture>;
90
+ /**
91
+ ***************************** modelAnimation ***************************
92
+ */
93
+ playModelAnimation(model: Model, animation: number | AnimationClip | ModelAnimationFindFunc): AnimationOperate | undefined;
94
+ stopModelAnimation(model: Model, animation: number | AnimationClip | ModelAnimationFindFunc): void;
95
+ /**
96
+ ***************************** render ***************************
97
+ */
98
+ render(fn?: () => unknown): Promise<number>;
99
+ /**
100
+ * 触发渲染(兼容 soongis)
101
+ * @param count
102
+ */
103
+ triggerRender(count?: number): void;
104
+ /**
105
+ * 暂停渲染
106
+ * @param pause
107
+ */
108
+ setPauseRender(pause?: boolean): Promise<number | undefined>;
109
+ /**
110
+ * effect passes
111
+ */
112
+ _passesObserver(): void;
113
+ /**
114
+ * 每帧都会被执行
115
+ * @param time
116
+ * @returns
117
+ */
118
+ autoRender(): void;
119
+ animate(time: number): void;
120
+ getOffsetByPosition(position: Position): {
121
+ left: number;
122
+ top: number;
123
+ };
124
+ getPositionByOffset(offset: OffsetPoint, z?: number, scalar?: number): Vector3;
125
+ getIntersects(event: MouseEvent | TouchEvent | OffsetPoint, objects?: import("three").Object3D<import("three").Object3DEventMap>[], options?: IntersectsOptions): Intersection<import("three").Object3D<import("three").Object3DEventMap>>[];
126
+ rayClash(startPoint?: Vector3, dir?: Vector3, objects?: Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, Material | Material[], import("three").Object3DEventMap>[]): Intersection<import("three").Object3D<import("three").Object3DEventMap>>[];
127
+ clearSignals(): void;
128
+ dispose(): void;
129
+ _signalsEventListenr(): void;
130
+ }
131
+ export default Viewport;
@@ -0,0 +1,6 @@
1
+ import { Object3D } from 'three';
2
+ import { GLTFExporterOptions } from 'three/examples/jsm/exporters/GLTFExporter.js';
3
+ declare function exportGltf(object: Object3D | Object3D[], options?: GLTFExporterOptions): Promise<ArrayBuffer | {
4
+ [key: string]: any;
5
+ }>;
6
+ export { exportGltf, };