soonspacejs 2.3.19 → 2.4.1

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 (48) hide show
  1. package/dist/index.esm.js +11 -19
  2. package/dist/index.js +11 -19
  3. package/package.json +14 -6
  4. package/types/Interface/animation.d.ts +4 -4
  5. package/types/Interface/base.d.ts +2 -1
  6. package/types/Interface/manager.d.ts +1 -1
  7. package/types/Interface/viewport.d.ts +32 -4
  8. package/types/Library/BaseObject3D.d.ts +2 -1
  9. package/types/Library/Circle.d.ts +2 -0
  10. package/types/Library/Line.d.ts +2 -0
  11. package/types/Library/Model.d.ts +0 -2
  12. package/types/Library/Point.d.ts +2 -0
  13. package/types/Library/Polygon.d.ts +2 -0
  14. package/types/Library/Sbm.d.ts +0 -2
  15. package/types/Loader/DatLoader/DatLoader_DEPRECATED.d.ts +68 -0
  16. package/types/Loader/DatLoader/index.d.ts +59 -0
  17. package/types/Loader/DatLoader/pako_inflate.d.ts +2 -0
  18. package/types/Loader/DatLoader/parse-chunk/dracoCompress.d.ts +18 -0
  19. package/types/Loader/DatLoader/parse-chunk/gzipCompress.d.ts +13 -0
  20. package/types/Loader/DatLoader/parse-chunk/index.d.ts +22 -0
  21. package/types/Loader/DatLoader/parse-chunk/noCompress.d.ts +13 -0
  22. package/types/Loader/SbmLoader/SbkLoader.d.ts +1 -10
  23. package/types/Loader/SbmLoader/SbmLoader.d.ts +13 -9
  24. package/types/Loader/{utils → SbmLoader/utils}/generateSbm.d.ts +2 -2
  25. package/types/Manager/Canvas3DManage.d.ts +2 -2
  26. package/types/Manager/DefaultManage.d.ts +20 -11
  27. package/types/Manager/GroupManage.d.ts +7 -0
  28. package/types/Manager/HelperManage.d.ts +2 -2
  29. package/types/Manager/LightManage.d.ts +2 -1
  30. package/types/Manager/ModelManage.d.ts +27 -6
  31. package/types/Manager/PluginObjectManage.d.ts +3 -3
  32. package/types/Manager/PoiManage.d.ts +2 -2
  33. package/types/Manager/PoiNodeManage.d.ts +2 -2
  34. package/types/Manager/SbmManage.d.ts +2 -2
  35. package/types/Manager/TopologyManage.d.ts +2 -2
  36. package/types/Manager/index.d.ts +7 -5
  37. package/types/Shared/cloneDeep.d.ts +2 -0
  38. package/types/Shared/index.d.ts +6 -3
  39. package/types/Shared/map.d.ts +9 -1
  40. package/types/Shared/material.d.ts +2 -0
  41. package/types/Shared/network.d.ts +1 -0
  42. package/types/Shared/path.d.ts +1 -0
  43. package/types/Viewport/EffectManager.d.ts +44 -0
  44. package/types/Viewport/RendererManager.d.ts +2 -26
  45. package/types/Viewport/ViewHelper.d.ts +7 -0
  46. package/types/Viewport/index.d.ts +25 -11
  47. package/types/index.d.ts +18 -8
  48. package/types/Shared/sbmx.d.ts +0 -7
package/package.json CHANGED
@@ -1,11 +1,19 @@
1
1
  {
2
2
  "name": "soonspacejs",
3
- "version": "2.3.19",
3
+ "version": "2.4.1",
4
+ "homepage": "http://www.xwbuilders.com:8800/",
4
5
  "description": "soonspacejs 2.x",
5
- "main": "dist/index.js",
6
- "module": "dist/index.esm.js",
7
- "unpkg": "dist/index.js",
8
- "typings": "types/index.d.ts",
6
+ "module": "./dist/index.esm.js",
7
+ "main": "./dist/index.js",
8
+ "typings": "./types/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.esm.js",
12
+ "require": "./dist/index.js",
13
+ "types": "./types/index.d.ts"
14
+ }
15
+ },
16
+ "unpkg": "./dist/index.js",
9
17
  "keywords": [
10
18
  "soonspacejs",
11
19
  "threejs",
@@ -21,5 +29,5 @@
21
29
  "localforage": "1.9.0",
22
30
  "three": "0.139.0"
23
31
  },
24
- "gitHead": "965a0721d4edf50c6583459b57ca97d8937cc074"
32
+ "gitHead": "9cccb30f9fe851aca8930345bfba6b7099314a5c"
25
33
  }
@@ -1,10 +1,10 @@
1
- declare type AnimationMode = 'Linear.None' | 'Quadratic.In' | 'Quadratic.Out' | 'Quadratic.InOut' | 'Cubic.In' | 'Cubic.Out' | 'Cubic.InOut' | 'Quartic.In' | 'Quartic.Out' | 'Quartic.InOut' | 'Quintic.In' | 'Quintic.Out' | 'Quintic.InOut' | 'Sinusoidal.In' | 'Sinusoidal.Out' | 'Sinusoidal.InOut' | 'Exponential.In' | 'Exponential.Out' | 'Exponential.InOut' | 'Circular.In' | 'Circular.Out' | 'Circular.InOut' | 'Elastic.In' | 'Elastic.Out' | 'Elastic.InOut' | 'Back.In' | 'Back.Out' | 'Back.InOut' | 'Bounce.In' | 'Bounce.Out' | 'Bounce.InOut';
2
- declare type AnimationModeEnum = Record<AnimationMode, (amount: number) => number>;
1
+ declare type AnimationModeType = 'Linear.None' | 'Quadratic.In' | 'Quadratic.Out' | 'Quadratic.InOut' | 'Cubic.In' | 'Cubic.Out' | 'Cubic.InOut' | 'Quartic.In' | 'Quartic.Out' | 'Quartic.InOut' | 'Quintic.In' | 'Quintic.Out' | 'Quintic.InOut' | 'Sinusoidal.In' | 'Sinusoidal.Out' | 'Sinusoidal.InOut' | 'Exponential.In' | 'Exponential.Out' | 'Exponential.InOut' | 'Circular.In' | 'Circular.Out' | 'Circular.InOut' | 'Elastic.In' | 'Elastic.Out' | 'Elastic.InOut' | 'Back.In' | 'Back.Out' | 'Back.InOut' | 'Bounce.In' | 'Bounce.Out' | 'Bounce.InOut';
2
+ declare type AnimationModeValueType = (amount: number) => number;
3
3
  interface AnimationOptions {
4
4
  duration?: number;
5
5
  delay?: number;
6
6
  repeat?: number | boolean;
7
- mode?: AnimationMode;
7
+ mode?: AnimationModeType;
8
8
  yoyo?: boolean;
9
9
  }
10
- export { AnimationMode, AnimationModeEnum, AnimationOptions, };
10
+ export { AnimationModeType, AnimationModeValueType, AnimationOptions, };
@@ -1,3 +1,4 @@
1
+ import { Color } from 'three';
1
2
  interface IVector2 {
2
3
  x: number;
3
4
  y: number;
@@ -15,7 +16,7 @@ interface IVector3 extends IVector2 {
15
16
  declare type Position = IVector3;
16
17
  declare type Rotation = IVector3;
17
18
  declare type Scale = IVector3;
18
- declare type IColor = string | number;
19
+ declare type IColor = string | number | Color;
19
20
  interface Level {
20
21
  max: number | null;
21
22
  min: number | null;
@@ -89,7 +89,7 @@ interface ShortestPathByMultipleEndPoints extends BaseObject3DInfo, TopologyEffe
89
89
  end: Position[];
90
90
  }
91
91
  interface TopologyNodeGraph {
92
- targetNodeId: string;
92
+ targetNodeId: string | number;
93
93
  linkInfo: {
94
94
  id: string;
95
95
  name: string;
@@ -34,7 +34,6 @@ interface EdgeSelectOptions {
34
34
  hideColor?: IColor;
35
35
  edgeThickness?: number;
36
36
  edgeStrength?: number;
37
- pulsePeriod?: number;
38
37
  }
39
38
  interface StrokeSelectOptions extends BaseSelectOptions {
40
39
  isOpacityShow?: boolean;
@@ -54,7 +53,7 @@ interface FogOptions {
54
53
  far?: number;
55
54
  }
56
55
  interface SkyOptions {
57
- enable?: boolean;
56
+ enabled?: boolean;
58
57
  position?: Position;
59
58
  scalar?: number;
60
59
  turbidity?: number;
@@ -66,6 +65,7 @@ interface SkyOptions {
66
65
  interface ViewportOptions {
67
66
  showInfo?: boolean;
68
67
  showStats?: boolean;
68
+ showViewHelper?: boolean;
69
69
  showGrid?: boolean | GridHelperOptions;
70
70
  background?: {
71
71
  color?: IColor | null;
@@ -79,6 +79,7 @@ interface ViewportOptions {
79
79
  fog?: boolean | FogOptions;
80
80
  controls?: ControlsOptions;
81
81
  hoverEnabled?: boolean;
82
+ levelEnabled?: boolean;
82
83
  closeInfoLog?: boolean;
83
84
  closeWarnLog?: boolean;
84
85
  useIndexedDB?: boolean;
@@ -89,12 +90,39 @@ interface ViewportState {
89
90
  animationTotal: number;
90
91
  }
91
92
  export interface BloomOptions {
92
- enable?: boolean;
93
+ enabled?: boolean;
93
94
  strength?: number;
94
95
  radius?: number;
95
96
  threshold?: number;
96
97
  }
97
98
  export interface SobelOptions {
98
- enable?: boolean;
99
+ enabled?: boolean;
100
+ }
101
+ export interface SSAOOptions {
102
+ enabled?: boolean;
103
+ distanceScaling?: boolean;
104
+ depthAwareUpsampling?: boolean;
105
+ samples?: number;
106
+ rings?: number;
107
+ worldDistanceThreshold?: number;
108
+ worldDistanceFalloff?: number;
109
+ worldProximityThreshold?: number;
110
+ worldProximityFalloff?: number;
111
+ distanceThreshold?: number;
112
+ distanceFalloff?: number;
113
+ rangeThreshold?: number;
114
+ rangeFalloff?: number;
115
+ minRadiusScale?: number;
116
+ luminanceInfluence?: number;
117
+ radius?: number;
118
+ intensity?: number;
119
+ bias?: number;
120
+ fade?: number;
121
+ color?: IColor;
122
+ resolutionScale?: number;
123
+ }
124
+ export interface ToneMappingOptions {
125
+ type?: 'None' | 'Linear' | 'Reinhard' | 'Cineon' | 'ACESFilmic';
126
+ exposure?: number;
99
127
  }
100
128
  export { CameraViewpointData, FlyToObjOptions, SurroundOptions, LabelOptions, InternalOptions, SelectModelOptions, EdgeSelectOptions, StrokeSelectOptions, OpacitySelectOptions, HighlightSelectOptions, EmissiveSelectOptions, FogOptions, SkyOptions, ViewportOptions, ViewportState, };
@@ -1,4 +1,4 @@
1
- import { Object3D, Vector3, Euler, BaseEvent, Event } from 'three';
1
+ import { Object3D, Vector3, Euler, BaseEvent, Event, Box3 } from 'three';
2
2
  import { Tween } from '@tweenjs/tween.js';
3
3
  import { Position, Rotation, Scale, Level, AnimationOptions, Interpolate } from '../Interface';
4
4
  interface BaseObject3DInfo {
@@ -25,6 +25,7 @@ declare class BaseObject3D<E extends BaseEvent = Event> extends Object3D<E> {
25
25
  setScale(scale: Scale | Vector3, options?: AnimationOptions, onUpdate?: (source: Scale, tween: Tween<Scale>) => void, onStart?: (tween: Tween<Scale>) => void): Promise<void>;
26
26
  sClone<T extends BaseObject3D>(recursive?: boolean): T;
27
27
  sCopy<T extends BaseObject3D>(source: BaseObject3D, recursive?: boolean): T;
28
+ getBoundingBox(): Box3;
28
29
  getSpaceAttribute(isFromWorld?: boolean): {
29
30
  position: Vector3;
30
31
  rotation: Euler;
@@ -1,9 +1,11 @@
1
1
  import { IColor } from '../Interface';
2
2
  import { BaseMesh, BaseMeshInfo } from './BaseMesh';
3
+ import { GradientTextureOptions } from '../Shared';
3
4
  interface CircleInfo extends BaseMeshInfo {
4
5
  radius?: number;
5
6
  color?: IColor;
6
7
  opacity?: number;
8
+ gradient?: GradientTextureOptions;
7
9
  }
8
10
  declare type SetOptionsCircleInfo = Omit<CircleInfo, 'id'>;
9
11
  declare class Circle extends BaseMesh {
@@ -1,3 +1,4 @@
1
+ import { GradientTextureOptions } from '../Shared';
1
2
  import { Position, IColor } from '../Interface';
2
3
  import { BaseMesh, BaseMeshInfo } from './BaseMesh';
3
4
  interface LineInfo extends BaseMeshInfo {
@@ -5,6 +6,7 @@ interface LineInfo extends BaseMeshInfo {
5
6
  width?: number;
6
7
  color?: IColor;
7
8
  opacity?: number;
9
+ gradient?: GradientTextureOptions;
8
10
  }
9
11
  declare type SetOptionsLineInfo = Omit<LineInfo, 'id'>;
10
12
  declare class Line extends BaseMesh {
@@ -1,4 +1,3 @@
1
- import { Box3 } from 'three';
2
1
  import { BaseObject3D, BaseObject3DInfo } from './BaseObject3D';
3
2
  import { ObjectEvents, ObjectEventsListener } from '../Interface';
4
3
  interface ModelInfo extends BaseObject3DInfo, ObjectEvents<Model> {
@@ -15,7 +14,6 @@ declare class Model extends BaseObject3D<ObjectEventsListener> implements Object
15
14
  onDblClick: ((object: Model) => void) | null;
16
15
  onRightClick: ((object: Model) => void) | null;
17
16
  constructor(param: ModelInnerInfo);
18
- getBoundingBox(): Box3;
19
17
  eventPropagation(): void;
20
18
  setEnvMap(dirPath: string, fileNames?: string[], options?: {
21
19
  reflectivity?: number;
@@ -1,9 +1,11 @@
1
1
  import { BaseMesh, BaseMeshInfo } from './BaseMesh';
2
2
  import { IColor } from '../Interface';
3
+ import { GradientTextureOptions } from '../Shared';
3
4
  interface PointInfo extends BaseMeshInfo {
4
5
  radius?: number;
5
6
  color?: IColor;
6
7
  opacity?: number;
8
+ gradient?: GradientTextureOptions;
7
9
  }
8
10
  declare type SetOptionsPointInfo = Omit<PointInfo, 'id'>;
9
11
  declare class Point extends BaseMesh {
@@ -1,10 +1,12 @@
1
1
  import { IColor, PlaneIVector2 } from '../Interface';
2
2
  import { BaseMesh, BaseMeshInfo } from './BaseMesh';
3
+ import { GradientTextureOptions } from '../Shared';
3
4
  interface PolygonInfo extends BaseMeshInfo {
4
5
  yHeight: number;
5
6
  points: PlaneIVector2[];
6
7
  color?: IColor;
7
8
  opacity?: number;
9
+ gradient?: GradientTextureOptions;
8
10
  }
9
11
  declare type SetOptionsPolygonInfo = Omit<PolygonInfo, 'id'>;
10
12
  declare class Polygon extends BaseMesh {
@@ -1,4 +1,3 @@
1
- import { Box3 } from 'three';
2
1
  import { BaseObject3D, BaseObject3DInfo } from './BaseObject3D';
3
2
  import { ObjectEvents, ObjectEventsListener } from '../Interface';
4
3
  interface SbmInfo extends BaseObject3DInfo, ObjectEvents<Sbm> {
@@ -12,7 +11,6 @@ declare class Sbm extends BaseObject3D<ObjectEventsListener> implements ObjectEv
12
11
  onDblClick: ((object: Sbm) => void) | null;
13
12
  onRightClick: ((object: Sbm) => void) | null;
14
13
  constructor(param: SbmInfo);
15
- getBoundingBox(): Box3;
16
14
  eventPropagation(): void;
17
15
  setEnvMap(dirPath: string, fileNames?: string[], options?: {
18
16
  reflectivity?: number;
@@ -0,0 +1,68 @@
1
+ import * as THREE from 'three';
2
+ import { Material } from 'three';
3
+ export interface TexturesIndexes {
4
+ name: string;
5
+ base_map: string;
6
+ nor_map: string;
7
+ color: {
8
+ r: number;
9
+ g: number;
10
+ b: number;
11
+ a: number;
12
+ };
13
+ metallic: number;
14
+ roughness: number;
15
+ alphamode: number;
16
+ use_list: string[];
17
+ }
18
+ export interface MaterialsMapValue {
19
+ material: Material;
20
+ materialIndex: number;
21
+ }
22
+ declare class DatLoader extends THREE.Loader {
23
+ loadedTextures: Set<string>;
24
+ loadedMaterialsMap: Map<string, MaterialsMapValue>;
25
+ loadedMaterials: THREE.Material[];
26
+ constructor();
27
+ /**
28
+ *
29
+ * @param buffer
30
+ * @param path
31
+ */
32
+ parseAsync(buffer: ArrayBuffer, path: string): Promise<THREE.Mesh<THREE.BufferGeometry, THREE.Material[]>>;
33
+ private _createMeshByStream;
34
+ /**
35
+ * 创建 material
36
+ * @param path
37
+ * @returns
38
+ */
39
+ private _createMaterial;
40
+ }
41
+ export { DatLoader, };
42
+ export interface SubMesh {
43
+ start: number;
44
+ count: number;
45
+ uuid: string;
46
+ alphaMode: number;
47
+ }
48
+ export interface ChunkInfo {
49
+ position: Float32Array;
50
+ normal: Int8Array;
51
+ color: Uint8Array;
52
+ texcoord: Float32Array;
53
+ indice: Uint32Array;
54
+ sub_mesh: SubMesh[];
55
+ }
56
+ export declare const parseChunk: (arraybuffer: ArrayBuffer) => {
57
+ position: Float32Array;
58
+ normal: Int8Array;
59
+ color: Uint8Array;
60
+ texcoord: Float32Array;
61
+ indice: Uint32Array;
62
+ sub_mesh: {
63
+ start: number;
64
+ count: number;
65
+ uuid: string;
66
+ alphaMode: number;
67
+ }[];
68
+ };
@@ -0,0 +1,59 @@
1
+ import * as THREE from 'three';
2
+ import { Material } from 'three';
3
+ export interface SubMesh {
4
+ start: number;
5
+ count: number;
6
+ uuid: string;
7
+ alphaMode: number;
8
+ }
9
+ export interface ChunkInfo<T = number> {
10
+ position: ArrayLike<T>;
11
+ normal: ArrayLike<T>;
12
+ color: ArrayLike<T>;
13
+ texcoord: ArrayLike<T>;
14
+ indice: ArrayLike<T>;
15
+ sub_mesh: SubMesh[];
16
+ }
17
+ export interface TexturesIndexes {
18
+ name: string;
19
+ base_map: string;
20
+ nor_map: string;
21
+ color: {
22
+ r: number;
23
+ g: number;
24
+ b: number;
25
+ a: number;
26
+ };
27
+ metallic: number;
28
+ roughness: number;
29
+ alphamode: number;
30
+ use_list: string[];
31
+ }
32
+ export interface MaterialsMapValue {
33
+ material: Material;
34
+ materialIndex: number;
35
+ }
36
+ declare class DatLoader extends THREE.Loader {
37
+ loadedTextures: Set<string>;
38
+ loadedMaterialsMap: Map<string, MaterialsMapValue>;
39
+ loadedMaterials: THREE.Material[];
40
+ dracoDecoderPath: string | null;
41
+ workerPool: any;
42
+ workerSourceURL: string;
43
+ constructor();
44
+ /**
45
+ *
46
+ * @param buffer
47
+ * @param path
48
+ */
49
+ parseAsync(buffer: ArrayBuffer, path: string): Promise<THREE.Mesh<THREE.BufferGeometry, THREE.Material[]> | undefined>;
50
+ private _initWorkerCreator;
51
+ private _createMeshByStream;
52
+ /**
53
+ * 创建 material
54
+ * @param path
55
+ * @returns
56
+ */
57
+ private _createMaterial;
58
+ }
59
+ export { DatLoader, };