gl-draw 0.15.0-beta.29 → 0.15.0-beta.30

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 (35) hide show
  1. package/dist/constants.d.ts +1 -0
  2. package/dist/core/BaseObject/PointerEvent.d.ts +13 -0
  3. package/dist/core/BaseObject/UseMaterial.d.ts +23 -0
  4. package/dist/core/{BaseObject.d.ts → BaseObject/index.d.ts} +23 -28
  5. package/dist/core/Composer.d.ts +5 -5
  6. package/dist/core/Lead/Lead.d.ts +11 -5
  7. package/dist/core/Lead/Pick.d.ts +2 -0
  8. package/dist/core/MList/MList.d.ts +7 -3
  9. package/dist/core/Pencil.d.ts +10 -12
  10. package/dist/core/ResourceTracker.d.ts +1 -1
  11. package/dist/index.js +23 -23
  12. package/dist/index.module.js +1200 -1151
  13. package/dist/index.module2.js +661 -802
  14. package/dist/index2.js +130 -140
  15. package/dist/objects/conicPolygon/geometry/index.d.ts +4 -4
  16. package/dist/objects/extrudePolygon/ExtrudeGeometry.d.ts +1 -1
  17. package/dist/objects/extrudePolygon/createGeometry.d.ts +9 -13
  18. package/dist/objects/index.js +1 -1
  19. package/dist/objects/index.module.js +805 -782
  20. package/dist/objects/line/createGeometry.d.ts +2 -2
  21. package/dist/objects/line/index.d.ts +4 -4
  22. package/dist/objects/line/meshLine/MeshLineGeometry.d.ts +16 -35
  23. package/dist/objects/line/meshLine/MeshLineMaterial.d.ts +59 -40
  24. package/dist/objects/line/meshLine/fragment.d.ts +1 -0
  25. package/dist/objects/line/meshLine/utils.d.ts +4 -0
  26. package/dist/objects/line/meshLine/vertex.d.ts +1 -0
  27. package/dist/objects/line2/WebGPULineSegments2.d.ts +1 -1
  28. package/dist/objects/line2/createGeometry.d.ts +1 -1
  29. package/dist/objects/pie/index.d.ts +9 -13
  30. package/dist/plugins/Worker/createGeometry.d.ts +1 -1
  31. package/dist/plugins/index.js +1 -1
  32. package/dist/plugins/index.module.js +36 -36
  33. package/dist/utils/Sprite2Points.d.ts +1 -1
  34. package/dist/utils/setInstancedAttr.d.ts +6 -0
  35. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
1
  export declare const ENTIRE_SCENE = 0;
2
2
  export declare const BLOOM_SCENE = 1;
3
+ export declare const HIDE_SCENE = 2;
3
4
  export declare const IS_DEV: boolean;
@@ -0,0 +1,13 @@
1
+ import type Lead from "../Lead/Lead";
2
+ import type { PickFunctionsItem } from "../Lead/Pick";
3
+ export default class PointerEvent {
4
+ lead: Lead;
5
+ private onPointerIndex;
6
+ onPointerEvent(type: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): void;
7
+ onClick(cb: PickFunctionsItem['cb']): void;
8
+ onPointerEnter(cb: PickFunctionsItem['cb']): void;
9
+ onPointerLeave(cb: PickFunctionsItem['cb']): void;
10
+ onPointerMove(cb: PickFunctionsItem['cb']): void;
11
+ onPointerDown(cb: PickFunctionsItem['cb']): void;
12
+ dispose(): void;
13
+ }
@@ -0,0 +1,23 @@
1
+ import type { Material, Object3D } from 'three';
2
+ import type Lead from "../Lead/Lead";
3
+ import type MList from "../MList/MList";
4
+ import type Pencil from "../Pencil";
5
+ import PointerEvent from './PointerEvent';
6
+ export { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
7
+ export { CSS3DObject, CSS3DSprite, } from 'three/examples/jsm/renderers/CSS3DRenderer';
8
+ export default class UseMaterial extends PointerEvent {
9
+ pencil: Pencil;
10
+ lead: Lead;
11
+ mList: MList;
12
+ userData: Record<string, any>;
13
+ object3d: Object3D;
14
+ cloneMaterial(): Material | Material[] | undefined;
15
+ materialList: Record<string, Material | Material[]>;
16
+ setMaterialList(name: string, material: Material | Material[] | 'clone'): Material | Material[] | undefined;
17
+ useMaterialType: string;
18
+ useMaterial(name: string): void;
19
+ useMListById(id: string, slot?: number): void;
20
+ useMListByName(name: string, slot?: number): void;
21
+ disposeMaterialIfNotUsed: boolean;
22
+ dispose(): void;
23
+ }
@@ -1,14 +1,14 @@
1
- import { Object3D, Mesh, Points, Vector3, SpriteMaterial, Material } from 'three';
2
- import type Pencil from "./Pencil";
3
- import type Lead from "./Lead/Lead";
4
- import type MList from "./MList/MList";
5
- import type { PickFunctionsItem } from "./Lead/Pick";
6
- export { CSS3DObject, CSS3DSprite, } from 'three/examples/jsm/renderers/CSS3DRenderer';
1
+ import { Mesh, type Object3D, Points, type SpriteMaterial, Vector3 } from 'three';
2
+ import type Lead from "../Lead/Lead";
3
+ import type MList from "../MList/MList";
4
+ import type Pencil from "../Pencil";
5
+ import UseMaterial from './UseMaterial';
7
6
  export { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
8
- export default class BaseObject {
7
+ export { CSS3DObject, CSS3DSprite, } from 'three/examples/jsm/renderers/CSS3DRenderer';
8
+ export default class BaseObject extends UseMaterial {
9
+ key: string;
9
10
  objectType: string;
10
11
  objectOptions?: Record<string, any>;
11
- key: string;
12
12
  pencil: Pencil;
13
13
  lead: Lead;
14
14
  mList: MList;
@@ -22,18 +22,22 @@ export default class BaseObject {
22
22
  get position(): Vector3;
23
23
  get rotation(): import("three").Euler;
24
24
  get scale(): Vector3;
25
- get add(): (...object: Object3D[]) => Object3D<import("three").Object3DEventMap>;
26
- get remove(): (...object: Object3D[]) => Object3D<import("three").Object3DEventMap>;
25
+ get lookAt(): {
26
+ (vector: Vector3): void;
27
+ (x: number, y: number, z: number): void;
28
+ };
29
+ add(...object: Object3D[]): void;
30
+ remove(...object: Object3D[]): void;
27
31
  get visible(): boolean;
28
32
  get visibleWithAncestors(): boolean;
29
33
  create(): void;
30
34
  render(): void;
31
- update(delta: number, elapsed: number): void;
32
- resize(width: number, height: number): void;
35
+ update(_delta: number, _elapsed: number): void;
36
+ resize(_width: number, _height: number): void;
33
37
  show(): this;
34
38
  hide(): this;
35
- createMesh(...args: ConstructorParameters<typeof Mesh>): this;
36
39
  createGroup(): this;
40
+ createMesh(...args: ConstructorParameters<typeof Mesh>): this;
37
41
  createPoints(...args: ConstructorParameters<typeof Points>): this;
38
42
  createCSS2DObject(dom: HTMLElement): this;
39
43
  createCSS3DObject(dom: HTMLElement): this;
@@ -46,31 +50,22 @@ export default class BaseObject {
46
50
  size: Vector3;
47
51
  center: Vector3;
48
52
  };
53
+ setTop(onTop: number): void;
49
54
  traverse(fn: (o: IBaseObject) => void): void;
50
- clone(): Promise<this>;
51
- instantiate(meta?: {
52
- position: Vector3 | number[] | [number, number, number];
53
- scale?: Vector3 | number[] | [number, number, number];
54
- }[], ops?: {
55
+ instantiate(ops?: {
55
56
  key?: string;
56
57
  target?: IBaseObject;
57
58
  create?: ((...args: any[]) => any) | boolean;
58
59
  recursive?: boolean;
60
+ instancedAttr?: {
61
+ position: Vector3 | number[] | [number, number, number];
62
+ scale?: Vector3 | number[] | [number, number, number];
63
+ }[];
59
64
  }): Promise<this>;
60
- private setInstancedMatrix;
61
65
  erase(): void;
62
- cloneMaterial(): Material | Material[] | undefined;
63
- materialList: Record<string, Material | Material[]>;
64
- setMaterialList(name: string, material: Material | Material[] | 'clone', cover?: boolean): Material | Material[] | undefined;
65
- useMaterialType: string;
66
- useMaterial(name: string): void;
67
- setTop(onTop: number): void;
68
- private onPointerIndex;
69
- onPointerEvent(type: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): void;
70
66
  enableBloom(): void;
71
67
  disableBloom(): void;
72
68
  disposeTrack: boolean;
73
- disposeMaterialIfNotUsed: boolean;
74
69
  dispose(): void;
75
70
  }
76
71
  export interface IBaseObject extends BaseObject {
@@ -1,14 +1,14 @@
1
1
  import { WebGLRenderer, Scene, Camera, Vector2, Layers, Material } from 'three';
2
- import CameraController from './Camera';
3
- import SceneController from './Scene';
4
- import RendererController from './Renderer';
5
2
  import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer';
6
3
  import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass';
7
4
  import { SSAOPass } from 'three/examples/jsm/postprocessing/SSAOPass';
8
- import { OutputPass } from './pass/OutputPass';
9
- import getMixPass from './pass/MixPass';
10
5
  import { UnrealBloomPass } from 'three/examples/jsm/postprocessing/UnrealBloomPass';
11
6
  import type { IBaseObject } from './BaseObject';
7
+ import CameraController from './Camera';
8
+ import getMixPass from './pass/MixPass';
9
+ import { OutputPass } from './pass/OutputPass';
10
+ import RendererController from './Renderer';
11
+ import SceneController from './Scene';
12
12
  export interface BloomParams {
13
13
  threshold: number;
14
14
  strength: number;
@@ -1,8 +1,8 @@
1
- import { Object3D, Scene } from 'three';
2
- import { IBaseObject } from "../BaseObject";
3
- import Pencil from "../Pencil";
4
- import Pick from './Pick';
1
+ import { type Object3D, Scene } from 'three';
2
+ import BaseObject, { type IBaseObject } from "../BaseObject";
5
3
  import type MList from "../MList/MList";
4
+ import type Pencil from "../Pencil";
5
+ import Pick from './Pick';
6
6
  type KeyOf<T extends object> = Extract<keyof T, string>;
7
7
  export default class Draw<T extends {
8
8
  [key: string]: new (...args: any[]) => IBaseObject;
@@ -10,6 +10,7 @@ export default class Draw<T extends {
10
10
  objMap: Map<Object3D<import("three").Object3DEventMap>, IBaseObject>;
11
11
  objects: Map<string, IBaseObject>;
12
12
  objectsPm: Map<IBaseObject, Promise<any>>;
13
+ objectWrapChindIdMap: Map<IBaseObject, number>;
13
14
  scene: IBaseObject;
14
15
  mList: MList;
15
16
  group: IBaseObject;
@@ -20,7 +21,12 @@ export default class Draw<T extends {
20
21
  scene: Scene;
21
22
  mList: MList;
22
23
  });
23
- private createBaseObject;
24
+ createBaseObject(object3d: Object3D, opsO?: {
25
+ key?: string;
26
+ name?: string;
27
+ target?: IBaseObject | null;
28
+ mList?: boolean;
29
+ }): BaseObject;
24
30
  init<K extends {
25
31
  [key: string]: new (...args: any[]) => IBaseObject;
26
32
  }>(objectFactories: K): Draw<K>;
@@ -5,6 +5,7 @@ export type PickFunctionsItem = {
5
5
  type: 'move' | 'enter' | 'leave' | 'down' | 'click' | 'downOutside';
6
6
  cb: (data: {
7
7
  baseObject: IBaseObject;
8
+ realBaseObject?: IBaseObject;
8
9
  mouseEvent: MouseEvent;
9
10
  intersectionIndex?: number;
10
11
  sp?: () => void;
@@ -18,6 +19,7 @@ export default class Pick {
18
19
  private pickFunctionsMapIndex;
19
20
  private pickNodeFunctionsMapIndex;
20
21
  private activeObjects;
22
+ private activeObject;
21
23
  private prevActiveObjects;
22
24
  private objCallbackMap;
23
25
  private pickListener;
@@ -4,16 +4,19 @@ import Pencil from "../Pencil";
4
4
  export default class MaterialList {
5
5
  pencil: Pencil;
6
6
  private materials;
7
- private fixBaseObjects;
7
+ fixBaseObjects: Map<string, IBaseObject>;
8
8
  private materialBaseObjectMap;
9
9
  constructor(pencil: Pencil);
10
10
  add(key: string, material: Material): void;
11
11
  get(key: string): Material | undefined;
12
+ getByName(name: string): Material | undefined;
12
13
  getKey(material: Material): string | undefined;
13
- getFixBaseObject(key: string): IBaseObject | null;
14
+ getKeyByName(name: string): string | undefined;
14
15
  addMultiple(key: string, materialMap: Record<string, Material | null>): void;
15
16
  getMultiple(key: string): Record<string, Material> | null;
16
- copy(sourceKey: string, destinationKey: string): Material | null;
17
+ copy(sourceKey: string, destinationKey: string, ops?: {
18
+ name?: string;
19
+ }): Material | null;
17
20
  copyMultiple(sourceKey: string, destinationKey: string): Record<string, Material>;
18
21
  disposeMaterial(material?: Material | Material[]): void;
19
22
  remove(key: string): void;
@@ -22,6 +25,7 @@ export default class MaterialList {
22
25
  private material2array;
23
26
  addBaseObjectMap(object: IBaseObject): void;
24
27
  rmBaseObjectMap(object: IBaseObject, targetMaterial?: Material | Material[], disposeMaterial?: boolean): void;
28
+ getBaseObjectMap(material: Material): Set<IBaseObject>;
25
29
  syncChangeMaterial(oldMaterial: Material, material: Material): void;
26
30
  dispose(): void;
27
31
  }
@@ -1,18 +1,18 @@
1
- import { Object3D, Vector3, PerspectiveCamera } from 'three';
2
- import { Timer } from 'three/examples/jsm/misc/Timer';
3
1
  import { EventEmitter } from 'events';
4
2
  import Stats from 'stats-gl';
5
- import RendererController, { RendererParams } from "./Renderer";
6
- import CameraController, { CameraParams } from "./Camera";
7
- import SceneController, { SceneParams } from "./Scene";
3
+ import { type Object3D, type PerspectiveCamera, Vector3 } from 'three';
4
+ import { Timer } from 'three/examples/jsm/misc/Timer';
5
+ import CameraController, { type CameraParams } from "./Camera";
6
+ import ComposerController, { type BloomParams, type ComposerParams, type SSAOParams } from "./Composer";
7
+ import ControlsController, { type ControlsParams } from "./Controls";
8
+ import CSSRendererController, { type CSSRendererParams } from "./CSSRenderer";
8
9
  import HelperController from "./Helper";
9
- import ControlsController, { ControlsParams } from "./Controls";
10
- import TransformController from "./TransformControls";
11
- import CSSRendererController, { CSSRendererParams } from "./CSSRenderer";
12
- import ComposerController, { BloomParams, SSAOParams, ComposerParams } from "./Composer";
13
- import LoaderController, { LoaderParams } from "./Loader";
14
10
  import LeadController from "./Lead";
11
+ import LoaderController, { type LoaderParams } from "./Loader";
15
12
  import MListController from "./MList";
13
+ import RendererController, { type RendererParams } from "./Renderer";
14
+ import SceneController, { type SceneParams } from "./Scene";
15
+ import TransformController from "./TransformControls";
16
16
  import type { Wk } from "../plugins";
17
17
  type DeepRequired<T> = T extends Function | HTMLElement ? T : T extends object ? {
18
18
  [P in keyof T]-?: DeepRequired<T[P]>;
@@ -39,7 +39,6 @@ interface Options {
39
39
  css3DRenderer?: boolean;
40
40
  css3DRendererParams?: Partial<CSSRendererParams>;
41
41
  WebGPUTHREE?: any;
42
- mList?: boolean;
43
42
  }
44
43
  type DeepRequiredOptions = DeepRequired<Options>;
45
44
  export default class Pencil {
@@ -134,7 +133,6 @@ export default class Pencil {
134
133
  css3DRendererParams: {
135
134
  zIndex: string;
136
135
  };
137
- mList: boolean;
138
136
  };
139
137
  private TweenRaf;
140
138
  private tweenUpdateRaf;
@@ -5,7 +5,7 @@ export default class ResourceTracker {
5
5
  resources: Set<Resource>;
6
6
  disposeMaterial: boolean;
7
7
  disposeVideo: boolean;
8
- track(resource: Resource | Resource[]): Material | Texture | BaseObject | Object3D<import("three").Object3DEventMap> | BufferGeometry<import("three").NormalBufferAttributes> | HTMLVideoElement | Resource[];
8
+ track(resource: Resource | Resource[]): Material | Object3D<import("three").Object3DEventMap> | Texture | BufferGeometry<import("three").NormalBufferAttributes, import("three").BufferGeometryEventMap> | BaseObject | HTMLVideoElement | Resource[];
9
9
  dispose(): void;
10
10
  }
11
11
  export {};