@xviewer.js/core 1.0.0-beta.2 → 1.0.0

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 (86) hide show
  1. package/dist/main.js +3347 -1016
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +3293 -1011
  4. package/dist/module.js.map +1 -1
  5. package/package.json +2 -6
  6. package/types/Component.d.ts +5 -2
  7. package/types/ComponentManager.d.ts +5 -3
  8. package/types/ComponentScheduler.d.ts +7 -3
  9. package/types/DeviceInput.d.ts +0 -1
  10. package/types/Mount.d.ts +4 -0
  11. package/types/ObjectInstance.d.ts +2 -2
  12. package/types/Plugin.d.ts +3 -9
  13. package/types/PropertyManager.d.ts +14 -4
  14. package/types/SystemInfo.d.ts +1 -0
  15. package/types/Task.d.ts +2 -0
  16. package/types/TextureSettings.d.ts +3 -1
  17. package/types/Utils.d.ts +10 -0
  18. package/types/Viewer.d.ts +44 -37
  19. package/types/asset/ResourceManager.d.ts +9 -23
  20. package/types/asset/aLoader.d.ts +8 -2
  21. package/types/base/EventEmitter.d.ts +10 -10
  22. package/types/base/getClassInstance.d.ts +1 -0
  23. package/types/base/index.d.ts +1 -0
  24. package/types/cinestation/CinestationBlendDefinition.d.ts +4 -4
  25. package/types/cinestation/CinestationBrain.d.ts +0 -2
  26. package/types/cinestation/FreelookVirtualCamera.d.ts +39 -22
  27. package/types/cinestation/VirtualCamera.d.ts +8 -8
  28. package/types/components/Animation.d.ts +26 -0
  29. package/types/components/PerformanceMonitor.d.ts +48 -0
  30. package/types/components/Reflector.d.ts +15 -0
  31. package/types/components/index.d.ts +2 -0
  32. package/types/index.d.ts +13 -3
  33. package/types/{loader → loaders}/aEXRLoader.d.ts +2 -1
  34. package/types/{loader → loaders}/aFBXLoader.d.ts +2 -1
  35. package/types/loaders/aGLTFLoader.d.ts +7 -0
  36. package/types/{loader → loaders}/aHDRLoader.d.ts +2 -1
  37. package/types/{loader → loaders}/aJSONLoader.d.ts +2 -1
  38. package/types/{loader → loaders}/aTextureLoader.d.ts +2 -1
  39. package/types/materials/ReflectorMaterial.d.ts +44 -0
  40. package/types/{material → materials}/getShaderMaterial.d.ts +2 -2
  41. package/types/materials/glsl/index.d.ts +3 -0
  42. package/types/materials/index.d.ts +3 -0
  43. package/types/math/Constant.d.ts +8 -1
  44. package/types/math/Interpolation.d.ts +6 -6
  45. package/types/math/Perlin.d.ts +12 -0
  46. package/types/math/index.d.ts +5 -0
  47. package/types/passes/MipBlurPass.d.ts +27 -0
  48. package/types/passes/cubeuv/MergeBlurPass.d.ts +22 -0
  49. package/types/passes/cubeuv/MergeInfo.d.ts +9 -0
  50. package/types/passes/cubeuv/MergeReflectPass.d.ts +18 -0
  51. package/types/passes/cubeuv/utils.d.ts +16 -0
  52. package/types/passes/mipGaussianBlendWeight.d.ts +1 -0
  53. package/types/plugins/BoxProjection.d.ts +15 -0
  54. package/types/plugins/BoxProjectionPlugin.d.ts +20 -0
  55. package/types/plugins/DebugPlugin.d.ts +10 -0
  56. package/types/plugins/DebugScene.d.ts +8 -0
  57. package/types/plugins/DropFile.d.ts +18 -0
  58. package/types/plugins/DropFilePlugin.d.ts +18 -0
  59. package/types/plugins/Environment.d.ts +37 -0
  60. package/types/plugins/EnvironmentPlugin.d.ts +41 -0
  61. package/types/plugins/PerformanceMonitor.d.ts +48 -0
  62. package/types/plugins/PerformanceMonitorPlugin.d.ts +48 -0
  63. package/types/plugins/index.d.ts +4 -0
  64. package/types/tween/Easing.d.ts +25 -0
  65. package/types/tween/Group.d.ts +16 -0
  66. package/types/tween/Interpolation.d.ts +19 -0
  67. package/types/tween/Now.d.ts +2 -0
  68. package/types/tween/Sequence.d.ts +7 -0
  69. package/types/tween/Tween.d.ts +98 -0
  70. package/types/tween/TweenChain.d.ts +18 -7
  71. package/types/tween/TweenGroup.d.ts +17 -0
  72. package/types/tween/TweenManager.d.ts +3 -5
  73. package/types/tween/Version.d.ts +1 -0
  74. package/types/tween/index.d.ts +4 -1
  75. package/types/tween/mainGroup.d.ts +2 -0
  76. package/types/types.d.ts +8 -0
  77. package/types/loader/aGLTFLoader.d.ts +0 -5
  78. package/types/material/glsl/copy.glsl.d.ts +0 -1
  79. /package/types/{loader → loaders}/index.d.ts +0 -0
  80. /package/types/{material → materials}/glsl/boxfilterblur.glsl.d.ts +0 -0
  81. /package/types/{material → materials}/glsl/fullscreen.glsl.d.ts +0 -0
  82. /package/types/{material → materials}/glsl/panorama.glsl.d.ts +0 -0
  83. /package/types/{primitives → primitive}/Box.d.ts +0 -0
  84. /package/types/{primitives → primitive}/Plane.d.ts +0 -0
  85. /package/types/{primitives → primitive}/Sphere.d.ts +0 -0
  86. /package/types/{primitives → primitive}/index.d.ts +0 -0
package/package.json CHANGED
@@ -1,10 +1,6 @@
1
1
  {
2
2
  "name": "@xviewer.js/core",
3
- "version": "1.0.0-beta.2",
4
- "publishConfig": {
5
- "access": "public",
6
- "registry": "https://registry.npmjs.org"
7
- },
3
+ "version": "1.0.0",
8
4
  "license": "MIT",
9
5
  "type": "module",
10
6
  "sideEffects": false,
@@ -17,7 +13,7 @@
17
13
  "types/**/*"
18
14
  ],
19
15
  "peerDependencies": {
20
- "three": ">= 0.164.0 < 0.165.0"
16
+ "three": ">= 0.164.0"
21
17
  },
22
18
  "scripts": {
23
19
  "b:types": "tsc"
@@ -3,12 +3,11 @@ import { Viewer } from "./Viewer";
3
3
  import { ComponentManager } from "./ComponentManager";
4
4
  import { ObjectInstance } from "./ObjectInstance";
5
5
  export declare class Component<T extends Object3D = Object3D> extends ObjectInstance {
6
- get enabled(): boolean;
7
- set enabled(v: boolean);
8
6
  private _enabled;
9
7
  node: T;
10
8
  viewer: Viewer;
11
9
  manager: ComponentManager;
10
+ isComponent: boolean;
12
11
  type: string;
13
12
  onLoad?(): void;
14
13
  onEnable?(): void;
@@ -17,6 +16,8 @@ export declare class Component<T extends Object3D = Object3D> extends ObjectInst
17
16
  start?(): void;
18
17
  update?(dt: number): void;
19
18
  lastUpdate?(dt: number): void;
19
+ render?(dt: number): void;
20
+ resize?(width: number, height: number): void;
20
21
  flags: {
21
22
  Destroyed?: boolean;
22
23
  OnLoadCalled?: boolean;
@@ -25,6 +26,8 @@ export declare class Component<T extends Object3D = Object3D> extends ObjectInst
25
26
  Deactivating?: boolean;
26
27
  IsStartCalled?: boolean;
27
28
  };
29
+ get enabled(): boolean;
30
+ set enabled(v: boolean);
28
31
  protected _onPreDestroy(): void;
29
32
  schedule(callback: Function, interval: number, repeat?: number): void;
30
33
  unshedule(callback: Function): void;
@@ -3,7 +3,7 @@ import { Scheduler } from "./Scheduler";
3
3
  import { Component } from "./Component";
4
4
  import { ComponentScheduler } from "./ComponentScheduler";
5
5
  import { Viewer } from "./Viewer";
6
- type ComponentConstructor = new () => Component;
6
+ type ComponentConstructor = new (...args: any[]) => Component;
7
7
  interface DependentInfo {
8
8
  mode: DependentMode;
9
9
  components: ComponentConstructor[];
@@ -16,7 +16,7 @@ export declare enum DependentMode {
16
16
  }
17
17
  export declare function dependencies(componentOrComponents: ComponentConstructor | ComponentConstructor[], mode?: DependentMode): <T extends ComponentConstructor>(target: T) => void;
18
18
  export declare class ComponentManager {
19
- static _dependenciesMap: Map<ComponentConstructor, DependentInfo>;
19
+ static _infoMap: Map<ComponentConstructor, DependentInfo>;
20
20
  private _viewer;
21
21
  private _scheduler;
22
22
  private _componentScheduler;
@@ -27,6 +27,8 @@ export declare class ComponentManager {
27
27
  constructor(viewer: Viewer);
28
28
  destroy(): void;
29
29
  update(dt: number): void;
30
+ render(dt: number): void;
31
+ resize(width: number, height: number): void;
30
32
  destroyComponents(node: Object3D): void;
31
33
  activeComponents(node: Object3D): void;
32
34
  addComponent<T extends Component>(node: Object3D | Component, instance: T): T;
@@ -35,7 +37,7 @@ export declare class ComponentManager {
35
37
  }): T;
36
38
  removeComponent(node: Object3D, component: Component): this;
37
39
  getComponent<T extends Component>(node: Object3D, constructor: {
38
- new (): T;
40
+ new (...args: any[]): T;
39
41
  }, autoAdd?: boolean): T;
40
42
  getComponentsInChidren<T extends Component>(node: Object3D, constructor: {
41
43
  new (): T;
@@ -1,19 +1,23 @@
1
1
  import { Component } from "./Component";
2
2
  declare class Invoker<T> {
3
3
  protected _targets: T[];
4
- protected _callback: (target: T, dt: number) => any;
5
- constructor(callback: (target: T, dt: number) => any);
4
+ protected _callback: (target: T, ...args: any[]) => any;
5
+ constructor(callback: (target: T, ...args: any[]) => any);
6
6
  add(target: any): void;
7
7
  remove(target: any): void;
8
- invoke(dt: number): void;
8
+ invoke(...args: any[]): void;
9
9
  }
10
10
  export declare class ComponentScheduler {
11
11
  startInvoker: Invoker<Component>;
12
12
  updateInvoker: Invoker<Component>;
13
13
  lastUpdateInvoker: Invoker<Component>;
14
+ renderInvoker: Invoker<Component>;
15
+ resizeInvoker: Invoker<Component>;
14
16
  start(): void;
15
17
  update(dt: number): void;
16
18
  lastUpdate(dt: number): void;
19
+ render(dt: number): void;
20
+ resize(width: number, height: number): void;
17
21
  enableComponent(comp: Component, enable: boolean): void;
18
22
  }
19
23
  export {};
@@ -16,7 +16,6 @@ export declare class DeviceInput {
16
16
  static readonly KEYDOWN = "keydown";
17
17
  static readonly KEYPRESS = "keypress";
18
18
  static readonly KEYUP = "keyup";
19
- static readonly RESIZE = "resize";
20
19
  private _listeners;
21
20
  private _mouseWheel;
22
21
  private _touches;
@@ -0,0 +1,4 @@
1
+ import { Component } from "./Component";
2
+ export declare class Mount extends Component {
3
+ isMount: boolean;
4
+ }
@@ -1,7 +1,7 @@
1
1
  export declare class ObjectInstance {
2
2
  static _instanceCount: number;
3
- instanceId: number;
4
- uuid: string;
3
+ readonly instanceId: number;
4
+ readonly uuid: string;
5
5
  name: string;
6
6
  type: string;
7
7
  }
package/types/Plugin.d.ts CHANGED
@@ -1,10 +1,4 @@
1
- import { ObjectInstance } from "./ObjectInstance";
2
- import { Viewer } from "./Viewer";
3
- export declare class Plugin extends ObjectInstance {
4
- viewer: Viewer;
5
- type: string;
6
- install?(): void;
7
- uninstall?(): void;
8
- onUpdate?(dt: number): void;
9
- onRender?(dt: number): void;
1
+ import { Component } from "./Component";
2
+ export declare class Plugin extends Component {
3
+ isPlugin: boolean;
10
4
  }
@@ -1,8 +1,18 @@
1
+ declare class ClassProperties {
2
+ clsName: string;
3
+ private _properties;
4
+ constructor(clsName: string);
5
+ property(propertyKey: string, options?: Object): this;
6
+ applyProperties(target: object): object;
7
+ }
1
8
  export declare class PropertyManager {
2
- static _propertiesMap: Map<Object, Object>;
3
- static _getProperties(target: object): Object;
4
- static _hasProperties(target: object): boolean;
5
- static _getMergedProperties(target: Object): any;
9
+ static _classMap: Map<String, ClassProperties>;
10
+ static _propertyMap: Map<Object, Object>;
11
+ static _hasProperties(constructor: Function): boolean;
12
+ static _getProperties(constructor: Function, autoAdd?: boolean): Object;
13
+ static _getMergedProperties(constructor: Function): any;
14
+ static _getClassProperties(clsName: string, autoAdd?: boolean): ClassProperties;
15
+ static _applyClassProperties(clsName: string, constructor: Function): object;
6
16
  }
7
17
  export interface IPropertyOptions {
8
18
  dir?: string;
@@ -1,4 +1,5 @@
1
1
  export declare class SystemInfo {
2
+ static isTablet: boolean;
2
3
  static isMobile: boolean;
3
4
  static isDesktop: boolean;
4
5
  static device: string;
package/types/Task.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export declare class Task {
2
2
  excute: () => void;
3
3
  name: string;
4
+ static _instanceCount: number;
4
5
  constructor(excute: () => void, name?: string);
6
+ instanceId: number;
5
7
  }
@@ -1,4 +1,4 @@
1
- import { Mapping, PixelFormat, TextureDataType, TextureFilter, Vector2, Wrapping } from "three";
1
+ import { ColorSpace, Mapping, PixelFormat, TextureDataType, TextureFilter, Vector2, Wrapping } from "three";
2
2
  export interface TextureSettings {
3
3
  flipY?: boolean;
4
4
  mapping?: Mapping;
@@ -10,4 +10,6 @@ export interface TextureSettings {
10
10
  dataType?: TextureDataType;
11
11
  anisotropy?: number;
12
12
  repeat?: Vector2;
13
+ colorSpace?: ColorSpace;
14
+ channel?: number;
13
15
  }
package/types/Utils.d.ts CHANGED
@@ -1,6 +1,16 @@
1
+ import { Object3D } from "three";
1
2
  import { __C, __P } from "./types";
2
3
  export declare function applyProps<T, K extends __C<T>>(target: T & {
3
4
  copy?: Function;
4
5
  }, props: __P<T, K>): T & {
5
6
  copy?: Function;
6
7
  };
8
+ export declare function find<T extends Object3D>(node: T, path: string): T;
9
+ export declare function getChidren<T extends Object3D>(node: T, filter: (value: T) => any, group?: boolean): any;
10
+ export declare function getChildByName<T extends Object3D>(node: T, name: string): T;
11
+ export declare function queryValues<T extends Object & {
12
+ name: string;
13
+ }>(object: any): T[];
14
+ export declare function queryValues<T extends Object & {
15
+ name: string;
16
+ }>(object: any, name: string): T;
package/types/Viewer.d.ts CHANGED
@@ -1,24 +1,28 @@
1
- import { BufferGeometry, Camera, ColorSpace, DataTexture, DirectionalLightShadow, Euler, Material, Mesh, Object3D, OrthographicCamera, PerspectiveCamera, Scene, ShaderMaterial, ShadowMapType, Texture, TextureDataType, ToneMapping, Vector3, WebGLCubeRenderTarget, WebGLRenderer, WebGLRendererParameters, WebGLRenderTarget } from "three";
1
+ import { BufferGeometry, Camera, ColorSpace, DataTexture, DirectionalLightShadow, Euler, LoadingManager, Material, Mesh, Object3D, OrthographicCamera, PerspectiveCamera, Scene, ShadowMapType, Texture, TextureDataType, ToneMapping, Vector3, WebGLCubeRenderTarget, WebGLRenderer, WebGLRendererParameters, WebGLRenderTarget } from "three";
2
2
  import { EventEmitter } from "./base";
3
- import { ComponentManager } from "./ComponentManager";
4
- import { AssetProperties, LoaderConstructor } from "./asset/ResourceManager";
3
+ import { TaskManager } from "./TaskManager";
4
+ import { DeviceInput } from "./DeviceInput";
5
+ import { Orientation } from "./enums/Orientation";
6
+ import { AssetProperties, LoaderConstructor, ResourceManager } from "./asset/ResourceManager";
5
7
  import { __C, __P } from "./types";
6
8
  import { Component } from "./Component";
7
- import { TextureSettings } from "./TextureSettings";
8
- import { Plugin } from "./Plugin";
9
+ import { TweenManager } from "./tween";
10
+ import { Task } from "./Task";
11
+ import { Mount } from "./Mount";
9
12
  export declare class Viewer extends EventEmitter {
10
13
  static __target: Vector3;
11
14
  static __worldPos: Vector3;
12
- static _getClassInstance(constructor: any, args?: any[]): any;
13
15
  static _shadowCameraKeys: string[];
14
16
  static _setDirectLightShadow(shadow: DirectionalLightShadow, props: number[]): DirectionalLightShadow;
15
17
  static CompileMaterial(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Material | Material[]): void;
16
18
  static CompileObject3D(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Object3D): void;
17
19
  static CompileTexture(renderer: WebGLRenderer, target: Texture | Texture[]): void;
18
- static Blit(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget, material: ShaderMaterial, lod?: number, face?: number): void;
19
- static GetFullscreenTriangle(): BufferGeometry<import("three").NormalBufferAttributes>;
20
+ static Blit(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget | null, material: Material, lod?: number, face?: number): void;
21
+ static CreateFullscreenTriangle(): BufferGeometry<import("three").NormalBufferAttributes>;
20
22
  static fullscreenMesh: Mesh;
21
23
  static fullscreenCamera: OrthographicCamera;
24
+ static instanceCount: number;
25
+ private _instanceId;
22
26
  private _root;
23
27
  private _canvas;
24
28
  private _gl;
@@ -26,6 +30,7 @@ export declare class Viewer extends EventEmitter {
26
30
  private _DATA_FLOAT_TYPE;
27
31
  private _scene;
28
32
  private _camera;
33
+ private _mount;
29
34
  private _renderer;
30
35
  private _input;
31
36
  private _dpr;
@@ -33,17 +38,20 @@ export declare class Viewer extends EventEmitter {
33
38
  private _height;
34
39
  private _viewport;
35
40
  private _orientation;
41
+ private _defaultProps;
36
42
  private _running;
37
43
  private _rootRotated;
38
44
  private _time;
39
45
  private _lastTime;
46
+ private _lastFrameTime;
40
47
  private _targetFrameRate;
48
+ private _fixedFrameTime;
41
49
  private _autoResize;
42
50
  private _taskManager;
43
51
  private _resourceManager;
44
52
  private _componentManager;
45
- private _pluginManager;
46
- private _tweenManager;
53
+ private _loadingManager;
54
+ private _tweens;
47
55
  get root(): HTMLElement;
48
56
  get time(): number;
49
57
  get scene(): Scene;
@@ -62,10 +70,18 @@ export declare class Viewer extends EventEmitter {
62
70
  factor: number;
63
71
  };
64
72
  get rootRotated(): boolean;
65
- constructor({ root, canvas, autoStart, autoResize, shadows, camera, targetFrameRate, colorSpace, toneMapping, toneMappingExposure, maxDPR, path, resourcePath, dracoPath, loader, tasker, ...webglOpts }?: {
73
+ get input(): DeviceInput;
74
+ get targetFrameRate(): number;
75
+ set targetFrameRate(v: number);
76
+ get instanceId(): number;
77
+ get loadingManager(): LoadingManager;
78
+ get resourceManager(): ResourceManager;
79
+ get taskManager(): TaskManager;
80
+ constructor({ root, canvas, autoStart, autoResize, shadows, camera, targetFrameRate, fixedFrameTime, colorSpace, toneMapping, toneMappingExposure, maxDPR, path, resourcePath, dracoPath, orientation, loader, tasker, ...webglOpts }?: {
66
81
  root?: HTMLElement;
67
82
  canvas?: HTMLCanvasElement;
68
83
  targetFrameRate?: number;
84
+ fixedFrameTime?: boolean;
69
85
  autoStart?: boolean;
70
86
  autoResize?: boolean;
71
87
  shadows?: boolean | ShadowMapType;
@@ -76,6 +92,7 @@ export declare class Viewer extends EventEmitter {
76
92
  path?: string;
77
93
  resourcePath?: string;
78
94
  dracoPath?: string;
95
+ orientation?: Orientation;
79
96
  camera?: {
80
97
  fov?: number;
81
98
  aspect?: number;
@@ -101,43 +118,33 @@ export declare class Viewer extends EventEmitter {
101
118
  loop(dt: number): void;
102
119
  update(dt: number): void;
103
120
  render(dt: number): void;
104
- _onRender(dt: number): void;
105
- _onResize(width: number, height: number): void;
121
+ _rendering(dt: number): void;
122
+ _resizing(width: number, height: number): void;
106
123
  start(): this;
107
124
  stop(): this;
108
125
  resize(width?: number, height?: number): void;
109
- loadAsset(props: AssetProperties & TextureSettings): Promise<any>;
126
+ loadAsset(props: AssetProperties): Promise<any>;
127
+ getLoader(ext: string): import(".").aLoader;
110
128
  addLoader(Loader: LoaderConstructor): void;
111
- load({ url, ext, onProgress, castShadow, receiveShadow, ...props }: AssetProperties & __P<Object3D, typeof Object3D>): Promise<any>;
112
- tween(target: Object): import("./tween").Tween<Object>;
113
- timeline(target: Object): import("./tween").TweenChain;
114
- killTweensOf(target: Object): void;
115
129
  traverseMaterials(callback: (mat: Material) => void): void;
116
- traversePlugins(callback: (plugin: Plugin) => void): void;
117
- getPlugin<T extends Plugin>(plugin: new (...args: any[]) => T, autoAdd?: boolean): T;
118
- addPlugin<T extends Plugin, K extends __C<T>>(plugin: T | K & __C<T>, props?: __P<T, K>): T;
119
- removePlugin<T extends Plugin, K extends __C<T>>(plugin: T | K & __C<T>): void;
120
- getComponent<T extends Component>(node: Object3D, constructor: {
121
- new (): T;
122
- }, autoAdd?: boolean): T;
123
130
  traverseComponents(callback: (comp: Component) => void): void;
124
- addComponent<T extends Component>(node: Object3D | Component, instance: T): T;
125
- addComponent<T extends Component>(node: Object3D | Component, constructor: {
126
- new (): T;
127
- }): T;
128
- removeComponent(node: Object3D, component: Component): ComponentManager;
129
- addNode<T, K extends __C<T>>(object: T | K & __C<T>, props?: __P<T, K>): T;
130
- removeNode(node: Object3D): void;
131
- activeNode(node: Object3D, active: boolean): Object3D<import("three").Object3DEventMap>;
132
- createRenderTarget(width: number, height: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean): WebGLRenderTarget<Texture>;
133
- createCubeRenderTarget(size: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean): WebGLCubeRenderTarget;
134
- createDataTexture(data: BufferSource, width: number, height: number, floatType?: boolean, nearest?: boolean): DataTexture;
131
+ mount<T extends Mount>(constructor: {
132
+ new (...args: any[]): T;
133
+ }, autoAdd?: boolean): T;
134
+ tween(): TweenManager;
135
+ task(task: Task): void;
136
+ add<T extends Object3D | Component, K extends __C<T>>(object: T | K & __C<T>, props?: __P<T, K>): T;
137
+ remove<T extends Object3D | Component>(ins: T): T;
138
+ createRenderTarget(width: number, height: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLRenderTarget<Texture>;
139
+ createCubeRenderTarget(size: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLCubeRenderTarget;
140
+ createDataTexture(data: ArrayBufferView, width: number, height: number, floatType?: boolean, nearest?: boolean): DataTexture;
135
141
  /**
136
142
  * 传送门,得到一个全新的场景
137
143
  * @param callback 禁止使用异步函数,会导致状态错误
138
144
  * @returns
139
145
  */
140
- portal<T = any>(callback: () => T): T;
146
+ portal<T = any>(callback: () => T, sceneNew?: Scene): T;
147
+ blit(renderTarget: WebGLRenderTarget, material: Material, lod?: number, face?: number): void;
141
148
  compile(target?: Object3D | Scene | Material | Texture): void;
142
149
  compile(target?: Material[]): void;
143
150
  }
@@ -1,12 +1,14 @@
1
1
  import { LoadingManager } from "three";
2
2
  import { TextureSettings } from "../TextureSettings";
3
3
  import { aLoader } from "./aLoader";
4
- export interface AssetProperties {
4
+ export interface AssetProperties extends TextureSettings {
5
+ url?: string;
5
6
  ext?: string;
6
- url?: string | File | {
7
- mainFile: File;
8
- additionalFiles: File[];
9
- };
7
+ buffer?: string | ArrayBuffer;
8
+ path?: string;
9
+ resourcePath?: string;
10
+ dracoPath?: string;
11
+ manager?: LoadingManager;
10
12
  onProgress?: (event: ProgressEvent) => void;
11
13
  }
12
14
  export type LoaderConstructor = new (manager: ResourceManager) => aLoader;
@@ -14,29 +16,13 @@ export declare class ResourceManager {
14
16
  static extension(path: string): string;
15
17
  static dirname(path: string): string;
16
18
  static basename(path: string, ext?: string): string;
17
- static _parseURL(uri: any): {
18
- url: string;
19
- file: any;
20
- ext: string;
21
- };
22
- static _getTextureKey(url: string, settings: TextureSettings): string;
23
19
  static _texSettingKeys: string[];
24
20
  static _splitTextureSettings(props: TextureSettings & {
25
21
  [k: string]: any;
26
22
  }): {};
27
- path: string;
28
- resourcePath: string;
29
- dracoPath: string;
30
- loadingManager: LoadingManager;
31
- private _caches;
32
23
  private _loaders;
33
- constructor(props: {
34
- path: string;
35
- resourcePath: string;
36
- dracoPath: string;
37
- loadingManager: LoadingManager;
38
- });
39
24
  destroy(): void;
25
+ getLoader(ext: string): aLoader;
40
26
  addLoader(Loader: LoaderConstructor): void;
41
- loadAsset<T = any>({ url, ext, onProgress, ...props }: AssetProperties & TextureSettings): Promise<T>;
27
+ loadAsset<T = any>({ url, buffer, ext, path, resourcePath, dracoPath, manager, onProgress, ...props }: AssetProperties): Promise<T>;
42
28
  }
@@ -1,16 +1,22 @@
1
- import { Object3D } from "three";
1
+ import { LoadingManager, Object3D } from "three";
2
2
  import { ResourceManager } from "./ResourceManager";
3
3
  import { TextureSettings } from "../TextureSettings";
4
4
  export interface LoadProperties {
5
5
  url: string;
6
+ buffer?: string | ArrayBuffer;
6
7
  texSettings?: TextureSettings;
8
+ path?: string;
9
+ resourcePath?: string;
10
+ dracoPath?: string;
11
+ manager?: LoadingManager;
7
12
  onLoad: (asset: any) => void;
8
13
  onProgress?: (event: ProgressEvent) => void;
9
14
  onError?: (event: ErrorEvent) => void;
10
15
  }
11
16
  export declare abstract class aLoader {
12
17
  manager: ResourceManager;
13
- static _setMeshData(node: Object3D): Object3D<import("three").Object3DEventMap>;
18
+ static _texKeys: string[];
19
+ static _setUserData(node: Object3D): Object3D<import("three").Object3DEventMap>;
14
20
  constructor(manager: ResourceManager);
15
21
  abstract extension: string[];
16
22
  abstract load(props: LoadProperties): void;
@@ -4,26 +4,26 @@ interface EventHandler {
4
4
  target?: Object;
5
5
  once?: boolean;
6
6
  }
7
- interface Listener {
8
- name: string;
7
+ interface Listener<T> {
8
+ name: T;
9
9
  callback: (...args: any[]) => any;
10
10
  }
11
- export declare class EventEmitter {
11
+ export declare class EventEmitter<T extends string = string> {
12
12
  protected _events: {
13
13
  [k: string]: EventHandler[];
14
14
  };
15
15
  protected _removeEvent(list: EventHandler[], index: number, name: string): this;
16
16
  clear(): this;
17
- has(name: string): boolean;
18
- on(name: string, callback: (...args: any[]) => any, target?: Object, once?: boolean): this;
19
- off(name: string, callback: (...args: any[]) => any, target?: Object): this;
20
- onof(name: string, callback: (...args: any[]) => any, container: Object & {
21
- _listeners?: Listener[];
17
+ has(name: T): boolean;
18
+ on(name: T, callback: (...args: any[]) => any, target?: Object, once?: boolean): this;
19
+ off(name: T, callback: (...args: any[]) => any, target?: Object): this;
20
+ onof(name: T, callback: (...args: any[]) => any, container: Object & {
21
+ _listeners?: Listener<T>[];
22
22
  }): this;
23
23
  offof(container: Object & {
24
- _listeners?: Listener[];
24
+ _listeners?: Listener<T>[];
25
25
  }): this;
26
26
  targetOff(target: Object): this;
27
- emit(name: string, ...args: any[]): this;
27
+ emit(name: T, ...args: any[]): this;
28
28
  }
29
29
  export {};
@@ -0,0 +1 @@
1
+ export declare function getClassInstance(constructor: any, args?: any[]): any;
@@ -1,3 +1,4 @@
1
1
  export { EventEmitter } from "./EventEmitter";
2
2
  export { Logger } from "./Logger";
3
3
  export { mixin } from "./mixin";
4
+ export { getClassInstance } from "./getClassInstance";
@@ -1,8 +1,8 @@
1
1
  export declare const CinestationBlendStyle: {
2
- Linear: (amount: number) => number;
3
- QuadraticIn: (amount: number) => number;
4
- QuadraticOut: (amount: number) => number;
5
- QuadraticInOut: (amount: number) => number;
2
+ Linear: import("../tween").EasingFunction;
3
+ QuadraticIn: import("../tween").EasingFunction;
4
+ QuadraticOut: import("../tween").EasingFunction;
5
+ QuadraticInOut: import("../tween").EasingFunction;
6
6
  };
7
7
  export type CinestationBlendStyle = typeof CinestationBlendStyle[keyof typeof CinestationBlendStyle];
8
8
  export declare class CinestationBlendDefinition {
@@ -7,9 +7,7 @@ export declare class CinestationBrain extends Component<PerspectiveCamera> {
7
7
  private _vcamSolo;
8
8
  private _vcams;
9
9
  private _lerpTime;
10
- private _isChanged;
11
10
  brainBlend: CinestationBlendDefinition;
12
- onChanged: (v: boolean) => void;
13
11
  get vcam(): VirtualCamera;
14
12
  get vcams(): VirtualCamera[];
15
13
  lastUpdate(dt: number): void;
@@ -1,55 +1,59 @@
1
- import { Object3D, Quaternion, Spherical, Vector2, Vector3 } from "three";
1
+ import { Quaternion, Vector2, Vector3 } from "three";
2
2
  import { VirtualCamera } from "./VirtualCamera";
3
- export declare const VCamFreeLookMode: {
4
- FREE: number;
5
- TRANSLATE: number;
6
- };
7
- export type VCamFreeLookMode = typeof VCamFreeLookMode[keyof typeof VCamFreeLookMode];
8
3
  export declare class FreelookVirtualCamera extends VirtualCamera {
9
4
  static __loc0: Vector2;
10
5
  static __loc1: Vector2;
11
6
  static __center: Vector2;
12
7
  static __preCenter: Vector2;
13
- static __moveDelta: Vector2;
14
- static __worldPos: Vector3;
8
+ static __panDelta: Vector2;
9
+ static __panTarget: Vector2;
10
+ static __rotateDelta: Vector2;
15
11
  static __posDelta: Vector3;
16
- static __posOffset: Vector3;
17
12
  static __xAxis: Vector3;
18
13
  static __yAxis: Vector3;
19
14
  static __quat: Quaternion;
20
- static __spherical: Spherical;
21
15
  private _button;
22
16
  private _touchID;
23
- private _distanceDelta;
24
17
  private _preLoc0;
25
18
  private _preLoc1;
26
- private _rotateDelta;
27
- private _panDelta;
28
- mode: VCamFreeLookMode;
19
+ private _spherical;
20
+ private _lookAt;
21
+ private _tempSmoothing;
22
+ private _tempRotateSmoothing;
23
+ private _targetTheta;
24
+ private _targetPhi;
25
+ private _targetSpringLength;
26
+ private _targetFov;
27
+ private _targetLookAt;
29
28
  forbidX: boolean;
30
29
  forbidY: boolean;
31
30
  forbidZ: boolean;
32
31
  forbidPanX: boolean;
33
32
  forbidPanY: boolean;
34
33
  forbitPanOffsetY: boolean;
34
+ panSpeed: number;
35
35
  rotateSpeed: number;
36
+ smoothing: number;
36
37
  rotateSmoothing: number;
37
- panSpeed: number;
38
- panSmoothing: number;
39
- panScale: Vector3;
40
38
  phiMin: number;
41
39
  phiMax: number;
42
40
  thetaMin: number;
43
41
  thetaMax: number;
44
42
  distanceMin: number;
45
43
  distanceMax: number;
46
- rotateTouchID: number;
47
- lookAt: Object3D<import("three").Object3DEventMap>;
44
+ get lookAt(): Vector3;
45
+ set lookAt(v: Vector3);
46
+ get springLength(): number;
47
+ set springLength(v: number);
48
+ get theta(): number;
49
+ set theta(v: number);
50
+ get phi(): number;
51
+ set phi(v: number);
52
+ get fov(): number;
53
+ set fov(v: number);
48
54
  onEnable(): void;
49
55
  onDisable(): void;
50
56
  reset(): void;
51
- private _tweenPOI;
52
- gotoPOI(position: Vector3, lookAt: Vector3, duration?: number, easing?: (amount: number) => number): void;
53
57
  private _onPointerDown;
54
58
  private _onPointerUp;
55
59
  private _onPointerMove;
@@ -57,7 +61,20 @@ export declare class FreelookVirtualCamera extends VirtualCamera {
57
61
  private _onTouchStart;
58
62
  private _onTouchMove;
59
63
  private _calculateDistanceScale;
60
- private _calculateRotateDelta;
64
+ private _calculateRotatelDelta;
61
65
  private _calculatePanDelta;
66
+ private _setTargetLookAt;
67
+ private _setTargetRotation;
68
+ private _setTargetSpringLength;
69
+ goto({ springLength, theta, phi, lookAt, fov, smoothing, rotateSmoothing, }: {
70
+ duration?: number;
71
+ springLength?: number;
72
+ theta?: number;
73
+ phi?: number;
74
+ lookAt?: Vector3;
75
+ fov?: number;
76
+ smoothing?: number;
77
+ rotateSmoothing?: number;
78
+ }): void;
62
79
  update(dt: number): void;
63
80
  }