gl-draw 0.15.0-beta.3 → 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.
- package/dist/constants.d.ts +1 -0
- package/dist/core/BaseObject/PointerEvent.d.ts +13 -0
- package/dist/core/BaseObject/UseMaterial.d.ts +23 -0
- package/dist/core/{BaseObject.d.ts → BaseObject/index.d.ts} +24 -29
- package/dist/core/Composer.d.ts +5 -5
- package/dist/core/Lead/Lead.d.ts +17 -10
- package/dist/core/Lead/Pick.d.ts +2 -1
- package/dist/core/MList/MList.d.ts +11 -5
- package/dist/core/Pencil.d.ts +12 -10
- package/dist/core/Renderer.d.ts +0 -1
- package/dist/core/ResourceTracker.d.ts +4 -6
- package/dist/index.js +23 -23
- package/dist/index.module.js +1702 -1562
- package/dist/index.module2.js +641 -787
- package/dist/index2.js +130 -140
- package/dist/objects/conicPolygon/geometry/index.d.ts +4 -4
- package/dist/objects/extrudePolygon/ExtrudeGeometry.d.ts +1 -1
- package/dist/objects/extrudePolygon/createGeometry.d.ts +9 -13
- package/dist/objects/index.js +1 -1
- package/dist/objects/index.module.js +811 -783
- package/dist/objects/line/createGeometry.d.ts +2 -2
- package/dist/objects/line/index.d.ts +4 -4
- package/dist/objects/line/meshLine/MeshLineGeometry.d.ts +16 -35
- package/dist/objects/line/meshLine/MeshLineMaterial.d.ts +59 -40
- package/dist/objects/line/meshLine/fragment.d.ts +1 -0
- package/dist/objects/line/meshLine/utils.d.ts +4 -0
- package/dist/objects/line/meshLine/vertex.d.ts +1 -0
- package/dist/objects/line2/WebGPULineSegments2.d.ts +1 -1
- package/dist/objects/line2/createGeometry.d.ts +1 -1
- package/dist/objects/pie/index.d.ts +9 -13
- package/dist/plugins/Worker/createGeometry.d.ts +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/index.module.js +36 -36
- package/dist/utils/Sprite2Points.d.ts +1 -1
- package/dist/utils/setInstancedAttr.d.ts +6 -0
- package/package.json +1 -1
- package/dist/objects/scene/index.d.ts +0 -11
package/dist/constants.d.ts
CHANGED
|
@@ -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,21 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
5
|
-
import
|
|
6
|
-
import ResourceTracker from "./ResourceTracker";
|
|
7
|
-
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';
|
|
8
6
|
export { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
|
|
9
|
-
export
|
|
7
|
+
export { CSS3DObject, CSS3DSprite, } from 'three/examples/jsm/renderers/CSS3DRenderer';
|
|
8
|
+
export default class BaseObject extends UseMaterial {
|
|
9
|
+
key: string;
|
|
10
10
|
objectType: string;
|
|
11
11
|
objectOptions?: Record<string, any>;
|
|
12
|
-
key: string;
|
|
13
12
|
pencil: Pencil;
|
|
14
13
|
lead: Lead;
|
|
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;
|
|
@@ -24,18 +22,22 @@ export default class BaseObject extends ResourceTracker {
|
|
|
24
22
|
get position(): Vector3;
|
|
25
23
|
get rotation(): import("three").Euler;
|
|
26
24
|
get scale(): Vector3;
|
|
27
|
-
get
|
|
28
|
-
|
|
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;
|
|
29
31
|
get visible(): boolean;
|
|
30
32
|
get visibleWithAncestors(): boolean;
|
|
31
33
|
create(): void;
|
|
32
34
|
render(): void;
|
|
33
|
-
update(
|
|
34
|
-
resize(
|
|
35
|
+
update(_delta: number, _elapsed: number): void;
|
|
36
|
+
resize(_width: number, _height: number): void;
|
|
35
37
|
show(): this;
|
|
36
38
|
hide(): this;
|
|
37
|
-
createMesh(...args: ConstructorParameters<typeof Mesh>): this;
|
|
38
39
|
createGroup(): this;
|
|
40
|
+
createMesh(...args: ConstructorParameters<typeof Mesh>): this;
|
|
39
41
|
createPoints(...args: ConstructorParameters<typeof Points>): this;
|
|
40
42
|
createCSS2DObject(dom: HTMLElement): this;
|
|
41
43
|
createCSS3DObject(dom: HTMLElement): this;
|
|
@@ -48,29 +50,22 @@ export default class BaseObject extends ResourceTracker {
|
|
|
48
50
|
size: Vector3;
|
|
49
51
|
center: Vector3;
|
|
50
52
|
};
|
|
53
|
+
setTop(onTop: number): void;
|
|
51
54
|
traverse(fn: (o: IBaseObject) => void): void;
|
|
52
|
-
|
|
53
|
-
instantiate(meta?: {
|
|
54
|
-
position: Vector3 | number[] | [number, number, number];
|
|
55
|
-
scale?: Vector3 | number[] | [number, number, number];
|
|
56
|
-
}[], ops?: {
|
|
55
|
+
instantiate(ops?: {
|
|
57
56
|
key?: string;
|
|
58
57
|
target?: IBaseObject;
|
|
59
58
|
create?: ((...args: any[]) => any) | boolean;
|
|
60
59
|
recursive?: boolean;
|
|
60
|
+
instancedAttr?: {
|
|
61
|
+
position: Vector3 | number[] | [number, number, number];
|
|
62
|
+
scale?: Vector3 | number[] | [number, number, number];
|
|
63
|
+
}[];
|
|
61
64
|
}): Promise<this>;
|
|
62
|
-
private setInstancedMatrix;
|
|
63
65
|
erase(): void;
|
|
64
|
-
cloneMaterial(): Material | Material[] | undefined;
|
|
65
|
-
materialList: Record<string, Material | Material[]>;
|
|
66
|
-
setMaterialList(name: string, material: Material | Material[] | 'clone', cover?: boolean): Material | Material[] | undefined;
|
|
67
|
-
useMaterialType: string;
|
|
68
|
-
useMaterial(name: string): void;
|
|
69
|
-
setTop(onTop: number): void;
|
|
70
|
-
private onPointerIndex;
|
|
71
|
-
onPointerEvent(type: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): void;
|
|
72
66
|
enableBloom(): void;
|
|
73
67
|
disableBloom(): void;
|
|
68
|
+
disposeTrack: boolean;
|
|
74
69
|
dispose(): void;
|
|
75
70
|
}
|
|
76
71
|
export interface IBaseObject extends BaseObject {
|
package/dist/core/Composer.d.ts
CHANGED
|
@@ -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;
|
package/dist/core/Lead/Lead.d.ts
CHANGED
|
@@ -1,27 +1,32 @@
|
|
|
1
|
-
import { Object3D, Scene } from 'three';
|
|
2
|
-
import { IBaseObject } from "../BaseObject";
|
|
3
|
-
import Group from "../../objects/group";
|
|
4
|
-
import BaseScene from "../../objects/scene";
|
|
5
|
-
import Pencil from "../Pencil";
|
|
6
|
-
import Pick from './Pick';
|
|
1
|
+
import { type Object3D, Scene } from 'three';
|
|
2
|
+
import BaseObject, { type IBaseObject } from "../BaseObject";
|
|
7
3
|
import type MList from "../MList/MList";
|
|
4
|
+
import type Pencil from "../Pencil";
|
|
5
|
+
import Pick from './Pick';
|
|
8
6
|
type KeyOf<T extends object> = Extract<keyof T, string>;
|
|
9
7
|
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>;
|
|
13
11
|
objects: Map<string, IBaseObject>;
|
|
14
|
-
objectsPm: Map<
|
|
15
|
-
|
|
12
|
+
objectsPm: Map<IBaseObject, Promise<any>>;
|
|
13
|
+
objectWrapChindIdMap: Map<IBaseObject, number>;
|
|
14
|
+
scene: IBaseObject;
|
|
16
15
|
mList: MList;
|
|
17
|
-
group:
|
|
18
|
-
prefabGroup:
|
|
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
|
+
createBaseObject(object3d: Object3D, opsO?: {
|
|
25
|
+
key?: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
target?: IBaseObject | null;
|
|
28
|
+
mList?: boolean;
|
|
29
|
+
}): BaseObject;
|
|
25
30
|
init<K extends {
|
|
26
31
|
[key: string]: new (...args: any[]) => IBaseObject;
|
|
27
32
|
}>(objectFactories: K): Draw<K>;
|
|
@@ -48,6 +53,8 @@ export default class Draw<T extends {
|
|
|
48
53
|
updateBaseObjectKey(baseObject: IBaseObject, keyOrigin: string): string;
|
|
49
54
|
private addBaseObject;
|
|
50
55
|
erase(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
|
|
56
|
+
eraseWithoutMaterial(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
|
|
57
|
+
private handleErase;
|
|
51
58
|
update(delta: number, elapsed: number): void;
|
|
52
59
|
setSize(width: number, height: number): void;
|
|
53
60
|
eraseAll(): void;
|
package/dist/core/Lead/Pick.d.ts
CHANGED
|
@@ -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,13 +19,13 @@ 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;
|
|
24
26
|
private domElement;
|
|
25
27
|
constructor(pencil: Pencil);
|
|
26
28
|
private addPickListener;
|
|
27
|
-
private sortIntersections;
|
|
28
29
|
private processIntersection;
|
|
29
30
|
private processObjectHierarchy;
|
|
30
31
|
private handleLeaveEvents;
|
|
@@ -4,22 +4,28 @@ import Pencil from "../Pencil";
|
|
|
4
4
|
export default class MaterialList {
|
|
5
5
|
pencil: Pencil;
|
|
6
6
|
private materials;
|
|
7
|
+
fixBaseObjects: Map<string, IBaseObject>;
|
|
7
8
|
private materialBaseObjectMap;
|
|
8
|
-
private fixBufferGeometry;
|
|
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;
|
|
14
|
+
getKeyByName(name: string): string | undefined;
|
|
13
15
|
addMultiple(key: string, materialMap: Record<string, Material | null>): void;
|
|
14
16
|
getMultiple(key: string): Record<string, Material> | null;
|
|
17
|
+
copy(sourceKey: string, destinationKey: string, ops?: {
|
|
18
|
+
name?: string;
|
|
19
|
+
}): Material | null;
|
|
15
20
|
copyMultiple(sourceKey: string, destinationKey: string): Record<string, Material>;
|
|
16
|
-
disposeMaterial(material
|
|
21
|
+
disposeMaterial(material?: Material | Material[]): void;
|
|
17
22
|
remove(key: string): void;
|
|
18
23
|
removeByMaterial(material: Material): void;
|
|
19
24
|
proxyBaseObject(object: IBaseObject): void;
|
|
25
|
+
private material2array;
|
|
20
26
|
addBaseObjectMap(object: IBaseObject): void;
|
|
21
|
-
rmBaseObjectMap(object: IBaseObject, targetMaterial?: Material): void;
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
rmBaseObjectMap(object: IBaseObject, targetMaterial?: Material | Material[], disposeMaterial?: boolean): void;
|
|
28
|
+
getBaseObjectMap(material: Material): Set<IBaseObject>;
|
|
29
|
+
syncChangeMaterial(oldMaterial: Material, material: Material): void;
|
|
24
30
|
dispose(): void;
|
|
25
31
|
}
|
package/dist/core/Pencil.d.ts
CHANGED
|
@@ -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
|
|
6
|
-
import
|
|
7
|
-
import
|
|
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]>;
|
|
@@ -158,6 +158,8 @@ export default class Pencil {
|
|
|
158
158
|
private userSetDprCache;
|
|
159
159
|
private handeleResize;
|
|
160
160
|
setDevicePixelRatio(userSetDprCache: number): void;
|
|
161
|
+
private viewPadding;
|
|
162
|
+
setViewPadding(top?: number, right?: number, bottom?: number, left?: number): void;
|
|
161
163
|
pick(event: MouseEvent, objects?: Object3D[], recursive?: boolean): {
|
|
162
164
|
object: Object3D<import("three").Object3DEventMap>;
|
|
163
165
|
index: number | undefined;
|
package/dist/core/Renderer.d.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { Material, Object3D, Texture, BufferGeometry } from 'three';
|
|
2
|
-
|
|
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
|
-
|
|
6
|
+
disposeMaterial: boolean;
|
|
6
7
|
disposeVideo: boolean;
|
|
7
|
-
|
|
8
|
-
materialList: Record<string, Material | Material[]>;
|
|
9
|
-
disposeTrack: boolean;
|
|
10
|
-
track(resource: Resource | Resource[]): Resource | Resource[];
|
|
8
|
+
track(resource: Resource | Resource[]): Material | Object3D<import("three").Object3DEventMap> | Texture | BufferGeometry<import("three").NormalBufferAttributes, import("three").BufferGeometryEventMap> | BaseObject | HTMLVideoElement | Resource[];
|
|
11
9
|
dispose(): void;
|
|
12
10
|
}
|
|
13
11
|
export {};
|