gl-draw 0.15.0-beta.2 → 0.15.0-beta.20

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;
@@ -14,8 +13,8 @@ export default class BaseObject extends ResourceTracker {
14
13
  lead: Lead;
15
14
  mList: MList;
16
15
  object3d: Object3D;
16
+ _original: Object3D;
17
17
  userData: Record<string, any>;
18
- disposeWithMaterial: boolean;
19
18
  prefab: boolean;
20
19
  isInstantiate: boolean;
21
20
  isBloom: boolean;
@@ -71,6 +70,8 @@ export default class BaseObject extends ResourceTracker {
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";
@@ -10,18 +8,20 @@ export default class Draw<T extends {
10
8
  [key: string]: new (...args: any[]) => IBaseObject;
11
9
  } = any> extends Pick {
12
10
  objMap: Map<Object3D<import("three").Object3DEventMap>, IBaseObject>;
11
+ _originalMap: Map<Object3D<import("three").Object3DEventMap>, IBaseObject>;
13
12
  objects: Map<string, IBaseObject>;
14
- objectsPm: Map<string, Promise<any>>;
15
- scene: BaseScene;
13
+ objectsPm: Map<IBaseObject, Promise<any>>;
14
+ scene: IBaseObject;
16
15
  mList: MList;
17
- group: Group;
18
- prefabGroup: Group;
16
+ group: IBaseObject;
17
+ prefabGroup: IBaseObject;
19
18
  private objectNamesToFactories;
20
19
  get objectsPromise(): IterableIterator<Promise<any>>;
21
20
  constructor(pencil: Pencil, ops: {
22
21
  scene: Scene;
23
22
  mList: MList;
24
23
  });
24
+ private createBaseObject;
25
25
  init<K extends {
26
26
  [key: string]: new (...args: any[]) => IBaseObject;
27
27
  }>(objectFactories: K): Draw<K>;
@@ -48,6 +48,8 @@ export default class Draw<T extends {
48
48
  updateBaseObjectKey(baseObject: IBaseObject, keyOrigin: string): string;
49
49
  private addBaseObject;
50
50
  erase(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
51
+ eraseWithoutMaterial(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
52
+ private handleErase;
51
53
  update(delta: number, elapsed: number): void;
52
54
  setSize(width: number, height: number): void;
53
55
  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;
@@ -4,23 +4,22 @@ import Pencil from "../Pencil";
4
4
  export default class MaterialList {
5
5
  pencil: Pencil;
6
6
  private materials;
7
+ private fixBaseObjects;
7
8
  private materialBaseObjectMap;
8
- private fixBufferGeometry;
9
9
  constructor(pencil: Pencil);
10
- add(key: string, material: Material, baseObject?: IBaseObject): void;
10
+ add(key: string, material: Material): void;
11
11
  get(key: string): Material | undefined;
12
12
  getKey(material: Material): string | undefined;
13
+ getFixBaseObject(key: string): IBaseObject | null;
13
14
  addMultiple(key: string, materialMap: Record<string, Material | null>): void;
14
15
  getMultiple(key: string): Record<string, Material> | null;
15
16
  copyMultiple(sourceKey: string, destinationKey: string): Record<string, Material>;
16
- disposeMaterial(material: Material): void;
17
+ disposeMaterial(material?: Material): void;
17
18
  remove(key: string): void;
18
- updateKey(oldKey: string, newKey: string): void;
19
19
  removeByMaterial(material: Material): void;
20
20
  proxyBaseObject(object: IBaseObject): void;
21
- addByBaseObject(object: IBaseObject): void;
22
- rmBaseObjectMap(object: IBaseObject, targetMaterial?: Material): void;
23
- getBaseObjectByMaterial(material: Material): Set<IBaseObject> | null;
24
- emitObject3dChange(): void;
21
+ addBaseObjectMap(object: IBaseObject): void;
22
+ rmBaseObjectMap(object: IBaseObject, targetMaterial?: Material, disposeMaterial?: boolean): void;
23
+ syncChangeMaterial(oldMaterial: Material, material: Material): void;
25
24
  dispose(): void;
26
25
  }
@@ -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;
@@ -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 {};