gl-draw 0.13.2 → 0.13.4

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.
@@ -1,7 +1,7 @@
1
1
  import * as THREE from 'three';
2
2
  import type Pencil from "./Pencil";
3
- import type Draw from "../plugins/Draw";
4
- import type { PickFunctionsItem } from "../plugins/Draw";
3
+ import type Draw from "./Lead/Lead";
4
+ import type { PickFunctionsItem } from "./Lead/Lead";
5
5
  export { CSS3DObject, CSS3DSprite, } from 'three/examples/jsm/renderers/CSS3DRenderer';
6
6
  export { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
7
7
  export default class BaseObject {
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import { EventEmitter } from 'events';
2
+ import Pages from "./Pages";
3
3
  export interface CameraParams {
4
4
  fov: number;
5
5
  near: number;
@@ -16,32 +16,25 @@ interface Options {
16
16
  width: number;
17
17
  height: number;
18
18
  }
19
- export default class {
20
- event: EventEmitter;
21
- cameraArr: THREE.PerspectiveCamera[];
22
- cameraActiveIndex: number;
19
+ export default class extends Pages<THREE.PerspectiveCamera> {
23
20
  get camera(): THREE.PerspectiveCamera;
24
- customCamera: boolean;
25
21
  width: number;
26
22
  height: number;
27
23
  constructor(options: Options);
28
- addPerspectiveCamera(cameraParams: {
24
+ addPerspectiveCamera(cameraParams?: {
29
25
  fov: number;
30
26
  aspect?: number;
31
27
  near: number;
32
28
  far: number;
33
29
  up: THREE.Vector3;
34
- }): THREE.PerspectiveCamera;
35
- removeCamera(index: number): void;
36
- setCameraActive(index: number): void;
30
+ }, index?: number): THREE.PerspectiveCamera;
37
31
  setSize(width: number, height: number): void;
38
- cloneCamera(): THREE.PerspectiveCamera;
32
+ cloneCamera(index?: number): THREE.PerspectiveCamera;
39
33
  sync(camera: THREE.PerspectiveCamera | {
40
34
  fov: number;
41
35
  viewMatrix: any;
42
36
  inverseViewMatrix: any;
43
37
  type?: string;
44
38
  }): void;
45
- dispose(): void;
46
39
  }
47
40
  export {};
@@ -1,5 +1,4 @@
1
1
  import * as THREE from 'three';
2
- import GUI from 'lil-gui';
3
2
  import CameraController from './Camera';
4
3
  import SceneController from './Scene';
5
4
  import RendererController from './Renderer';
@@ -66,9 +65,7 @@ export default class {
66
65
  addOutputPass(): void;
67
66
  setPremultiplieAlpha(premultiplieAlpha: boolean): void;
68
67
  addSSAOPass(params: SSAOParams): void;
69
- addSSAOGui(gui: GUI): void;
70
68
  addBloomPass(params: BloomParams): void;
71
- addBloomGui(gui: GUI): void;
72
69
  bloomSelection: Set<THREE.Object3D<THREE.Object3DEventMap>>;
73
70
  bloomLayer: THREE.Layers;
74
71
  bloomMaterials: Record<string, THREE.Material | THREE.Material[]>;
@@ -1,6 +1,6 @@
1
1
  import * as THREE from 'three';
2
2
  import CameraControls from './CameraControls';
3
- import { EventEmitter } from 'events';
3
+ import Pages from "./Pages";
4
4
  export interface ControlsParams {
5
5
  domElement: HTMLElement;
6
6
  }
@@ -8,20 +8,16 @@ export declare const defaultControlsParams: {};
8
8
  interface Options {
9
9
  controlsParams: ControlsParams;
10
10
  }
11
- export default class {
12
- event: EventEmitter;
11
+ export default class extends Pages<CameraControls> {
13
12
  options: Options;
14
- cameraControlsArr: CameraControls[];
15
- cameraControlsActiveIndex: number;
16
13
  get cameraControls(): CameraControls;
17
14
  autoRotateSpeed: number;
18
15
  constructor(options: Options);
19
- addCameraControls(camera: THREE.PerspectiveCamera | THREE.OrthographicCamera, interactiveArea?: DOMRect): CameraControls;
20
- removeCameraControls(index: number): void;
21
- setCameraControlsActive(index: number): void;
16
+ addCameraControls(camera: THREE.PerspectiveCamera | THREE.OrthographicCamera, index?: number): CameraControls;
17
+ setPageActive(index: number): void;
18
+ removePage(index: number): void;
22
19
  enable(): void;
23
20
  disable(): void;
24
21
  update(delta: number): void;
25
- dispose(): void;
26
22
  }
27
23
  export {};
@@ -1,7 +1,7 @@
1
1
  import * as THREE from 'three';
2
- import { IBaseObject } from "../core/BaseObject";
3
- import Group from "../objects/group";
4
- import Pencil from "../core/Pencil";
2
+ import { IBaseObject } from "../BaseObject";
3
+ import Group from "../../objects/group";
4
+ import Pencil from "../Pencil";
5
5
  type KeyOf<T extends object> = Extract<keyof T, string>;
6
6
  export type PickFunctionsItem = {
7
7
  objArr: IBaseObject[] | (() => IBaseObject[]);
@@ -10,9 +10,7 @@ export type PickFunctionsItem = {
10
10
  };
11
11
  export default class Draw<T extends {
12
12
  [key: string]: new (...args: any[]) => IBaseObject;
13
- }> {
14
- pluginName: string;
15
- pencil: Pencil;
13
+ } = any> {
16
14
  objMap: Map<THREE.Object3D<THREE.Object3DEventMap>, IBaseObject>;
17
15
  targetNullMap: Map<THREE.Object3D<THREE.Object3DEventMap>, IBaseObject>;
18
16
  objects: Map<string, IBaseObject>;
@@ -20,13 +18,14 @@ export default class Draw<T extends {
20
18
  prefabGroupMap: Map<THREE.Scene, Group>;
21
19
  get group(): Group | undefined;
22
20
  get prefabGroup(): Group | undefined;
23
- private objects_;
21
+ pencil: Pencil;
22
+ get scene(): THREE.Scene;
24
23
  private objectNamesToFactories;
25
24
  get objectsPromise(): Promise<any>[];
26
- constructor(objects: T);
27
- scene: THREE.Scene | undefined;
28
- install(pencil: Pencil): void;
29
- initObjectFactories(): void;
25
+ constructor(pencil: Pencil, objectFactories: T);
26
+ init<K extends {
27
+ [key: string]: new (...args: any[]) => IBaseObject;
28
+ }>(objectFactories: K): Draw<K>;
30
29
  getObject<Y extends KeyOf<T>>(nameOrigin: Y, options?: {
31
30
  key: string;
32
31
  }): InstanceType<T[Y]> | undefined;
@@ -53,6 +52,7 @@ export default class Draw<T extends {
53
52
  private addBaseObject;
54
53
  erase(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
55
54
  eraseWithoutMaterial(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
55
+ private handleErase;
56
56
  private removeBaseObject;
57
57
  update(delta: number, elapsed: number): void;
58
58
  setSize(width: number, height: number): void;
@@ -0,0 +1,18 @@
1
+ import Lead from './Lead';
2
+ import Pencil from "../Pencil";
3
+ import Pages from "../Pages";
4
+ export interface LeadParams {
5
+ }
6
+ export declare const defaultDrawParams: {};
7
+ interface Options {
8
+ leadParams?: LeadParams;
9
+ pencil: Pencil;
10
+ }
11
+ export default class extends Pages<Lead> {
12
+ options: Options;
13
+ get lead(): Lead<any>;
14
+ constructor(options: Options);
15
+ addLead(_: any, index?: number): Lead<any>;
16
+ removePage(index: number): void;
17
+ }
18
+ export {};
@@ -41,7 +41,6 @@ export interface Options {
41
41
  scene: THREE.Scene | null;
42
42
  }
43
43
  export default class Loader {
44
- pluginName: string;
45
44
  loadingManager: THREE.LoadingManager;
46
45
  textureLoader?: TextureLoader;
47
46
  videoTextureLoader?: TextureLoader;
@@ -1,6 +1,6 @@
1
1
  import * as THREE from 'three';
2
2
  import Loader from './Loader';
3
- import { EventEmitter } from 'events';
3
+ import Pages from "../Pages";
4
4
  export interface LoaderParams {
5
5
  anisotropy: number;
6
6
  prefix?: string;
@@ -12,16 +12,11 @@ export declare const defaultLoaderParams: {
12
12
  interface Options {
13
13
  loaderParams: LoaderParams;
14
14
  }
15
- export default class {
16
- event: EventEmitter;
15
+ export default class extends Pages<Loader> {
17
16
  options: Options;
18
- loaderArr: Loader[];
19
- loaderActiveIndex: number;
20
17
  get loader(): Loader;
21
18
  constructor(options: Options);
22
- addLoader(scene: THREE.Scene): Loader;
23
- removeLoader(index: number): void;
24
- setLoaderActive(index: number): void;
25
- dispose(): void;
19
+ addLoader(scene: THREE.Scene, index?: number): Loader;
20
+ removePage(index: number): void;
26
21
  }
27
22
  export {};
@@ -0,0 +1,12 @@
1
+ declare class Pages {
2
+ mask: number;
3
+ constructor();
4
+ set(layer: number): void;
5
+ enable(layer: number): void;
6
+ enableAll(): void;
7
+ toggle(layer: number): void;
8
+ disable(layer: number): void;
9
+ disableAll(): void;
10
+ isEnabled(layer: number): boolean;
11
+ }
12
+ export { Pages };
@@ -0,0 +1,12 @@
1
+ import { Pages } from './Pages';
2
+ import { EventEmitter } from 'events';
3
+ export default class<T = any> {
4
+ event: EventEmitter;
5
+ controllerMap: Map<T, Pages>;
6
+ activeIndex: number;
7
+ controller: T;
8
+ addController(c: T, index?: number): T;
9
+ removePage(index: number, cb?: (c: T) => void): void;
10
+ setPageActive(index: number, cb?: (c: T, r: boolean) => void): void;
11
+ dispose(): void;
12
+ }
@@ -2,7 +2,6 @@ import * as THREE from 'three';
2
2
  import { Timer } from 'three/examples/jsm/misc/Timer';
3
3
  import { EventEmitter } from 'events';
4
4
  import Stats from 'stats-gl';
5
- import GUI from 'lil-gui';
6
5
  import RendererController, { RendererParams } from "./Renderer";
7
6
  import CameraController, { CameraParams } from "./Camera";
8
7
  import SceneController, { SceneParams } from "./Scene";
@@ -12,14 +11,14 @@ import TransformController from "./TransformControls";
12
11
  import CSSRendererController, { CSSRendererParams } from "./CSSRenderer";
13
12
  import ComposerController, { BloomParams, SSAOParams, ComposerParams } from "./Composer";
14
13
  import LoaderController, { LoaderParams } from "./Loader";
15
- import type { Draw, Wk } from "../plugins";
14
+ import LeadController from "./Lead";
15
+ import type { Wk } from "../plugins";
16
16
  type DeepRequired<T> = T extends Function | HTMLElement ? T : T extends object ? {
17
17
  [P in keyof T]-?: DeepRequired<T[P]>;
18
18
  } : T;
19
19
  interface Options {
20
20
  container: HTMLElement;
21
21
  stats?: boolean;
22
- gui?: boolean;
23
22
  helper?: boolean;
24
23
  viewHelper?: boolean;
25
24
  controls?: Partial<ControlsParams>;
@@ -55,13 +54,12 @@ export default class Pencil {
55
54
  sceneController: SceneController;
56
55
  helperController?: HelperController;
57
56
  loaderController: LoaderController;
57
+ leadController: LeadController;
58
58
  stats?: Stats;
59
- gui?: GUI;
60
59
  private resizeObserver;
61
60
  private raycaster;
62
61
  private maxBackufferArea;
63
62
  installPlugins: Map<string, any>;
64
- getPlugin(name: 'draw'): Draw<any>;
65
63
  getPlugin(name: 'worker'): Wk;
66
64
  get renderer(): THREE.WebGLRenderer;
67
65
  get maxAnisotropy(): number;
@@ -73,12 +71,12 @@ export default class Pencil {
73
71
  get camera(): THREE.PerspectiveCamera;
74
72
  get scene(): THREE.Scene;
75
73
  get loader(): import("./Loader/Loader").default;
74
+ get lead(): import("..").Lead<any>;
76
75
  event: EventEmitter;
77
76
  timer: Timer;
78
77
  userData: Record<string, any>;
79
78
  static options: {
80
79
  stats: boolean;
81
- gui: boolean;
82
80
  helper: boolean;
83
81
  viewHelper: boolean;
84
82
  controls: boolean;
@@ -135,13 +133,14 @@ export default class Pencil {
135
133
  };
136
134
  constructor(options: Options);
137
135
  use(plugin: any, ...args: any[]): void;
138
- pageActiveIndex: number;
139
- addPage({ sceneOptions, cameraOptions, }: {
136
+ addPage({ sceneOptions, cameraOptions, }?: {
140
137
  sceneOptions?: SceneParams;
141
- cameraOptions: CameraParams;
138
+ cameraOptions?: CameraParams;
142
139
  }): number;
143
140
  removePage(index: number): void;
144
141
  showPage(index: number): void;
142
+ pageActiveIndex: number;
143
+ private pageCountIndex;
145
144
  private init;
146
145
  private initComposer;
147
146
  private initCSSRenderer;
@@ -163,6 +162,7 @@ export default class Pencil {
163
162
  start(): void;
164
163
  stop(): void;
165
164
  autoRotate(speed: number): void;
165
+ private pipCameraControls?;
166
166
  showPipViewport(state: typeof ComposerController.prototype.pipViewportState): void;
167
167
  dispose(): void;
168
168
  }
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import { EventEmitter } from 'events';
2
+ import Pages from "./Pages";
3
3
  export interface SceneParams {
4
4
  background: THREE.Scene['background'];
5
5
  }
@@ -8,17 +8,11 @@ export declare const defaultSceneParams: {
8
8
  };
9
9
  interface Options {
10
10
  }
11
- export default class {
11
+ export default class extends Pages<THREE.Scene> {
12
12
  options: Options;
13
- event: EventEmitter;
14
- sceneArr: THREE.Scene[];
15
- sceneActiveIndex: number;
16
13
  get scene(): THREE.Scene;
17
- overrideMaterial: boolean;
18
14
  constructor(options: Options);
19
- addScene(sceneParams?: SceneParams): THREE.Scene;
20
- removeScene(index: number): void;
21
- setSceneActive(index: number): void;
22
- dispose(): void;
15
+ addScene(sceneParams?: SceneParams, index?: number): THREE.Scene;
16
+ removePage(index: number): void;
23
17
  }
24
18
  export {};
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { default, default as Pencil } from "./core/Pencil";
2
2
  export { default as BaseObject } from "./core/BaseObject";
3
- export { default as GUIObject } from "./core/GUIObject";
3
+ export type { default as Lead } from "./core/Lead/Lead";
4
4
  export declare const cameraControlsAction: Readonly<{
5
5
  readonly NONE: 0;
6
6
  readonly ROTATE: 1;