gl-draw 0.15.0-beta.8 → 0.15.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.
@@ -3,10 +3,9 @@ import type Pencil from "./Pencil";
3
3
  import type Lead from "./Lead/Lead";
4
4
  import type MList from "./MList/MList";
5
5
  import type { PickFunctionsItem } from "./Lead/Pick";
6
- import ResourceTracker from "./ResourceTracker";
7
6
  export { CSS3DObject, CSS3DSprite, } from 'three/examples/jsm/renderers/CSS3DRenderer';
8
7
  export { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
9
- export default class BaseObject extends ResourceTracker {
8
+ export default class BaseObject {
10
9
  objectType: string;
11
10
  objectOptions?: Record<string, any>;
12
11
  key: string;
@@ -15,7 +14,6 @@ export default class BaseObject extends ResourceTracker {
15
14
  mList: MList;
16
15
  object3d: Object3D;
17
16
  userData: Record<string, any>;
18
- disposeWithMaterial: boolean;
19
17
  prefab: boolean;
20
18
  isInstantiate: boolean;
21
19
  isBloom: boolean;
@@ -66,11 +64,14 @@ export default class BaseObject extends ResourceTracker {
66
64
  setMaterialList(name: string, material: Material | Material[] | 'clone', cover?: boolean): Material | Material[] | undefined;
67
65
  useMaterialType: string;
68
66
  useMaterial(name: string): void;
67
+ useMList(name: string, slot?: number): void;
69
68
  setTop(onTop: number): void;
70
69
  private onPointerIndex;
71
70
  onPointerEvent(type: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): void;
72
71
  enableBloom(): void;
73
72
  disableBloom(): void;
73
+ disposeTrack: boolean;
74
+ disposeMaterialIfNotUsed: boolean;
74
75
  dispose(): void;
75
76
  }
76
77
  export interface IBaseObject extends BaseObject {
@@ -1,7 +1,5 @@
1
1
  import { Object3D, Scene } from 'three';
2
2
  import { IBaseObject } from "../BaseObject";
3
- import Group from "../../objects/group";
4
- import BaseScene from "../../objects/scene";
5
3
  import Pencil from "../Pencil";
6
4
  import Pick from './Pick';
7
5
  import type MList from "../MList/MList";
@@ -11,17 +9,18 @@ export default class Draw<T extends {
11
9
  } = any> extends Pick {
12
10
  objMap: Map<Object3D<import("three").Object3DEventMap>, IBaseObject>;
13
11
  objects: Map<string, IBaseObject>;
14
- objectsPm: Map<string, Promise<any>>;
15
- scene: BaseScene;
12
+ objectsPm: Map<IBaseObject, Promise<any>>;
13
+ scene: IBaseObject;
16
14
  mList: MList;
17
- group: Group;
18
- prefabGroup: Group;
15
+ group: IBaseObject;
16
+ prefabGroup: IBaseObject;
19
17
  private objectNamesToFactories;
20
18
  get objectsPromise(): IterableIterator<Promise<any>>;
21
19
  constructor(pencil: Pencil, ops: {
22
20
  scene: Scene;
23
21
  mList: MList;
24
22
  });
23
+ private createBaseObject;
25
24
  init<K extends {
26
25
  [key: string]: new (...args: any[]) => IBaseObject;
27
26
  }>(objectFactories: K): Draw<K>;
@@ -48,6 +47,8 @@ export default class Draw<T extends {
48
47
  updateBaseObjectKey(baseObject: IBaseObject, keyOrigin: string): string;
49
48
  private addBaseObject;
50
49
  erase(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
50
+ eraseWithoutMaterial(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
51
+ private handleErase;
51
52
  update(delta: number, elapsed: number): void;
52
53
  setSize(width: number, height: number): void;
53
54
  eraseAll(): void;
@@ -24,7 +24,6 @@ export default class Pick {
24
24
  private domElement;
25
25
  constructor(pencil: Pencil);
26
26
  private addPickListener;
27
- private sortIntersections;
28
27
  private processIntersection;
29
28
  private processObjectHierarchy;
30
29
  private handleLeaveEvents;
@@ -13,14 +13,15 @@ export default class MaterialList {
13
13
  getFixBaseObject(key: string): IBaseObject | null;
14
14
  addMultiple(key: string, materialMap: Record<string, Material | null>): void;
15
15
  getMultiple(key: string): Record<string, Material> | null;
16
+ copy(sourceKey: string, destinationKey: string): Material | null;
16
17
  copyMultiple(sourceKey: string, destinationKey: string): Record<string, Material>;
17
- disposeMaterial(material?: Material): void;
18
+ disposeMaterial(material?: Material | Material[]): void;
18
19
  remove(key: string): void;
19
20
  removeByMaterial(material: Material): void;
20
21
  proxyBaseObject(object: IBaseObject): void;
22
+ private material2array;
21
23
  addBaseObjectMap(object: IBaseObject): void;
22
- rmBaseObjectMap(object: IBaseObject, targetMaterial?: Material): void;
24
+ rmBaseObjectMap(object: IBaseObject, targetMaterial?: Material | Material[], disposeMaterial?: boolean): void;
23
25
  syncChangeMaterial(oldMaterial: Material, material: Material): void;
24
- emitObject3dChange(): void;
25
26
  dispose(): void;
26
27
  }
@@ -39,6 +39,7 @@ interface Options {
39
39
  css3DRenderer?: boolean;
40
40
  css3DRendererParams?: Partial<CSSRendererParams>;
41
41
  WebGPUTHREE?: any;
42
+ mList?: boolean;
42
43
  }
43
44
  type DeepRequiredOptions = DeepRequired<Options>;
44
45
  export default class Pencil {
@@ -133,6 +134,7 @@ export default class Pencil {
133
134
  css3DRendererParams: {
134
135
  zIndex: string;
135
136
  };
137
+ mList: boolean;
136
138
  };
137
139
  private TweenRaf;
138
140
  private tweenUpdateRaf;
@@ -158,6 +160,8 @@ export default class Pencil {
158
160
  private userSetDprCache;
159
161
  private handeleResize;
160
162
  setDevicePixelRatio(userSetDprCache: number): void;
163
+ private viewPadding;
164
+ setViewPadding(top?: number, right?: number, bottom?: number, left?: number): void;
161
165
  pick(event: MouseEvent, objects?: Object3D[], recursive?: boolean): {
162
166
  object: Object3D<import("three").Object3DEventMap>;
163
167
  index: number | undefined;
@@ -44,7 +44,6 @@ export default class {
44
44
  scissor?: boolean;
45
45
  scissorTest?: boolean;
46
46
  }): void;
47
- setViewPadding(top?: number, right?: number, bottom?: number, left?: number): void;
48
47
  dispose(): void;
49
48
  }
50
49
  export {};
@@ -1,13 +1,11 @@
1
1
  import { Material, Object3D, Texture, BufferGeometry } from 'three';
2
- type Resource = Object3D | Material | Texture | BufferGeometry | ResourceTracker | HTMLVideoElement;
2
+ import BaseObject from './BaseObject';
3
+ type Resource = Object3D | Material | Texture | BufferGeometry | BaseObject | HTMLVideoElement;
3
4
  export default class ResourceTracker {
4
5
  resources: Set<Resource>;
5
- disposeWithMaterial: boolean;
6
+ disposeMaterial: boolean;
6
7
  disposeVideo: boolean;
7
- object3d: Object3D;
8
- materialList: Record<string, Material | Material[]>;
9
- disposeTrack: boolean;
10
- track(resource: Resource | Resource[]): Resource | Resource[];
8
+ track(resource: Resource | Resource[]): Material | Texture | BaseObject | Object3D<import("three").Object3DEventMap> | BufferGeometry<import("three").NormalBufferAttributes> | HTMLVideoElement | Resource[];
11
9
  dispose(): void;
12
10
  }
13
11
  export {};