soonspacejs 2.14.30 → 2.14.32

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.14.30",
3
+ "version": "2.14.32",
4
4
  "homepage": "https://www.xwbuilders.com/soonspacejs/",
5
5
  "description": "soonspacejs 2.x",
6
6
  "module": "./dist/index.esm.js",
@@ -1,5 +1,5 @@
1
- import { Mesh, Intersection } from 'three';
2
- import { Poi, Model } from '../Library';
1
+ import { Mesh, Object3D, Intersection } from 'three';
2
+ import { BaseObject3D, Poi, Model } from '../Library';
3
3
  import { Position, SceneEventType } from './base';
4
4
  interface ScenePoiIntersect {
5
5
  poi: Poi;
@@ -9,6 +9,13 @@ interface SceneModelIntersect {
9
9
  model: Model;
10
10
  sourceData: Intersection;
11
11
  }
12
+ /**
13
+ * 通用对象交叉信息
14
+ */
15
+ interface SceneObjectIntersect {
16
+ target: BaseObject3D;
17
+ sourceData: Intersection;
18
+ }
12
19
  interface ModelEventParams {
13
20
  target: Model;
14
21
  currentTarget: Mesh;
@@ -19,6 +26,15 @@ interface PoiEventParams {
19
26
  target: Poi;
20
27
  event: MouseEvent | TouchEvent;
21
28
  }
29
+ /**
30
+ * 通用对象事件参数
31
+ */
32
+ interface ObjectEventParams {
33
+ target: BaseObject3D;
34
+ currentTarget: Object3D;
35
+ intersects: SceneObjectIntersect[];
36
+ event: MouseEvent | TouchEvent;
37
+ }
22
38
  interface SceneClickParam {
23
39
  type: SceneEventType;
24
40
  event: MouseEvent | TouchEvent;
@@ -36,5 +52,6 @@ interface SceneGlobalEvents {
36
52
  poiDblClick?: (poi: PoiEventParams) => void;
37
53
  selectPosition?: (position: Position) => void;
38
54
  sceneClick?: (param: SceneClickParam) => void;
55
+ [key: string]: ((...args: any[]) => void) | undefined;
39
56
  }
40
- export { ScenePoiIntersect, SceneModelIntersect, ModelEventParams, SceneClickParam, SceneGlobalEvents, };
57
+ export { ScenePoiIntersect, SceneModelIntersect, SceneObjectIntersect, ModelEventParams, PoiEventParams, ObjectEventParams, SceneClickParam, SceneGlobalEvents, };
@@ -10,6 +10,7 @@ interface LinkInfo extends BaseObjectInfo {
10
10
  transparent?: boolean;
11
11
  imgUrl?: string;
12
12
  }
13
+ declare function clearTextureCache(): void;
13
14
  declare class Link extends BaseMesh {
14
15
  readonly params?: LinkInfo | undefined;
15
16
  passable: number;
@@ -19,4 +20,4 @@ declare class Link extends BaseMesh {
19
20
  computeTextureRepeat(texture: Texture<HTMLImageElement>): void;
20
21
  createTexture(imgUrl?: string): Texture<HTMLImageElement> | undefined;
21
22
  }
22
- export { Link, LinkInfo, };
23
+ export { Link, LinkInfo, clearTextureCache as clearLinkTextureCache, };
@@ -21,5 +21,6 @@ declare class SbmObjectLoader {
21
21
  * @returns
22
22
  */
23
23
  parseObject(sbmObject: SbmCache, sbmInfo: ModelInfo): Model;
24
+ clearCache(): void;
24
25
  }
25
26
  export { SbmObjectLoader, };
@@ -9,6 +9,7 @@ declare class PoiManage extends DefaultManage {
9
9
  readonly cache: ObjectsCache;
10
10
  textures: Map<string, Texture>;
11
11
  constructor(viewport: Viewport, cache: ObjectsCache);
12
+ dispose(): void;
12
13
  _createIcon(info: PoiInfo): Mesh<import('three').BufferGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>, import('three').Material | import('three').Material[], import('three').Object3DEventMap> | Icon;
13
14
  _createIconMaterial({ url, type, }: PoiInfo): MeshBasicMaterial | SpriteMaterial | undefined;
14
15
  _createText(info: PoiInfo): Mesh<import('three').BufferGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>, import('three').Material | import('three').Material[], import('three').Object3DEventMap> | Icon;
@@ -1,9 +1,6 @@
1
1
  import { Object3D } from 'three';
2
2
  import { default as Viewport } from '.';
3
3
  import { SceneEventType } from '../Interface';
4
- /**
5
- * @todo 事件部分待重构。目前实现不来灵活,且部分对象不支持事件。
6
- */
7
4
  declare class EventHandler {
8
5
  readonly viewport: Viewport;
9
6
  private dblClickMaxInterval;
@@ -20,8 +17,7 @@ declare class EventHandler {
20
17
  private timer;
21
18
  private touchStartEvent;
22
19
  private touchstartTimes;
23
- private selectModel;
24
- private selectPoi;
20
+ private hoverSelectMap;
25
21
  constructor(viewport: Viewport);
26
22
  _getPoiAndModel(): Object3D<import('three').Object3DEventMap>[];
27
23
  /**
@@ -1,4 +1,4 @@
1
- import { Mesh, Clock, Scene, PerspectiveCamera, WebGLRenderer, PMREMGenerator, Vector3, AnimationMixer, Raycaster, Intersection, AnimationClip, Texture, Material, OrthographicCamera } from 'three';
1
+ import { Mesh, Timer, Scene, PerspectiveCamera, WebGLRenderer, PMREMGenerator, Vector3, AnimationMixer, Raycaster, Intersection, AnimationClip, Texture, Material, OrthographicCamera } from 'three';
2
2
  import { EffectComposer } from 'postprocessing';
3
3
  import { default as Stats } from 'three/examples/jsm/libs/stats.module.js';
4
4
  import { Sky } from 'three/examples/jsm/objects/Sky.js';
@@ -23,7 +23,7 @@ declare class Viewport {
23
23
  readonly options: ViewportOptions;
24
24
  readonly signals: SignalsState;
25
25
  readonly cache: ObjectsCache;
26
- clock: Clock;
26
+ clock: Timer;
27
27
  raycaster: Raycaster;
28
28
  scene: Scene;
29
29
  sky: Sky | null;