@xviewer.js/core 1.0.0-alpha.5 → 1.0.0-alpha.50

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 (66) hide show
  1. package/dist/main.js +3952 -12926
  2. package/dist/main.js.map +1 -1
  3. package/dist/module.js +3900 -12916
  4. package/dist/module.js.map +1 -1
  5. package/package.json +19 -21
  6. package/types/PropertyManager.d.ts +14 -4
  7. package/types/TextureSettings.d.ts +3 -1
  8. package/types/Viewer.d.ts +37 -15
  9. package/types/asset/ResourceManager.d.ts +3 -3
  10. package/types/asset/aLoader.d.ts +5 -3
  11. package/types/base/getClassInstance.d.ts +1 -0
  12. package/types/base/index.d.ts +1 -0
  13. package/types/cinestation/CinestationBlendDefinition.d.ts +4 -4
  14. package/types/cinestation/CinestationBrain.d.ts +0 -2
  15. package/types/cinestation/FreelookVirtualCamera.d.ts +40 -21
  16. package/types/cinestation/VirtualCamera.d.ts +8 -8
  17. package/types/components/PerformanceMonitor.d.ts +48 -0
  18. package/types/components/Reflector.d.ts +15 -0
  19. package/types/components/index.d.ts +1 -0
  20. package/types/index.d.ts +9 -2
  21. package/types/loaders/aEXRLoader.d.ts +5 -0
  22. package/types/{loader → loaders}/aFBXLoader.d.ts +1 -0
  23. package/types/{loader → loaders}/aGLTFLoader.d.ts +1 -0
  24. package/types/{loader → loaders}/aHDRLoader.d.ts +1 -0
  25. package/types/loaders/aJSONLoader.d.ts +5 -0
  26. package/types/{loader → loaders}/aTextureLoader.d.ts +1 -0
  27. package/types/{loader → loaders}/index.d.ts +3 -5
  28. package/types/materials/ReflectorMaterial.d.ts +28 -0
  29. package/types/{material → materials}/getShaderMaterial.d.ts +2 -2
  30. package/types/materials/glsl/index.d.ts +3 -0
  31. package/types/materials/index.d.ts +3 -0
  32. package/types/math/Constant.d.ts +8 -1
  33. package/types/math/Interpolation.d.ts +6 -6
  34. package/types/math/Perlin.d.ts +12 -0
  35. package/types/math/index.d.ts +5 -0
  36. package/types/passes/MipBlurPass.d.ts +27 -0
  37. package/types/passes/cubeuv/MergeBlurPass.d.ts +21 -0
  38. package/types/passes/cubeuv/MergeInfo.d.ts +9 -0
  39. package/types/passes/cubeuv/MergeReflectPass.d.ts +18 -0
  40. package/types/passes/cubeuv/utils.d.ts +16 -0
  41. package/types/passes/mipGaussianBlendWeight.d.ts +1 -0
  42. package/types/plugins/BoxProjectionPlugin.d.ts +20 -0
  43. package/types/plugins/DebugPlugin.d.ts +10 -0
  44. package/types/plugins/EnvironmentPlugin.d.ts +40 -0
  45. package/types/plugins/PerformanceMonitorPlugin.d.ts +48 -0
  46. package/types/plugins/index.d.ts +4 -0
  47. package/types/tween/Easing.d.ts +25 -0
  48. package/types/tween/Group.d.ts +16 -0
  49. package/types/tween/Interpolation.d.ts +19 -0
  50. package/types/tween/Now.d.ts +2 -0
  51. package/types/tween/Sequence.d.ts +7 -0
  52. package/types/tween/Tween.d.ts +96 -0
  53. package/types/tween/TweenChain.d.ts +15 -5
  54. package/types/tween/TweenManager.d.ts +0 -2
  55. package/types/tween/Version.d.ts +1 -0
  56. package/types/tween/index.d.ts +3 -1
  57. package/types/tween/mainGroup.d.ts +2 -0
  58. package/types/types.d.ts +4 -0
  59. package/types/material/glsl/copy.glsl.d.ts +0 -1
  60. /package/types/{material → materials}/glsl/boxfilterblur.glsl.d.ts +0 -0
  61. /package/types/{material → materials}/glsl/fullscreen.glsl.d.ts +0 -0
  62. /package/types/{material → materials}/glsl/panorama.glsl.d.ts +0 -0
  63. /package/types/{primitives → primitive}/Box.d.ts +0 -0
  64. /package/types/{primitives → primitive}/Plane.d.ts +0 -0
  65. /package/types/{primitives → primitive}/Sphere.d.ts +0 -0
  66. /package/types/{primitives → primitive}/index.d.ts +0 -0
package/package.json CHANGED
@@ -1,23 +1,21 @@
1
1
  {
2
- "name": "@xviewer.js/core",
3
- "version": "1.0.0-alpha.5",
4
- "publishConfig": {
5
- "access": "public",
6
- "registry": "https://registry.npmjs.org"
7
- },
8
- "license": "MIT",
9
- "main": "dist/main.js",
10
- "module": "dist/module.js",
11
- "types": "types/index.d.ts",
12
- "debug": "src/index.ts",
13
- "scripts": {
14
- "b:types": "tsc"
15
- },
16
- "files": [
17
- "dist/**/*",
18
- "types/**/*"
19
- ],
20
- "peerDependencies": {
21
- "three": ">= 0.164.0 < 0.165.0"
22
- }
2
+ "name": "@xviewer.js/core",
3
+ "version": "1.0.0-alpha.50",
4
+ "license": "MIT",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "main": "dist/main.js",
8
+ "module": "dist/module.js",
9
+ "types": "types/index.d.ts",
10
+ "debug": "src/index.ts",
11
+ "files": [
12
+ "dist/**/*",
13
+ "types/**/*"
14
+ ],
15
+ "peerDependencies": {
16
+ "three": ">= 0.164.0 < 0.165.0"
17
+ },
18
+ "scripts": {
19
+ "b:types": "tsc"
20
+ }
23
21
  }
@@ -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,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/Viewer.d.ts CHANGED
@@ -1,22 +1,36 @@
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, Material, Mesh, Object3D, OrthographicCamera, PerspectiveCamera, Scene, ShadowMapType, Texture, TextureDataType, ToneMapping, Vector3, WebGLCubeRenderTarget, WebGLRenderer, WebGLRendererParameters, WebGLRenderTarget } from "three";
2
2
  import { EventEmitter } from "./base";
3
3
  import { ComponentManager } from "./ComponentManager";
4
- import { AssetProperties } from "./asset/ResourceManager";
5
- import { __C, __Comp, __P } from "./types";
4
+ import { DeviceInput } from "./DeviceInput";
5
+ import { Orientation } from "./enums/Orientation";
6
+ import { AssetProperties, LoaderConstructor } from "./asset/ResourceManager";
7
+ import { __C, __P } from "./types";
6
8
  import { Component } from "./Component";
7
9
  import { TextureSettings } from "./TextureSettings";
8
10
  import { Plugin } from "./Plugin";
9
11
  export declare class Viewer extends EventEmitter {
10
12
  static __target: Vector3;
11
13
  static __worldPos: Vector3;
12
- static _getClassInstance(constructor: any, args?: any[]): any;
13
14
  static _shadowCameraKeys: string[];
14
15
  static _setDirectLightShadow(shadow: DirectionalLightShadow, props: number[]): DirectionalLightShadow;
15
- static CompileMaterial(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Material | Material[]): void;
16
- static CompileObject3D(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Object3D): void;
17
- 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>;
16
+ static compileMaterial(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Material | Material[]): void;
17
+ static compileObject3D(renderer: WebGLRenderer, scene: Scene, camera: Camera, target: Object3D): void;
18
+ static compileTexture(renderer: WebGLRenderer, target: Texture | Texture[]): void;
19
+ static Blit(renderer: WebGLRenderer, renderTarget: WebGLRenderTarget, material: Material, lod?: number, face?: number): void;
20
+ static createFullscreenTriangle(): BufferGeometry<import("three").NormalBufferAttributes>;
21
+ static findChild<T extends Object3D>(node: T, path: string): T;
22
+ static getChildByName<T extends Object3D>(node: T, name: string): T;
23
+ static getObject<T extends Object3D>(node: T, filter: (value: T) => any, group?: boolean): any;
24
+ static __emtpyObject: {};
25
+ static _getObjectValue<T extends Object & {
26
+ name: string;
27
+ }>(object: any, name?: string, group?: boolean): T | T[];
28
+ static getMaterial<T extends Material>(node: Object3D): T[];
29
+ static getMaterial<T extends Material>(node: Object3D, name: string): T;
30
+ static getTexture<T extends Texture>(node: Object3D): T[];
31
+ static getTexture<T extends Texture>(node: Object3D, name: string): T;
32
+ static getMesh<T extends Mesh>(node: Object3D): T[];
33
+ static getMesh<T extends Mesh>(node: Object3D, name: string): T;
20
34
  static fullscreenMesh: Mesh;
21
35
  static fullscreenCamera: OrthographicCamera;
22
36
  private _root;
@@ -37,7 +51,9 @@ export declare class Viewer extends EventEmitter {
37
51
  private _rootRotated;
38
52
  private _time;
39
53
  private _lastTime;
54
+ private _lastFrameTime;
40
55
  private _targetFrameRate;
56
+ private _fixedFrameTime;
41
57
  private _autoResize;
42
58
  private _taskManager;
43
59
  private _resourceManager;
@@ -62,10 +78,14 @@ export declare class Viewer extends EventEmitter {
62
78
  factor: number;
63
79
  };
64
80
  get rootRotated(): boolean;
65
- constructor({ root, canvas, autoStart, autoResize, shadows, camera, targetFrameRate, colorSpace, toneMapping, toneMappingExposure, maxDPR, path, resourcePath, dracoPath, loader, tasker, ...webglOpts }?: {
81
+ get input(): DeviceInput;
82
+ get targetFrameRate(): number;
83
+ set targetFrameRate(v: number);
84
+ constructor({ root, canvas, autoStart, autoResize, shadows, camera, targetFrameRate, fixedFrameTime, colorSpace, toneMapping, toneMappingExposure, maxDPR, path, resourcePath, dracoPath, orientation, loader, tasker, ...webglOpts }?: {
66
85
  root?: HTMLElement;
67
86
  canvas?: HTMLCanvasElement;
68
87
  targetFrameRate?: number;
88
+ fixedFrameTime?: boolean;
69
89
  autoStart?: boolean;
70
90
  autoResize?: boolean;
71
91
  shadows?: boolean | ShadowMapType;
@@ -76,6 +96,7 @@ export declare class Viewer extends EventEmitter {
76
96
  path?: string;
77
97
  resourcePath?: string;
78
98
  dracoPath?: string;
99
+ orientation?: Orientation;
79
100
  camera?: {
80
101
  fov?: number;
81
102
  aspect?: number;
@@ -96,6 +117,7 @@ export declare class Viewer extends EventEmitter {
96
117
  };
97
118
  } & WebGLRendererParameters);
98
119
  destroy(): void;
120
+ private _addDefaultLoaders;
99
121
  private _frame;
100
122
  loop(dt: number): void;
101
123
  update(dt: number): void;
@@ -106,8 +128,8 @@ export declare class Viewer extends EventEmitter {
106
128
  stop(): this;
107
129
  resize(width?: number, height?: number): void;
108
130
  loadAsset(props: AssetProperties & TextureSettings): Promise<any>;
131
+ addLoader(Loader: LoaderConstructor): void;
109
132
  load({ url, ext, onProgress, castShadow, receiveShadow, ...props }: AssetProperties & __P<Object3D, typeof Object3D>): Promise<any>;
110
- tween(target: Object): import("./tween").Tween<Object>;
111
133
  timeline(target: Object): import("./tween").TweenChain;
112
134
  killTweensOf(target: Object): void;
113
135
  traverseMaterials(callback: (mat: Material) => void): void;
@@ -126,10 +148,9 @@ export declare class Viewer extends EventEmitter {
126
148
  removeComponent(node: Object3D, component: Component): ComponentManager;
127
149
  addNode<T, K extends __C<T>>(object: T | K & __C<T>, props?: __P<T, K>): T;
128
150
  removeNode(node: Object3D): void;
129
- activeNode(node: Object3D, active: boolean): void;
130
- createComponent<T extends Component, K extends __C<T>>(comp: T | K & __C<T>, props?: __Comp<T, K>): any;
131
- createRenderTarget(width: number, height: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean): WebGLRenderTarget<Texture>;
132
- createCubeRenderTarget(size: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean): WebGLCubeRenderTarget;
151
+ activeNode(node: Object3D, active: boolean): Object3D<import("three").Object3DEventMap>;
152
+ createRenderTarget(width: number, height: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLRenderTarget<Texture>;
153
+ createCubeRenderTarget(size: number, nearest?: boolean, floatType?: boolean | TextureDataType, msaa?: number, mipmap?: boolean, depth?: boolean): WebGLCubeRenderTarget;
133
154
  createDataTexture(data: BufferSource, width: number, height: number, floatType?: boolean, nearest?: boolean): DataTexture;
134
155
  /**
135
156
  * 传送门,得到一个全新的场景
@@ -137,6 +158,7 @@ export declare class Viewer extends EventEmitter {
137
158
  * @returns
138
159
  */
139
160
  portal<T = any>(callback: () => T): T;
161
+ blit(renderTarget: WebGLRenderTarget, material: Material, lod?: number, face?: number): void;
140
162
  compile(target?: Object3D | Scene | Material | Texture): void;
141
163
  compile(target?: Material[]): void;
142
164
  }
@@ -9,12 +9,11 @@ export interface AssetProperties {
9
9
  };
10
10
  onProgress?: (event: ProgressEvent) => void;
11
11
  }
12
+ export type LoaderConstructor = new (manager: ResourceManager) => aLoader;
12
13
  export declare class ResourceManager {
13
14
  static extension(path: string): string;
14
15
  static dirname(path: string): string;
15
16
  static basename(path: string, ext?: string): string;
16
- static _loaders: Map<string, aLoader>;
17
- static _addLoader(extNames: string[], Loader: new () => aLoader): void;
18
17
  static _parseURL(uri: any): {
19
18
  url: string;
20
19
  file: any;
@@ -30,6 +29,7 @@ export declare class ResourceManager {
30
29
  dracoPath: string;
31
30
  loadingManager: LoadingManager;
32
31
  private _caches;
32
+ private _loaders;
33
33
  constructor(props: {
34
34
  path: string;
35
35
  resourcePath: string;
@@ -37,6 +37,6 @@ export declare class ResourceManager {
37
37
  loadingManager: LoadingManager;
38
38
  });
39
39
  destroy(): void;
40
+ addLoader(Loader: LoaderConstructor): void;
40
41
  loadAsset<T = any>({ url, ext, onProgress, ...props }: AssetProperties & TextureSettings): Promise<T>;
41
42
  }
42
- export declare function resourceLoader(extNames: string[]): <T extends aLoader>(Loader: new () => T) => void;
@@ -1,4 +1,4 @@
1
- import { LoadingManager, Object3D } from "three";
1
+ import { Object3D } from "three";
2
2
  import { ResourceManager } from "./ResourceManager";
3
3
  import { TextureSettings } from "../TextureSettings";
4
4
  export interface LoadProperties {
@@ -9,8 +9,10 @@ export interface LoadProperties {
9
9
  onError?: (event: ErrorEvent) => void;
10
10
  }
11
11
  export declare abstract class aLoader {
12
- static _setMeshData(node: Object3D): Object3D<import("three").Object3DEventMap>;
13
12
  manager: ResourceManager;
14
- loadingManager: LoadingManager;
13
+ static _texKeys: string[];
14
+ static _setUserData(node: Object3D): Object3D<import("three").Object3DEventMap>;
15
+ constructor(manager: ResourceManager);
16
+ abstract extension: string[];
15
17
  abstract load(props: LoadProperties): void;
16
18
  }
@@ -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,54 +1,60 @@
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 enum VCamFreeLookMode {
4
- FREE = 0,
5
- TRANSLATE = 1
6
- }
3
+ import { EasingFunction } from "../tween";
7
4
  export declare class FreelookVirtualCamera extends VirtualCamera {
8
5
  static __loc0: Vector2;
9
6
  static __loc1: Vector2;
10
7
  static __center: Vector2;
11
8
  static __preCenter: Vector2;
12
- static __moveDelta: Vector2;
13
- static __worldPos: Vector3;
9
+ static __panDelta: Vector2;
10
+ static __panTarget: Vector2;
11
+ static __rotateDelta: Vector2;
14
12
  static __posDelta: Vector3;
15
- static __posOffset: Vector3;
16
13
  static __xAxis: Vector3;
17
14
  static __yAxis: Vector3;
18
15
  static __quat: Quaternion;
19
- static __spherical: Spherical;
20
16
  private _button;
21
17
  private _touchID;
22
- private _distanceDelta;
23
18
  private _preLoc0;
24
19
  private _preLoc1;
25
- private _rotateDelta;
26
- private _panDelta;
27
- mode: VCamFreeLookMode;
20
+ private _spherical;
21
+ private _lookAt;
22
+ private _tempSmoothing;
23
+ private _tempRotateSmoothing;
24
+ private _targetTheta;
25
+ private _targetPhi;
26
+ private _targetSpringLength;
27
+ private _targetFov;
28
+ private _targetLookAt;
28
29
  forbidX: boolean;
29
30
  forbidY: boolean;
30
31
  forbidZ: boolean;
31
32
  forbidPanX: boolean;
32
33
  forbidPanY: boolean;
33
34
  forbitPanOffsetY: boolean;
35
+ panSpeed: number;
34
36
  rotateSpeed: number;
37
+ smoothing: number;
35
38
  rotateSmoothing: number;
36
- panSpeed: number;
37
- panSmoothing: number;
38
- panScale: Vector3;
39
39
  phiMin: number;
40
40
  phiMax: number;
41
41
  thetaMin: number;
42
42
  thetaMax: number;
43
43
  distanceMin: number;
44
44
  distanceMax: number;
45
- rotateTouchID: number;
46
- lookAt: Object3D<import("three").Object3DEventMap>;
45
+ get lookAt(): Vector3;
46
+ set lookAt(v: Vector3);
47
+ get springLength(): number;
48
+ set springLength(v: number);
49
+ get theta(): number;
50
+ set theta(v: number);
51
+ get phi(): number;
52
+ set phi(v: number);
53
+ get fov(): number;
54
+ set fov(v: number);
47
55
  onEnable(): void;
48
56
  onDisable(): void;
49
57
  reset(): void;
50
- private _tweenPOI;
51
- gotoPOI(position: Vector3, lookAt: Vector3, duration?: number, easing?: (amount: number) => number): void;
52
58
  private _onPointerDown;
53
59
  private _onPointerUp;
54
60
  private _onPointerMove;
@@ -56,7 +62,20 @@ export declare class FreelookVirtualCamera extends VirtualCamera {
56
62
  private _onTouchStart;
57
63
  private _onTouchMove;
58
64
  private _calculateDistanceScale;
59
- private _calculateRotateDelta;
65
+ private _calculateRotatelDelta;
60
66
  private _calculatePanDelta;
67
+ private _calculateTargetLookAt;
68
+ private _calculateTargetSpringArm;
69
+ gotoPOI({ duration, easing, springLength, theta, phi, lookAt, fov, smoothing, rotateSmoothing }: {
70
+ duration?: number;
71
+ easing?: EasingFunction;
72
+ springLength?: number;
73
+ theta?: number;
74
+ phi?: number;
75
+ lookAt?: Vector3;
76
+ fov?: number;
77
+ smoothing?: number;
78
+ rotateSmoothing?: number;
79
+ }): void;
61
80
  update(dt: number): void;
62
81
  }
@@ -1,25 +1,25 @@
1
1
  import { Object3D, Quaternion, Vector3 } from "three";
2
2
  import { Component } from "../Component";
3
3
  import { CinestationBrain } from "./CinestationBrain";
4
+ declare class Lens {
5
+ fov: number;
6
+ near: number;
7
+ far: number;
8
+ }
4
9
  export declare class VirtualCamera extends Component<Object3D & {
5
10
  isCamera?: boolean;
6
11
  }> {
7
12
  private _finalPosition;
8
13
  private _finalRotation;
14
+ locked: boolean;
9
15
  priority: number;
10
- lookAt: Object3D | null;
11
- follow: Object3D | null;
12
- fov: number;
13
- near: number;
14
- far: number;
16
+ lens: Lens;
15
17
  correctPosition: Vector3;
16
18
  correctRotation: Quaternion;
17
- lookaheadPosition: Vector3;
18
- trackedObjectOffset: Vector3;
19
19
  brain: CinestationBrain;
20
20
  get finalPosition(): Vector3;
21
21
  get finalRotation(): Quaternion;
22
22
  onLoad(): void;
23
23
  onDestroy(): void;
24
- update(dt: number): void;
25
24
  }
25
+ export {};
@@ -0,0 +1,48 @@
1
+ import { Component } from "../Component";
2
+ type PerformanceMonitorProps = {
3
+ /** How much time in milliseconds to collect an average fps, 250 */
4
+ ms?: number;
5
+ /** How many interations of averages to collect, 10 */
6
+ iterations?: number;
7
+ /** The percentage of iterations that are matched against the lower and upper bounds, 0.75 */
8
+ threshold?: number;
9
+ /** A function that receive the max device refreshrate to determine lower and upper bounds which create a margin where neither incline nor decline should happen, (refreshrate) => (refreshrate > 90 ? [50, 90] : [50, 60]) */
10
+ bounds?: (refreshrate: number) => [lower: number, upper: number];
11
+ /** How many times it can inline or decline before onFallback is called, Infinity */
12
+ flipflops?: number;
13
+ /** The factor increases and decreases between 0-1, this prop sets the starting value, 0.5 */
14
+ factor?: number;
15
+ /** The step that gets added or subtracted to or from the factor on each incline/decline, 0.1 */
16
+ step?: number;
17
+ /** When performance is higher than the upper bound (good!) */
18
+ onIncline?: (monitor: PerformanceMonitor) => void;
19
+ /** When performance is lower than the upper bound (bad!) */
20
+ onDecline?: (monitor: PerformanceMonitor) => void;
21
+ /** Incline and decline will change the factor, this will trigger when that happened */
22
+ onChange?: (monitor: PerformanceMonitor) => void;
23
+ /** Called after when the number of flipflops is reached, it indicates instability, use the function to set a fixed baseline */
24
+ onFallback?: (monitor: PerformanceMonitor) => void;
25
+ };
26
+ type PerformanceMonitorSubscriber = {
27
+ onIncline?: (monitor: PerformanceMonitor) => void;
28
+ /** When performance is lower than the upper bound (bad!) */
29
+ onDecline?: (monitor: PerformanceMonitor) => void;
30
+ /** Incline and decline will change the factor, this will trigger when that happened */
31
+ onChange?: (monitor: PerformanceMonitor) => void;
32
+ /** Called after when the number of flipflops is reached, it indicates instability, use the function to set a fixed baseline */
33
+ onFallback?: (monitor: PerformanceMonitor) => void;
34
+ };
35
+ export declare class PerformanceMonitor extends Component {
36
+ fps: number;
37
+ index: number;
38
+ factor: number;
39
+ flipped: number;
40
+ refreshrate: number;
41
+ fallback: boolean;
42
+ frames: any[];
43
+ averages: any[];
44
+ subscriptions: Map<any, any>;
45
+ subscribe(subscriber: PerformanceMonitorSubscriber): void;
46
+ constructor({ iterations, ms, threshold, step, factor: _factor, flipflops, bounds, onIncline, onDecline, onChange, onFallback, }: PerformanceMonitorProps);
47
+ }
48
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Matrix4, Vector3, WebGLRenderTarget } from "three";
2
+ import { Component } from "../Component";
3
+ export declare class Reflector extends Component {
4
+ constructor({ textureWidth, textureHeight, clipBias, multisample, layer, normal, mipmap, }?: {
5
+ textureWidth?: number;
6
+ textureHeight?: number;
7
+ clipBias?: number;
8
+ multisample?: number;
9
+ normal?: Vector3;
10
+ layer?: number;
11
+ mipmap?: boolean;
12
+ });
13
+ getTextureMatrix: () => Matrix4;
14
+ getRenderTarget: () => WebGLRenderTarget;
15
+ }
@@ -0,0 +1 @@
1
+ export { Reflector } from "./Reflector";
package/types/index.d.ts CHANGED
@@ -1,12 +1,19 @@
1
1
  export * from "./types";
2
2
  export * from "./base";
3
3
  export * from "./tween";
4
- export * from "./loader";
4
+ export * from "./loaders";
5
5
  export * from "./cinestation";
6
- export * from "./primitives";
6
+ export * from "./primitive";
7
+ export * from "./math";
8
+ export * from "./components";
9
+ export * from "./materials";
10
+ export * from "./plugins";
7
11
  export { Viewer } from "./Viewer";
8
12
  export { Component } from "./Component";
9
13
  export { SystemInfo } from "./SystemInfo";
10
14
  export { Plugin } from "./Plugin";
11
15
  export { ObjectInstance } from "./ObjectInstance";
12
16
  export { property, PropertyManager } from "./PropertyManager";
17
+ export { DeviceInput } from "./DeviceInput";
18
+ export { Orientation } from "./enums/Orientation";
19
+ export * from "./asset/aLoader";
@@ -0,0 +1,5 @@
1
+ import { LoadProperties, aLoader } from "../asset/aLoader";
2
+ export declare class aEXRLoader extends aLoader {
3
+ extension: string[];
4
+ load({ url, onLoad, onProgress, onError, texSettings }: LoadProperties): void;
5
+ }
@@ -1,4 +1,5 @@
1
1
  import { LoadProperties, aLoader } from "../asset/aLoader";
2
2
  export declare class aFBXLoader extends aLoader {
3
+ extension: string[];
3
4
  load({ url, onLoad, onProgress, onError }: LoadProperties): void;
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { LoadProperties, aLoader } from "../asset/aLoader";
2
2
  export declare class aGLTFLoader extends aLoader {
3
+ extension: string[];
3
4
  load({ url, onLoad, onProgress, onError }: LoadProperties): void;
4
5
  }
@@ -1,4 +1,5 @@
1
1
  import { LoadProperties, aLoader } from "../asset/aLoader";
2
2
  export declare class aHDRLoader extends aLoader {
3
+ extension: string[];
3
4
  load({ url, onLoad, onProgress, onError, texSettings }: LoadProperties): void;
4
5
  }
@@ -0,0 +1,5 @@
1
+ import { LoadProperties, aLoader } from "../asset/aLoader";
2
+ export declare class aJSONLoader extends aLoader {
3
+ extension: string[];
4
+ load({ url, onLoad, onProgress, onError }: LoadProperties): void;
5
+ }
@@ -1,4 +1,5 @@
1
1
  import { LoadProperties, aLoader } from "../asset/aLoader";
2
2
  export declare class aTextureLoader extends aLoader {
3
+ extension: string[];
3
4
  load({ url, onLoad, onProgress, onError, texSettings }: LoadProperties): void;
4
5
  }
@@ -1,8 +1,6 @@
1
- import "./aGLTFLoader";
2
- import "./aFBXLoader";
3
- import "./aHDRLoader";
4
- import "./aTextureLoader";
5
- export { aGLTFLoader } from "./aGLTFLoader";
1
+ export { aEXRLoader } from "./aEXRLoader";
6
2
  export { aFBXLoader } from "./aFBXLoader";
3
+ export { aGLTFLoader } from "./aGLTFLoader";
7
4
  export { aHDRLoader } from "./aHDRLoader";
5
+ export { aJSONLoader } from "./aJSONLoader";
8
6
  export { aTextureLoader } from "./aTextureLoader";
@@ -0,0 +1,28 @@
1
+ import { IUniform, ShaderMaterial, Texture, WebGLProgramParametersWithUniforms } from "three";
2
+ export declare class ReflectorMaterial extends ShaderMaterial {
3
+ vertexShader: string;
4
+ fragmentShader: string;
5
+ defines: {
6
+ [key: string]: any;
7
+ };
8
+ uniforms: {
9
+ [uniform: string]: IUniform<any>;
10
+ };
11
+ onBeforeCompile(shader: WebGLProgramParametersWithUniforms): void;
12
+ get alpha(): number;
13
+ set alpha(v: number);
14
+ get metalness(): number;
15
+ set metalness(v: number);
16
+ get roughness(): number;
17
+ set roughness(v: number);
18
+ get map(): Texture;
19
+ set map(v: Texture);
20
+ get roughnessMap(): Texture;
21
+ set roughnessMap(v: Texture);
22
+ get normalMap(): Texture;
23
+ set normalMap(v: Texture);
24
+ get aoMap(): Texture;
25
+ set aoMap(v: Texture);
26
+ get lightMap(): Texture;
27
+ set lightMap(v: Texture);
28
+ }
@@ -1,4 +1,4 @@
1
1
  import { Color, CubeTexture, Matrix3, Matrix4, Quaternion, ShaderMaterial, Texture, Vector2, Vector3, Vector4 } from "three";
2
- export declare function getShaderMaterial(uniforms: {
2
+ export declare function getShaderMaterial<T extends {
3
3
  [name: string]: CubeTexture | Texture | Int32Array | Float32Array | Matrix4 | Matrix3 | Quaternion | Vector4 | Vector3 | Vector2 | Color | number | boolean | Array<any> | null;
4
- }, vertexShader: string, fragmentShader: string, onInit?: (material?: ShaderMaterial) => void): typeof ShaderMaterial;
4
+ }>(uniforms: T, vertexShader: string, fragmentShader: string, onInit?: (material?: ShaderMaterial) => void): typeof ShaderMaterial & T & ShaderMaterial;
@@ -0,0 +1,3 @@
1
+ export { vert_fullscreen } from "./fullscreen.glsl";
2
+ export { frag_BoxfilterBlur } from "./boxfilterblur.glsl";
3
+ export { frag_panoramaToCubeMap, frag_cubeMapToPanorama } from "./panorama.glsl";
@@ -0,0 +1,3 @@
1
+ export * from "./glsl";
2
+ export { getShaderMaterial } from "./getShaderMaterial";
3
+ export { ReflectorMaterial } from "./ReflectorMaterial";
@@ -1,2 +1,9 @@
1
1
  import { Vector3 } from "three";
2
- export declare const Vector3_ZERO: Vector3;
2
+ export declare const Vector3_UNIT_X: Readonly<Vector3>;
3
+ export declare const Vector3_UNIT_Y: Readonly<Vector3>;
4
+ export declare const Vector3_UNIT_Z: Readonly<Vector3>;
5
+ export declare const Vector3_RIGHT: Readonly<Vector3>;
6
+ export declare const Vector3_UP: Readonly<Vector3>;
7
+ export declare const Vector3_ZERO: Readonly<Vector3>;
8
+ export declare const Vector3_ONE: Readonly<Vector3>;
9
+ export declare const Vector3_NEG_ONE: Readonly<Vector3>;