soonspacejs 2.3.13 → 2.3.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "soonspacejs",
3
- "version": "2.3.13",
3
+ "version": "2.3.14",
4
4
  "description": "soonspacejs 2.x",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -17,9 +17,7 @@
17
17
  "@robotlegsjs/signals": "1.1.0",
18
18
  "@soonspacejs/xml2json": "0.0.2",
19
19
  "@tweenjs/tween.js": "18.6.4",
20
- "@types/three": "^0.135.0",
21
- "localforage": "1.9.0",
22
- "three": "^0.136.0"
20
+ "localforage": "1.9.0"
23
21
  },
24
- "gitHead": "8e8640a5baee74a8a0df5a0b386a6acae77f328a"
22
+ "gitHead": "f9b1a052ef325608ab69e27efee8bcd625496dd4"
25
23
  }
@@ -11,24 +11,26 @@ interface BaseLightInfo {
11
11
  intensity?: number;
12
12
  }
13
13
  declare type AmbientLightOptions = BaseLightInfo;
14
- interface DirectionalLightOptions extends BaseLightInfo {
15
- position?: Position;
16
- target?: Position;
14
+ export interface ShadowOptions {
17
15
  openShadow?: boolean;
16
+ shadowAutoUpdate?: boolean;
18
17
  mapSize?: number;
19
18
  }
19
+ interface DirectionalLightOptions extends BaseLightInfo, ShadowOptions {
20
+ position?: Position;
21
+ target?: Position;
22
+ }
20
23
  interface HemisphereLightOptions extends BaseLightInfo {
21
24
  position?: Position;
22
25
  skyColor?: IColor;
23
26
  groundColor?: IColor;
24
27
  }
25
- interface SpotLightOptions extends BaseLightInfo {
28
+ interface SpotLightOptions extends BaseLightInfo, ShadowOptions {
26
29
  position?: Position;
27
30
  angle?: number;
28
31
  target?: Position;
29
- openShadow?: boolean;
30
32
  }
31
- interface PointLightOptions extends BaseLightInfo {
33
+ interface PointLightOptions extends BaseLightInfo, ShadowOptions {
32
34
  position?: Position;
33
35
  distance?: number;
34
36
  }
@@ -1,8 +1,9 @@
1
+ import { Object3D } from 'three';
1
2
  import { IColor, Position, Rotation, BaseSelectOptions } from './base';
2
3
  import { AnimationOptions } from './animation';
3
- import { BaseObject3D } from '../Library';
4
4
  import { GridHelperOptions } from './manager';
5
5
  import { ControlsOptions } from './controls';
6
+ export declare type ColorSpace = 'Linear' | 'sRGB';
6
7
  interface CameraViewpointData {
7
8
  position: Position;
8
9
  rotation: Rotation;
@@ -23,10 +24,10 @@ interface InternalOptions {
23
24
  enableRenderCss2D: boolean;
24
25
  enableRenderCss2DHalf: boolean;
25
26
  enableRenderCss3D: boolean;
26
- [x: string]: boolean;
27
+ enableReflection: boolean;
27
28
  }
28
29
  interface SelectModelOptions<TOptions> {
29
- objects: BaseObject3D[];
30
+ objects: Object3D[];
30
31
  options?: TOptions;
31
32
  }
32
33
  interface EdgeSelectOptions {
@@ -53,6 +54,19 @@ interface FogOptions {
53
54
  near?: number;
54
55
  far?: number;
55
56
  }
57
+ export interface ReflectionOptions {
58
+ enable: boolean;
59
+ }
60
+ interface SkyOptions {
61
+ enable?: boolean;
62
+ position?: Position;
63
+ scalar?: number;
64
+ turbidity?: number;
65
+ rayleigh?: number;
66
+ elevation?: number;
67
+ azimuth?: number;
68
+ exposure?: number;
69
+ }
56
70
  interface ViewportOptions {
57
71
  showInfo?: boolean;
58
72
  showGrid?: boolean | GridHelperOptions;
@@ -77,4 +91,4 @@ interface ViewportState {
77
91
  useFreq: number;
78
92
  animationTotal: number;
79
93
  }
80
- export { CameraViewpointData, FlyToObjOptions, SurroundOptions, LabelOptions, InternalOptions, SelectModelOptions, EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, ViewportOptions, ViewportState, };
94
+ export { CameraViewpointData, FlyToObjOptions, SurroundOptions, LabelOptions, InternalOptions, SelectModelOptions, EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, SkyOptions, ViewportOptions, ViewportState, };
@@ -1,7 +1,7 @@
1
1
  import Viewport from '../Viewport';
2
2
  import DefaultManage from './DefaultManage';
3
3
  import { GridHelper, AxesHelper, Box3Helper, DirectionalLightHelper, HemisphereLightHelper, SpotLightHelper, PointLightHelper } from 'three';
4
- import { RectAreaLightHelper } from 'three/examples/jsm/helpers/RectAreaLightHelper';
4
+ import { RectAreaLightHelper } from 'three/examples/jsm/helpers/RectAreaLightHelper.js';
5
5
  import { GridHelperOptions, AxesHelperOptions, BoxHelperOptions, PlaneHelperOptions, GroundHelperOptions, DirectionalLightHelperOptions, HemisphereLightHelperOptions, SpotLightHelperOptions, PointLightHelperOptions, RectAreaLightHelperOptions } from '../Interface';
6
6
  import { BaseMesh, Ground } from '../Library';
7
7
  declare class HelperManage extends DefaultManage {
@@ -16,5 +16,6 @@ declare class LightManage extends DefaultManage {
16
16
  setPointLight(options: PointLightOptions): boolean;
17
17
  createRectAreaLight(options: RectAreaLightOptions): RectAreaLight;
18
18
  setRectAreaLight(options: RectAreaLightOptions): boolean;
19
+ updateAllShadow(): void;
19
20
  }
20
21
  export default LightManage;
@@ -1,5 +1,5 @@
1
- import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader';
2
- import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
1
+ import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js';
2
+ import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
3
3
  import * as localforage from 'localforage';
4
4
  import DefaultManage from './DefaultManage';
5
5
  import { BaseObject3D, Group, GroupInfo, Model, ModelInfo } from '../Library';
@@ -1,13 +1,18 @@
1
1
  import { Scene, WebGLRenderer, Camera, Vector2 } from 'three';
2
- import { Pass } from 'three/examples/jsm/postprocessing/Pass';
3
- import { SAOPass } from 'three/examples/jsm/postprocessing/SAOPass';
4
- import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass';
5
- import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass';
6
- import { SSAARenderPass } from 'three/examples/jsm/postprocessing/SSAARenderPass';
7
- import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass';
8
- import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer';
2
+ import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';
3
+ import { Pass } from 'three/examples/jsm/postprocessing/Pass.js';
4
+ import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass.js';
5
+ import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass.js';
6
+ import { SSRPass } from 'three/examples/jsm/postprocessing/SSRPass.js';
7
+ import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass.js';
9
8
  import { CSS2DRenderer, CSS2DHalfRenderer, CSS3DRenderer } from '../Renderer';
10
9
  import { InternalOptions, ViewportOptions } from '../Interface';
10
+ export interface PassObj {
11
+ renderPass: RenderPass;
12
+ outlinePass: OutlinePass;
13
+ ssrPass: SSRPass;
14
+ gammaCorrectionPass: ShaderPass;
15
+ }
11
16
  declare class RendererManager {
12
17
  scene: Scene;
13
18
  options: ViewportOptions;
@@ -20,10 +25,11 @@ declare class RendererManager {
20
25
  rendererCSS3D: CSS3DRenderer;
21
26
  rendererCSS2DHalf: CSS2DHalfRenderer;
22
27
  constructor(scene: Scene, options: ViewportOptions);
23
- initEffectComposer(camera: Camera): EffectComposer;
24
- initAllPass(camera: Camera): Record<string, Pass>;
28
+ initEffectComposer(): EffectComposer;
29
+ initAllPass(camera: Camera): PassObj;
25
30
  addPass(effectPass: Pass): void;
26
- setInternalState(name: string, state: boolean): void;
31
+ isIncludesPass(effectPass: Pass): boolean;
32
+ setInternalState(name: keyof InternalOptions, state: boolean): void;
27
33
  getWidth(): number;
28
34
  getHeight(): number;
29
35
  getMouseRelativeConRatio(clientPoint: MouseEvent): number[];
@@ -34,11 +40,9 @@ declare class RendererManager {
34
40
  _initRenderCSS3D(): CSS3DRenderer;
35
41
  _initRenderCSS2DHalf(): CSS2DHalfRenderer;
36
42
  _initInteractiveContainer(): HTMLElement;
37
- _initFxaaPass(): ShaderPass;
38
- _initSsaaPass(camera: Camera): SSAARenderPass;
43
+ _initRenderPass(camera: Camera): RenderPass;
39
44
  _initOutlinePass(camera: Camera): OutlinePass;
40
- _initSweepingLightShaderPass(): ShaderPass;
41
- _initUnrealBloomPass(): UnrealBloomPass;
42
- _initSAOPass(camera: Camera): SAOPass;
45
+ _initSSRPass(camera: Camera): SSRPass;
46
+ _initGammaCorrectionPass(): ShaderPass;
43
47
  }
44
48
  export default RendererManager;
@@ -1,15 +1,14 @@
1
1
  import { Scene, Object3D } from 'three';
2
- import { BaseObject3D } from '../Library';
3
2
  import { EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, SignalsState } from '../Interface';
4
3
  declare class Scener {
5
4
  readonly signals: SignalsState;
6
5
  scene: Scene;
7
6
  selectedObjects: {
8
- edge: BaseObject3D[];
9
- stroke: BaseObject3D[];
10
- opacity: BaseObject3D[];
11
- highlight: BaseObject3D[];
12
- emissive: BaseObject3D[];
7
+ edge: Object3D[];
8
+ stroke: Object3D[];
9
+ opacity: Object3D[];
10
+ highlight: Object3D[];
11
+ emissive: Object3D[];
13
12
  };
14
13
  intersectsList: {
15
14
  meshOfModelList: Object3D[];
@@ -22,16 +21,16 @@ declare class Scener {
22
21
  removeObject(object: Object3D): void;
23
22
  openSceneFog(options?: FogOptions): void;
24
23
  closeSceneFog(): void;
25
- edgeShow(object: BaseObject3D | BaseObject3D[], options?: EdgeSelectOptions): Promise<void>;
26
- unEdgeShow(objects?: BaseObject3D | BaseObject3D[]): Promise<void | void[]>;
27
- strokeShow(object: BaseObject3D | BaseObject3D[], options?: StrokeSelectOptions): Promise<void | void[]>;
28
- unStrokeShow(objects?: BaseObject3D | BaseObject3D[]): Promise<void | void[]>;
29
- opacityShow(object: BaseObject3D | BaseObject3D[], options?: OpacitySelectOptions): Promise<void | void[]>;
30
- unOpacityShow(objects?: BaseObject3D | BaseObject3D[]): Promise<void | void[]>;
31
- highlightShow(object: BaseObject3D | BaseObject3D[], options?: HighlightSelectOptions): Promise<void | void[]>;
32
- unHighlightShow(objects?: BaseObject3D | BaseObject3D[]): Promise<void | void[]>;
33
- emissiveShow(object: BaseObject3D | BaseObject3D[], options?: EmissiveSelectOptions): Promise<void | void[]>;
34
- unEmissiveShow(objects?: BaseObject3D | BaseObject3D[]): Promise<void | void[]>;
24
+ edgeShow(object: Object3D | Object3D[], options?: EdgeSelectOptions): Promise<void>;
25
+ unEdgeShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
26
+ strokeShow(object: Object3D | Object3D[], options?: StrokeSelectOptions): Promise<void | void[]>;
27
+ unStrokeShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
28
+ opacityShow(object: Object3D | Object3D[], options?: OpacitySelectOptions): Promise<void | void[]>;
29
+ unOpacityShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
30
+ highlightShow(object: Object3D | Object3D[], options?: HighlightSelectOptions): Promise<void | void[]>;
31
+ unHighlightShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
32
+ emissiveShow(object: Object3D | Object3D[], options?: EmissiveSelectOptions): Promise<void | void[]>;
33
+ unEmissiveShow(objects?: Object3D | Object3D[]): Promise<void | void[]>;
35
34
  _triggerObjectAdded(object: Object3D): void;
36
35
  }
37
36
  export default Scener;
@@ -1,12 +1,13 @@
1
1
  import { Scene, PerspectiveCamera, WebGLRenderer, PMREMGenerator, Vector3, AnimationMixer, Intersection, Object3D, AnimationAction, AnimationClip } from 'three';
2
+ import { Sky } from 'three/examples/jsm/objects/Sky.js';
2
3
  import Scener from './Scener';
3
4
  import { CSS2DRenderer, CSS2DHalfRenderer, CSS3DRenderer } from '../Renderer';
4
- import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer';
5
- import RendererManager from './RendererManager';
5
+ import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';
6
+ import RendererManager, { PassObj } from './RendererManager';
6
7
  import CameraManager from './CameraManager';
7
8
  import { FullFreeControls } from '../Controls';
8
9
  import { Model } from '../Library';
9
- import { IColor, OffsetPoint, SceneEventType, Position, ViewportOptions, ViewportState, ModelAnimationFindFunc, SignalsState } from '../Interface';
10
+ import { ColorSpace, SkyOptions, IColor, OffsetPoint, SceneEventType, Position, ViewportOptions, ViewportState, ModelAnimationFindFunc, SignalsState, ReflectionOptions } from '../Interface';
10
11
  import Info from './Info';
11
12
  export declare const innerRenderState: Record<string, boolean>;
12
13
  declare class Viewport {
@@ -15,6 +16,7 @@ declare class Viewport {
15
16
  signals: SignalsState;
16
17
  scener: Scener;
17
18
  scene: Scene;
19
+ sky: Sky | null;
18
20
  rendererManager: RendererManager;
19
21
  container: HTMLElement;
20
22
  interactiveContainer: HTMLElement;
@@ -28,7 +30,7 @@ declare class Viewport {
28
30
  camera: PerspectiveCamera;
29
31
  controls: FullFreeControls;
30
32
  effectComposer: EffectComposer;
31
- pass: any;
33
+ passObj: PassObj;
32
34
  mixer: AnimationMixer;
33
35
  /**
34
36
  * render 前回调
@@ -43,6 +45,14 @@ declare class Viewport {
43
45
  private _loop;
44
46
  constructor(options: ViewportOptions);
45
47
  initInfo(): void;
48
+ /**
49
+ ***************************** reflection ***************************
50
+ */
51
+ setReflection(options: ReflectionOptions): void;
52
+ /**
53
+ ***************************** renderer ***************************
54
+ */
55
+ setColorSpace(colorSpace: ColorSpace): void;
46
56
  /**
47
57
  ***************************** background ***************************
48
58
  */
@@ -50,6 +60,8 @@ declare class Viewport {
50
60
  setSkyBackground(dirPath: string, fileNames?: string[]): void;
51
61
  setBackgroundColor(color: IColor): void;
52
62
  setBackgroundImage(imgUrl: string): void;
63
+ setSky(options?: SkyOptions): Sky | undefined;
64
+ closeSky(): boolean;
53
65
  /**
54
66
  ***************************** environment ***************************
55
67
  */
@@ -64,6 +76,7 @@ declare class Viewport {
64
76
  */
65
77
  render(fn?: () => void): Promise<void>;
66
78
  trigerRender(count?: number): void;
79
+ _passesObserver(): void;
67
80
  /**
68
81
  * 每帧都会被执行
69
82
  * @param time
package/types/index.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  |_| |__/
8
8
  */
9
9
  import * as THREE from 'three';
10
- import { TransformControls } from 'three/examples/jsm/controls/TransformControls';
10
+ import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js';
11
11
  import { Object3D, Vector3, Euler, Box3, AnimationClip, AnimationAction, Light } from 'three';
12
12
  import * as shared from './Shared';
13
13
  import Animation from './Animation';
@@ -15,7 +15,7 @@ import * as library from './Library';
15
15
  import { BaseObject3D, BaseObject3DInfo, Sbm, SbmInfo, Model, ModelInfo, Poi, PoiInfo, PoiNode, PoiNodeInfo, Topology, TopologyInfo, Group, GroupInfo, Canvas3D, Canvas3DInfo, PluginObject, PluginObjectInfo } from './Library';
16
16
  import Viewport from './Viewport';
17
17
  import Manager from './Manager';
18
- import { ViewportOptions, SceneGlobalEvents, PluginsConstructor, IColor, Position, Rotation, OffsetPoint, AnimationOptions, ModelAnimationFindFunc, TopologyNodeInfo, CameraViewpointData, FlyToViewpoint, FlyToObjOptions, SurroundOptions, LabelOptions, EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, UserDataPropertyFindFunc, AmbientLightOptions, DirectionalLightOptions, HemisphereLightOptions, SpotLightOptions, PointLightOptions, CloneSbmInfo, ModelLoadingProgressCallback, GroupProgressCallback, CloneModelInfo, ClonePoiInfo, ShortestPathInfo, ShortestPathByMultipleStartPoints, ShortestPathByMultipleEndPoints, TopologyInfoForGml, GridHelperOptions, AxesHelperOptions, BoxHelperOptions, PlaneHelperOptions, GroundHelperOptions, DirectionalLightHelperOptions, HemisphereLightHelperOptions, SpotLightHelperOptions, PointLightHelperOptions, SignalsState, ControlsOptions, RectAreaLightOptions, RectAreaLightHelperOptions } from './Interface';
18
+ import { ViewportOptions, SceneGlobalEvents, PluginsConstructor, IColor, Position, Rotation, OffsetPoint, AnimationOptions, ModelAnimationFindFunc, TopologyNodeInfo, CameraViewpointData, FlyToViewpoint, FlyToObjOptions, SurroundOptions, LabelOptions, EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, UserDataPropertyFindFunc, AmbientLightOptions, DirectionalLightOptions, HemisphereLightOptions, SpotLightOptions, PointLightOptions, CloneSbmInfo, ModelLoadingProgressCallback, GroupProgressCallback, CloneModelInfo, ClonePoiInfo, ShortestPathInfo, ShortestPathByMultipleStartPoints, ShortestPathByMultipleEndPoints, TopologyInfoForGml, GridHelperOptions, AxesHelperOptions, BoxHelperOptions, PlaneHelperOptions, GroundHelperOptions, DirectionalLightHelperOptions, HemisphereLightHelperOptions, SpotLightHelperOptions, PointLightHelperOptions, SignalsState, ControlsOptions, RectAreaLightOptions, RectAreaLightHelperOptions, SkyOptions, ColorSpace } from './Interface';
19
19
  export declare type InitOptions = ViewportOptions;
20
20
  export declare type InitEvents = SceneGlobalEvents;
21
21
  export interface SoonSpaceConstructor {
@@ -102,6 +102,11 @@ export default class SoonSpace {
102
102
  /******* Viewport methods */
103
103
  /******/
104
104
  /******/
105
+ /**
106
+ * 设置场景的颜色空间
107
+ * @param colorSpace
108
+ */
109
+ setColorSpace(colorSpace: ColorSpace): void;
105
110
  /**
106
111
  * 设置开启鼠标悬浮
107
112
  * @param enabled
@@ -265,6 +270,7 @@ export default class SoonSpace {
265
270
  * 关闭场景雾化
266
271
  */
267
272
  closeSceneFog(): void;
273
+ setSky(options: SkyOptions): import("three/examples/jsm/objects/Sky").Sky | undefined;
268
274
  /**
269
275
  * 轮廓显示模型
270
276
  * @deprecated
@@ -428,6 +434,11 @@ export default class SoonSpace {
428
434
  * 隐藏所有光
429
435
  */
430
436
  hideAllLight(): void;
437
+ /**
438
+ * 更新所有灯光阴影
439
+ * @returns
440
+ */
441
+ updateAllShadow(): void;
431
442
  /******/
432
443
  /******/
433
444
  /******* Sbm methods */