gl-draw 0.6.2 → 0.6.3

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 (78) hide show
  1. package/dist/constants.d.ts +4 -0
  2. package/dist/core/BaseObject.d.ts +45 -0
  3. package/dist/core/CSSRenderer/CSS2DRenderer.d.ts +17 -0
  4. package/dist/core/CSSRenderer/index.d.ts +19 -0
  5. package/dist/core/Camera.d.ts +30 -0
  6. package/dist/core/Composer.d.ts +60 -0
  7. package/dist/core/Control.d.ts +28 -0
  8. package/dist/core/GUIObject.d.ts +24 -0
  9. package/dist/core/Pencil.d.ts +146 -0
  10. package/dist/core/Renderer.d.ts +51 -0
  11. package/dist/core/Scene.d.ts +19 -0
  12. package/dist/core/pass/bloom/UnrealBloomPass.d.ts +46 -0
  13. package/dist/core/pass/bloom/index.d.ts +33 -0
  14. package/dist/core/pass/outline/index.d.ts +37 -0
  15. package/dist/core/pass/ssr/index.d.ts +38 -0
  16. package/dist/effect/bloom.d.ts +14 -0
  17. package/dist/effect/index.d.ts +5 -0
  18. package/dist/effect/index.js +3205 -0
  19. package/dist/effect/index.module.js +3205 -0
  20. package/dist/effect/outline.d.ts +15 -0
  21. package/dist/effect/scan.d.ts +39 -0
  22. package/dist/effect/scan2.d.ts +28 -0
  23. package/dist/effect/ssr.d.ts +15 -0
  24. package/dist/geojson/china.json +103310 -0
  25. package/dist/geojson/countries.json +27483 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.js +3102 -0
  28. package/dist/index.module.js +3102 -0
  29. package/dist/objects/conicPolygon/geometry/index.d.ts +32 -0
  30. package/dist/objects/conicPolygon/geometry/triangulate.d.ts +11 -0
  31. package/dist/objects/conicPolygon/index.d.ts +19 -0
  32. package/dist/objects/extrudePolygon/coords2Vector.d.ts +7 -0
  33. package/dist/objects/extrudePolygon/createGeometry.d.ts +8 -0
  34. package/dist/objects/extrudePolygon/getWorkerGeometry.d.ts +16 -0
  35. package/dist/objects/extrudePolygon/index.d.ts +37 -0
  36. package/dist/objects/extrudePolygon/w.d.ts +1 -0
  37. package/dist/objects/fix.d.ts +2 -0
  38. package/dist/objects/image/index.d.ts +24 -0
  39. package/dist/objects/index.d.ts +10 -0
  40. package/dist/objects/index.js +3177 -0
  41. package/dist/objects/index.module.js +3177 -0
  42. package/dist/objects/line/coords2Vector.d.ts +7 -0
  43. package/dist/objects/line/createGeometry.d.ts +8 -0
  44. package/dist/objects/line/getWorkerGeometry.d.ts +15 -0
  45. package/dist/objects/line/index.d.ts +44 -0
  46. package/dist/objects/line/meshLine/index.d.ts +89 -0
  47. package/dist/objects/line/meshLine/shader/fragment.d.ts +2 -0
  48. package/dist/objects/line/meshLine/shader/vertex.d.ts +2 -0
  49. package/dist/objects/line/w.d.ts +1 -0
  50. package/dist/objects/node/index.d.ts +30 -0
  51. package/dist/objects/text/index.d.ts +23 -0
  52. package/dist/objects/video/index.d.ts +31 -0
  53. package/dist/plugins/Cache.d.ts +8 -0
  54. package/dist/plugins/Data.d.ts +8 -0
  55. package/dist/plugins/Draw.d.ts +35 -0
  56. package/dist/plugins/Worker.d.ts +31 -0
  57. package/dist/plugins/index.d.ts +4 -0
  58. package/dist/plugins/index.js +3046 -0
  59. package/dist/plugins/index.module.js +3046 -0
  60. package/dist/shims.d.ts +5 -0
  61. package/dist/utils/chain.d.ts +23 -0
  62. package/dist/utils/colorCorrection.d.ts +2 -0
  63. package/dist/utils/disposeMesh.d.ts +2 -0
  64. package/dist/utils/exception.d.ts +26 -0
  65. package/dist/utils/getCache.d.ts +13 -0
  66. package/dist/utils/getElementView.d.ts +2 -0
  67. package/dist/utils/index.d.ts +11 -0
  68. package/dist/utils/index.js +3046 -0
  69. package/dist/utils/index.module.js +3046 -0
  70. package/dist/utils/isPlainObject.d.ts +1 -0
  71. package/dist/utils/makePromiseCreator.d.ts +6 -0
  72. package/dist/utils/polar2Cartesian.d.ts +1 -0
  73. package/dist/utils/timer.d.ts +9 -0
  74. package/dist/utils/to.d.ts +8 -0
  75. package/dist/utils/uvGenerator.d.ts +9 -0
  76. package/dist/workers/extrudePolygon.js +3046 -0
  77. package/dist/workers/line.js +3177 -0
  78. package/package.json +2 -2
@@ -0,0 +1,7 @@
1
+ import { GeoProjection } from 'd3-geo';
2
+ import * as THREE from 'three';
3
+ export declare const getProjection: (options: {
4
+ center: [number, number];
5
+ scale: number;
6
+ }) => GeoProjection;
7
+ export declare const coords2Vector: (projection: GeoProjection, coords: [number, number][]) => THREE.Vector3[];
@@ -0,0 +1,8 @@
1
+ import * as THREE from 'three';
2
+ import { MeshLine } from './meshLine';
3
+ interface Options {
4
+ nodes: THREE.Vector3[];
5
+ setPointWidth?: (p: number) => number;
6
+ }
7
+ declare const _default: (options: Options) => MeshLine;
8
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import * as THREE from 'three';
2
+ import type WorkerController from '../../plugins/Worker';
3
+ declare type Coordinate = [number, number];
4
+ declare const _default: (options: {
5
+ worker: WorkerController;
6
+ workerKey?: string | undefined;
7
+ coordinatesArr: Coordinate[][];
8
+ lineWidth: number[];
9
+ projection: {
10
+ center: [number, number];
11
+ scale: number;
12
+ };
13
+ cacheVersion?: string | undefined;
14
+ }) => Promise<THREE.BufferGeometry>;
15
+ export default _default;
@@ -0,0 +1,44 @@
1
+ import * as THREE from 'three';
2
+ import { PlaybackControls } from 'popmotion';
3
+ import BaseObject from '../../core/BaseObject';
4
+ import { MeshLineMaterial } from './meshLine';
5
+ interface Options {
6
+ nodes?: THREE.Vector3[];
7
+ nodesArr?: THREE.Vector3[][];
8
+ geometry?: THREE.BufferGeometry;
9
+ geometryArr?: THREE.BufferGeometry[];
10
+ key?: string;
11
+ useGroups?: boolean;
12
+ duration?: number;
13
+ delay?: number;
14
+ onComplete?: (...args: any[]) => void;
15
+ color?: string | THREE.Color | number;
16
+ lineWidth?: number;
17
+ sizeAttenuation?: number;
18
+ map?: THREE.Texture;
19
+ useMap?: number;
20
+ alphaMap?: THREE.Texture;
21
+ useAlphaMap?: number;
22
+ opacity?: number;
23
+ dashArray?: number;
24
+ dashOffset?: number;
25
+ dashRatio?: number;
26
+ useDash?: number;
27
+ visibility?: number;
28
+ alphaTest?: number;
29
+ repeat?: THREE.Vector2;
30
+ transparent?: boolean;
31
+ depthTest?: boolean;
32
+ setPointWidth?: (p: number) => number;
33
+ }
34
+ export default class Line extends BaseObject {
35
+ options: Options;
36
+ tween: PlaybackControls;
37
+ constructor(options?: Partial<Options>);
38
+ material: MeshLineMaterial;
39
+ create(): void;
40
+ resize(w: number, h: number): void;
41
+ animate(): void;
42
+ dispose(): void;
43
+ }
44
+ export {};
@@ -0,0 +1,89 @@
1
+ import * as THREE from 'three';
2
+
3
+ export class MeshLine extends THREE.BufferGeometry {
4
+ constructor();
5
+
6
+ geometry: MeshLine;
7
+
8
+ points: Float32Array | Array<number>;
9
+
10
+ isMeshLine: boolean;
11
+
12
+ setPoints(
13
+ points: Float32Array | Array<number>,
14
+ wcb?: (p: number) => any
15
+ ): void;
16
+
17
+ setMatrixWorld(matrixWorld: THREE.Matrix4): void;
18
+
19
+ setGeometry(g: THREE.BufferGeometry, c?: (p: number) => any): void;
20
+
21
+ raycast: (
22
+ raycaster: THREE.Raycaster,
23
+ intersects: THREE.Intersection[]
24
+ ) => void;
25
+
26
+ compareV3(a: number, b: number): number;
27
+
28
+ copyV3(a: number): [number, number, number];
29
+ }
30
+
31
+ export class MeshLineMaterial extends THREE.ShaderMaterial {
32
+ constructor(parameters?: {
33
+ resolution: THREE.Vector2; // required
34
+ lineWidth?: number;
35
+ map?: THREE.Texture;
36
+ useMap?: number;
37
+ alphaMap?: THREE.Texture;
38
+ useAlphaMap?: number;
39
+ color?: string | THREE.Color | number;
40
+ opacity?: number;
41
+ sizeAttenuation?: number;
42
+ dashArray?: number;
43
+ dashOffset?: number;
44
+ dashRatio?: number;
45
+ useDash?: number;
46
+ visibility?: number;
47
+ alphaTest?: number;
48
+ repeat?: THREE.Vector2;
49
+ transparent?: boolean;
50
+ depthTest?: boolean;
51
+ });
52
+
53
+ lineWidth: number;
54
+
55
+ map: THREE.Texture;
56
+
57
+ useMap: number;
58
+
59
+ alphaMap: THREE.Texture;
60
+
61
+ useAlphaMap: number;
62
+
63
+ color: THREE.Color | string | number;
64
+
65
+ opacity: number;
66
+
67
+ resolution: THREE.Vector2;
68
+
69
+ sizeAttenuation: number;
70
+
71
+ dashArray: number;
72
+
73
+ dashOffset: number;
74
+
75
+ dashRatio: number;
76
+
77
+ useDesh: number;
78
+
79
+ visibility: number;
80
+
81
+ alphaTest: number;
82
+
83
+ repeat: THREE.Vector2;
84
+ }
85
+
86
+ export function MeshLineRaycast(
87
+ raycaster: THREE.Raycaster,
88
+ intersects: THREE.Intersection[]
89
+ ): void;
@@ -0,0 +1,2 @@
1
+ declare const _default: string;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: string;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ import * as THREE from 'three';
2
+ import BaseObject from '../../core/BaseObject';
3
+ import Cache from '../../plugins/Cache';
4
+ import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
5
+ interface Options {
6
+ children: HTMLElement;
7
+ position?: THREE.Vector3;
8
+ event?: string;
9
+ eventTarge?: string[];
10
+ handler?: (event: Event) => void;
11
+ zIndexFix?: number;
12
+ }
13
+ export declare class Node extends BaseObject {
14
+ options: Options;
15
+ pickObject?: THREE.Sprite;
16
+ object3d: CSS2DObject;
17
+ element: HTMLDivElement;
18
+ constructor(options: Options);
19
+ get clickTarge(): HTMLDivElement[];
20
+ create(): void;
21
+ getMaterial(show: boolean): Promise<THREE.SpriteMaterial>;
22
+ createPickObject({ show, scale, position, cache, }: {
23
+ show?: boolean;
24
+ scale?: THREE.Vector3;
25
+ position?: THREE.Vector3;
26
+ cache?: Cache;
27
+ }): Promise<void>;
28
+ dispose(): void;
29
+ }
30
+ export default Node;
@@ -0,0 +1,23 @@
1
+ import * as THREE from 'three';
2
+ import BaseObject from '../../core/BaseObject';
3
+ interface Options {
4
+ position: THREE.Vector3;
5
+ text: string;
6
+ fontSize?: number;
7
+ scale?: number;
8
+ fontFamily?: string;
9
+ fontWeight?: string;
10
+ flipX?: boolean;
11
+ lookAt?: THREE.Vector3;
12
+ sprite?: boolean;
13
+ sizeAttenuation?: boolean;
14
+ }
15
+ export default class extends BaseObject {
16
+ options: Omit<Required<Options>, 'lookAt'> & Pick<Options, 'lookAt'>;
17
+ width: number;
18
+ canvas: HTMLCanvasElement;
19
+ constructor(options: Options);
20
+ create(): void;
21
+ setText(t: string, options?: Pick<Options, 'fontSize' | 'fontFamily' | 'flipX'>): void;
22
+ }
23
+ export {};
@@ -0,0 +1,31 @@
1
+ import * as THREE from 'three';
2
+ import BaseObject from '../../core/BaseObject';
3
+ import Cache from '../../plugins/Cache';
4
+ interface Options {
5
+ src: string;
6
+ scale?: number;
7
+ position?: THREE.Vector3;
8
+ cache?: Cache;
9
+ transparent?: boolean;
10
+ blending?: THREE.Blending;
11
+ depthWrite?: boolean;
12
+ alphaTest?: number;
13
+ autoPlay?: boolean;
14
+ loop?: boolean;
15
+ format?: THREE.PixelFormat;
16
+ sprite?: boolean;
17
+ }
18
+ export default class extends BaseObject {
19
+ options: Options & {
20
+ autoPlay: boolean;
21
+ loop: boolean;
22
+ };
23
+ video: HTMLVideoElement;
24
+ constructor(options: Options);
25
+ getMaterial(): Promise<any>;
26
+ create(): Promise<void>;
27
+ setScale(n: number): void;
28
+ render(): void;
29
+ dispose(): void;
30
+ }
31
+ export {};
@@ -0,0 +1,8 @@
1
+ export default class {
2
+ cache: Map<any, any>;
3
+ install(): void;
4
+ init(key: string): void;
5
+ get(key: string): any;
6
+ set(key: string, value: any): void;
7
+ dispose(): void;
8
+ }
@@ -0,0 +1,8 @@
1
+ export default class DataController<T> {
2
+ data: Partial<T>;
3
+ install(): void;
4
+ cb?: (type: keyof T) => void;
5
+ setData(key: keyof T, value: any): void;
6
+ runAll(): void;
7
+ dispose(): void;
8
+ }
@@ -0,0 +1,35 @@
1
+ import { IBaseObject } from '../core/BaseObject';
2
+ import Pencil from '../core/Pencil';
3
+ declare type KeyOf<T extends object> = Extract<keyof T, string>;
4
+ export default class Draw<T extends {
5
+ [key: string]: new (...args: any[]) => IBaseObject;
6
+ }> {
7
+ pencil: Pencil;
8
+ private objects_;
9
+ private objectNamesToFactories;
10
+ private objects;
11
+ get objectsPromise(): Promise<any>[];
12
+ constructor(objects: T);
13
+ install(pencil: Pencil): void;
14
+ initObjectFactories(): void;
15
+ getObject<Y extends KeyOf<T>>(nameOrigin: Y, options?: {
16
+ key: string;
17
+ }): InstanceType<T[Y]> | undefined;
18
+ getAllObject<Y extends KeyOf<T>>(nameOrigin: Y, options?: {
19
+ key: string;
20
+ }): InstanceType<T[Y]>[];
21
+ draw<Y extends KeyOf<T>, U extends KeyOf<T> | `${KeyOf<T>}#${string}` | IBaseObject>(nameOrigin: Y, options?: ConstructorParameters<T[Y]>[0] extends undefined ? {
22
+ key?: string;
23
+ target?: U;
24
+ } : ConstructorParameters<T[Y]>[0] & {
25
+ key?: string;
26
+ target?: U;
27
+ }, target?: U): Promise<InstanceType<T[Y]>>;
28
+ private addMesh;
29
+ erase(...args: (KeyOf<T> | `${KeyOf<T>}#${string}` | InstanceType<T[keyof T]>)[]): void;
30
+ private removeMesh;
31
+ update(delta: number, elapsed: number): void;
32
+ setSize(width: number, height: number): void;
33
+ dispose(): void;
34
+ }
35
+ export {};
@@ -0,0 +1,31 @@
1
+ declare type GetWk = () => Worker;
2
+ interface Options {
3
+ cache?: boolean;
4
+ cacheVersion?: string;
5
+ }
6
+ export default class {
7
+ workerList: {
8
+ worker: Worker;
9
+ inUse: boolean;
10
+ }[];
11
+ options: Required<Options>;
12
+ constructor(options?: Options);
13
+ install(): void;
14
+ init(scriptURL: string | GetWk, length: number): void;
15
+ messageList: {
16
+ req: Record<string, any>;
17
+ options: {
18
+ cb: any;
19
+ cacheVersion?: string;
20
+ };
21
+ uuid: string;
22
+ inUse: boolean;
23
+ }[];
24
+ postMessage(req: Record<string, any>, options: {
25
+ cb: any;
26
+ cacheVersion?: string;
27
+ }): void;
28
+ checkMessage(): void;
29
+ dispose(): void;
30
+ }
31
+ export {};
@@ -0,0 +1,4 @@
1
+ export { default as Cache } from './Cache';
2
+ export { default as Draw } from './Draw';
3
+ export { default as Data } from './Data';
4
+ export { default as Wk } from './Worker';