three-base 1.0.62 → 1.0.65

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 (47) hide show
  1. package/lib/ApngTexture.js +61 -0
  2. package/lib/ApngTextureManage.js +87 -0
  3. package/lib/EventMesh.js +59 -0
  4. package/lib/ExtrudeMesh.js +362 -0
  5. package/lib/FPScontrol.js +170 -0
  6. package/lib/InstancedGroupMesh.js +63 -0
  7. package/lib/KeyFrameAnimation.js +78 -0
  8. package/lib/PlaneText.js +30 -0
  9. package/lib/PointLight.js +64 -0
  10. package/lib/Sky/Sky.js +28 -0
  11. package/lib/Text3D/Text3D.js +61 -0
  12. package/lib/Text3D/Text3D.ts +3 -3
  13. package/lib/Text3D/fontController.js +200 -0
  14. package/lib/ThreeBase.js +393 -0
  15. package/lib/ThreeMouse.js +357 -0
  16. package/lib/Transition.js +193 -0
  17. package/lib/index.d.ts +22 -0
  18. package/lib/keyContorls.js +98 -0
  19. package/lib/lib/ApngTexture.d.ts +13 -0
  20. package/lib/lib/ApngTextureManage.d.ts +18 -0
  21. package/lib/lib/EventMesh.d.ts +18 -0
  22. package/lib/lib/ExtrudeMesh.d.ts +111 -0
  23. package/lib/lib/FPScontrol.d.ts +44 -0
  24. package/lib/lib/InstancedGroupMesh.d.ts +10 -0
  25. package/lib/lib/KeyFrameAnimation.d.ts +25 -0
  26. package/lib/lib/PlaneText.d.ts +37 -0
  27. package/lib/lib/PointLight.d.ts +13 -0
  28. package/lib/lib/Sky/Sky.d.ts +13 -0
  29. package/lib/lib/Text3D/Text3D.d.ts +20 -0
  30. package/lib/lib/Text3D/fontController.d.ts +59 -0
  31. package/lib/lib/ThreeBase.d.ts +59 -0
  32. package/lib/lib/ThreeMouse.d.ts +39 -0
  33. package/lib/lib/Transition.d.ts +45 -0
  34. package/lib/lib/keyContorls.d.ts +25 -0
  35. package/lib/lib/planeModal1/PlaneModal1.d.ts +32 -0
  36. package/lib/lib/shaders.d.ts +17 -0
  37. package/lib/lib/spriteModal1/SpriteModal1.d.ts +31 -0
  38. package/lib/lib/threeLoader.d.ts +20 -0
  39. package/lib/lib/threeUtils.d.ts +41 -0
  40. package/lib/lib/type.d.ts +0 -0
  41. package/lib/planeModal1/PlaneModal1.js +104 -0
  42. package/lib/shaders.js +245 -0
  43. package/lib/spriteModal1/SpriteModal1.js +109 -0
  44. package/lib/threeLoader.js +110 -0
  45. package/lib/threeUtils.js +179 -0
  46. package/lib/type.js +10 -0
  47. package/package.json +2 -4
@@ -0,0 +1,18 @@
1
+ import { Texture, TextureLoader } from "three";
2
+ /**
3
+ * apng 纹理管理对象
4
+ */
5
+ declare class apngTextureManage {
6
+ constructor();
7
+ static TextureLoader: TextureLoader;
8
+ static isInit: boolean;
9
+ static TimeTemp: number;
10
+ playTimes: Map<any, any>;
11
+ anpgTextList: {
12
+ [key: string]: Texture[];
13
+ };
14
+ getTexture(path: string): Texture;
15
+ loadApng(url: string): Promise<void>;
16
+ }
17
+ declare const ApngTextureManage: apngTextureManage;
18
+ export default ApngTextureManage;
@@ -0,0 +1,18 @@
1
+ import { BoxGeometry, BufferGeometry, CylinderGeometry, Material, Mesh, MeshNormalMaterial } from "three";
2
+ export declare enum CollisionShaere {
3
+ cube = "cube",
4
+ cylinder = "cylinder"
5
+ }
6
+ /**
7
+ * 碰撞检测用的模型
8
+ */
9
+ export default class EventMesh extends Mesh<BufferGeometry, Material> {
10
+ constructor(type?: CollisionShaere);
11
+ static type: typeof CollisionShaere;
12
+ static material: MeshNormalMaterial;
13
+ renderOrder: number;
14
+ static cubeGeo: BoxGeometry;
15
+ static cylinderGeo: CylinderGeometry;
16
+ isEventMesh: boolean;
17
+ setType(type: CollisionShaere): void;
18
+ }
@@ -0,0 +1,111 @@
1
+ import { BufferGeometry, Material, Matrix4, Mesh, Vector2, Vector3 } from "three";
2
+ export type ExtrudePath = {
3
+ vector3: [number, number, number];
4
+ radius: number;
5
+ segments: number;
6
+ scale: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ name: string;
11
+ };
12
+ export interface ExtrudeMeshProps {
13
+ paths: Array<ExtrudePath>;
14
+ shapePath: Array<[number, number]>;
15
+ closed: boolean;
16
+ }
17
+ /**
18
+ * 挤出模型
19
+ * 此组件适合自动生成 公路 河流山川等 2d 平面上的模型
20
+ *
21
+ * @export
22
+ * @class ExtrudeMesh
23
+ * @extends {Mesh<BufferGeometry, Material>}
24
+ */
25
+ export default class ExtrudeMesh extends Mesh<BufferGeometry, Material> {
26
+ static temp1Vector2: Vector2;
27
+ static temp2Vector2: Vector2;
28
+ static temp3Vector2: Vector2;
29
+ static tempVector3: Vector3;
30
+ static temp1Vector3: Vector3;
31
+ static temp2Vector3: Vector3;
32
+ static temp3Vector3: Vector3;
33
+ static temp1Matrix4: Matrix4;
34
+ static temp2Matrix4: Matrix4;
35
+ static temp3Matrix4: Matrix4;
36
+ constructor(props: ExtrudeMeshProps, material?: Material);
37
+ pointerWidthRadius: Array<{
38
+ vector3: [number, number, number];
39
+ matrix: [
40
+ number,
41
+ number,
42
+ number,
43
+ number,
44
+ number,
45
+ number,
46
+ number,
47
+ number,
48
+ number,
49
+ number,
50
+ number,
51
+ number,
52
+ number,
53
+ number,
54
+ number,
55
+ number
56
+ ];
57
+ }>;
58
+ computerMatrix(vector1: [number, number, number], vector2: [number, number, number], scale: [number, number, number]): import("three").Matrix4Tuple;
59
+ /**
60
+ * @计算渐变值 computerGradient([3,2,4], 0.3);
61
+ * @渐变区间 values:number[]
62
+ * @百分比 percentage:number
63
+ */
64
+ computerGradient(values: number[], percentage: number): number;
65
+ computerPointerWidthRadius(paths: Array<ExtrudePath>, closed: boolean): void;
66
+ computerPathLength(points: [number, number, number][]): number;
67
+ setExtrudeMesh(startP: [number, number, number], // 起点位置
68
+ startMatrix4: [
69
+ number,
70
+ number,
71
+ number,
72
+ number,
73
+ number,
74
+ number,
75
+ number,
76
+ number,
77
+ number,
78
+ number,
79
+ number,
80
+ number,
81
+ number,
82
+ number,
83
+ number,
84
+ number
85
+ ], // 起点位置的矩阵
86
+ endP: [number, number, number], // 终点位置
87
+ endMatrix4: [
88
+ number,
89
+ number,
90
+ number,
91
+ number,
92
+ number,
93
+ number,
94
+ number,
95
+ number,
96
+ number,
97
+ number,
98
+ number,
99
+ number,
100
+ number,
101
+ number,
102
+ number,
103
+ number
104
+ ], // 终点位置的矩阵
105
+ uvx: number, // uv.x 的起始位置
106
+ shapePath: Array<[number, number]>): {
107
+ geometryPoint: number[];
108
+ uvPoint: number[];
109
+ };
110
+ updateGeometry(props: ExtrudeMeshProps): void;
111
+ }
@@ -0,0 +1,44 @@
1
+ import { Camera, Clock, EventDispatcher, Object3D, Vector3 } from "three";
2
+ import { Capsule } from "three/examples/jsm/math/Capsule";
3
+ import { Octree } from "three/examples/jsm/math/Octree";
4
+ /**
5
+ * 第一人称控制器
6
+ *
7
+ * @export
8
+ * @class FPScontrol
9
+ * @extends {EventDispatcher}
10
+ */
11
+ export default class FPScontrol extends EventDispatcher {
12
+ canvas: HTMLCanvasElement;
13
+ constructor(camera: Camera, canvas: HTMLCanvasElement);
14
+ enable: boolean;
15
+ GRAVITY: number;
16
+ STEPS_PER_FRAME: number;
17
+ camera: Camera;
18
+ worldOctree: Octree;
19
+ playerCollider: Capsule;
20
+ clock: Clock;
21
+ playerVelocity: Vector3;
22
+ playerDirection: Vector3;
23
+ playerOnFloor: boolean;
24
+ mouseTime: number;
25
+ isMousedown: boolean;
26
+ keyStates: {
27
+ [key: string]: boolean;
28
+ };
29
+ init(canvas: HTMLCanvasElement): void;
30
+ keydown: (event: KeyboardEvent) => void;
31
+ keyup: (event: KeyboardEvent) => void;
32
+ mousedown: () => void;
33
+ mouseup: () => void;
34
+ mousemove: (event: MouseEvent) => void;
35
+ fromGraphNode(object3d: Object3D): void;
36
+ getForwardVector: () => Vector3;
37
+ getSideVector: () => Vector3;
38
+ controls: (deltaTime: number) => void;
39
+ updatePlayer: (deltaTime: number) => void;
40
+ playerCollisions(): void;
41
+ teleportPlayerIfOob: () => void;
42
+ update(): void;
43
+ disposer(): void;
44
+ }
@@ -0,0 +1,10 @@
1
+ import * as THREE from 'three';
2
+ export default class InstancedGroupMesh extends THREE.Mesh {
3
+ isInstancedGroupMesh: boolean;
4
+ count: number;
5
+ meshCollect: Record<string, THREE.Mesh[]>;
6
+ instanceCollect: Record<string, THREE.InstancedMesh>;
7
+ static matrix: THREE.Matrix4;
8
+ constructor(group: THREE.Group, count: number);
9
+ setMatrixAt(index: number, matrix: THREE.Matrix4): void;
10
+ }
@@ -0,0 +1,25 @@
1
+ import { Euler, Line, LineBasicMaterial, Object3D, Vector3 } from "three";
2
+ export type Keyframe = {
3
+ position: Vector3;
4
+ scale: Vector3;
5
+ rotation: Euler;
6
+ timeTemp: number;
7
+ };
8
+ export type KeyframeAnimationProps = {
9
+ speedScale?: number;
10
+ object3d: Object3D;
11
+ keyframes: Array<Keyframe>;
12
+ };
13
+ export default class KeyframeAnimation extends Object3D {
14
+ constructor(props: KeyframeAnimationProps);
15
+ speedScale: number;
16
+ object3d: Object3D;
17
+ halperLine: Line<any, LineBasicMaterial>;
18
+ keyframes: Array<Keyframe>;
19
+ setObject3D(object3d: Object3D): void;
20
+ getKeyframe(i: number): Keyframe;
21
+ setKeyframe(i: number, keyframe: Keyframe): void;
22
+ setKeyframes(keyframes: Array<Keyframe>): void;
23
+ update(): void;
24
+ updateMatrix(): void;
25
+ }
@@ -0,0 +1,37 @@
1
+ import { Mesh, MeshBasicMaterial, PlaneGeometry, Vector3 } from "three";
2
+ import SpriteText from "three-spritetext";
3
+ type Props = {
4
+ text?: string;
5
+ textHeight?: number;
6
+ color?: string;
7
+ backgroundColor?: string;
8
+ fontFace?: string;
9
+ fontSize?: number;
10
+ fontWeight?: string;
11
+ padding?: number | [number, number];
12
+ borderWidth?: number;
13
+ borderRadius?: number;
14
+ borderColor?: string;
15
+ strokeWidth?: number;
16
+ strokeColor?: string;
17
+ };
18
+ export default class PlaneText extends Mesh {
19
+ constructor(text?: string);
20
+ type: string;
21
+ static geometry: PlaneGeometry;
22
+ spriteText: SpriteText;
23
+ material: MeshBasicMaterial;
24
+ set(parame: Props): void;
25
+ get(prop: keyof SpriteText): string | number | boolean | import("three").BufferGeometry | import("three").Matrix3 | import("three").Matrix4 | import("three").Material | import("three").Object3D<import("three").Event> | Vector3 | import("three").Object3D<import("three").Event>[] | import("three").Euler | import("three").Quaternion | import("three").Layers | import("three").AnimationClip[] | {
26
+ [key: string]: any;
27
+ } | ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: import("three").BufferGeometry, material: import("three").Material, group: import("three").Group) => void) | ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: import("three").BufferGeometry, material: import("three").Material, group: import("three").Group) => void) | ((matrix: import("three").Matrix4) => void) | ((axis: Vector3, angle: number) => void) | ((euler: import("three").Euler) => void) | ((m: import("three").Matrix4) => void) | ((q: import("three").Quaternion) => void) | ((vector: Vector3) => Vector3) | ((vector: Vector3) => Vector3) | {
28
+ (vector: Vector3): void;
29
+ (x: number, y: number, z: number): void;
30
+ } | ((id: number) => import("three").Object3D<import("three").Event>) | ((name: string) => import("three").Object3D<import("three").Event>) | ((name: string, value: any) => import("three").Object3D<import("three").Event>) | ((name: string, value: any) => import("three").Object3D<import("three").Event>[]) | ((target: Vector3) => Vector3) | ((target: import("three").Quaternion) => import("three").Quaternion) | ((target: Vector3) => Vector3) | ((target: Vector3) => Vector3) | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | (() => void) | ((force?: boolean) => void) | ((updateParents: boolean, updateChildren: boolean) => void) | ((meta?: {
31
+ geometries: any;
32
+ materials: any;
33
+ textures: any;
34
+ images: any;
35
+ }) => any) | ((event: import("three").Event) => void) | import("three").Vector2 | import("three").SpriteMaterial | ((quaternion: import("three").Quaternion) => SpriteText) | ((axis: Vector3, angle: number) => SpriteText) | ((axis: Vector3, angle: number) => SpriteText) | ((angle: number) => SpriteText) | ((angle: number) => SpriteText) | ((angle: number) => SpriteText) | ((axis: Vector3, distance: number) => SpriteText) | ((distance: number) => SpriteText) | ((distance: number) => SpriteText) | ((distance: number) => SpriteText) | ((...object: import("three").Object3D<import("three").Event>[]) => SpriteText) | ((...object: import("three").Object3D<import("three").Event>[]) => SpriteText) | (() => SpriteText) | (() => SpriteText) | ((object: import("three").Object3D<import("three").Event>) => SpriteText) | ((raycaster: import("three").Raycaster, intersects: import("three").Intersection<import("three").Object3D<import("three").Event>>[]) => void) | ((recursive?: boolean) => SpriteText) | ((source: SpriteText) => SpriteText) | (<T extends string>(type: T, listener: import("three").EventListener<import("three").Event, T, SpriteText>) => void) | (<T_1 extends string>(type: T_1, listener: import("three").EventListener<import("three").Event, T_1, SpriteText>) => boolean) | (<T_2 extends string>(type: T_2, listener: import("three").EventListener<import("three").Event, T_2, SpriteText>) => void);
36
+ }
37
+ export {};
@@ -0,0 +1,13 @@
1
+ import { PointLight as THREEPointLight } from "three";
2
+ import threeSpritetext from "three-spritetext";
3
+ /**
4
+ * 点光源
5
+ * @export
6
+ * @class PointLight
7
+ * @extends {THREEPointLight}
8
+ */
9
+ export default class PointLight extends THREEPointLight {
10
+ constructor(color?: string, intensity?: number, distance?: number, decay?: number);
11
+ sphere: void;
12
+ label: threeSpritetext;
13
+ }
@@ -0,0 +1,13 @@
1
+ import { Mesh, MeshBasicMaterial, SphereGeometry } from "three";
2
+ /**
3
+ * 天空球
4
+ */
5
+ export default class Sky extends Mesh {
6
+ constructor();
7
+ static geometry: SphereGeometry;
8
+ material: MeshBasicMaterial;
9
+ /**
10
+ *设置贴图
11
+ */
12
+ setMap(src: string): void;
13
+ }
@@ -0,0 +1,20 @@
1
+ import { Mesh, MeshStandardMaterial } from "three";
2
+ export type Text3DProps = {
3
+ text?: string;
4
+ fontType?: string;
5
+ size?: number | undefined;
6
+ height?: number | undefined;
7
+ curveSegments?: number | undefined;
8
+ bevelEnabled?: boolean | undefined;
9
+ bevelThickness?: number | undefined;
10
+ bevelSize?: number | undefined;
11
+ bevelOffset?: number | undefined;
12
+ bevelSegments?: number | undefined;
13
+ };
14
+ export default class Text3D extends Mesh {
15
+ constructor(text?: string);
16
+ static path: string;
17
+ material: MeshStandardMaterial;
18
+ _config: Text3DProps;
19
+ setText(text3DProps: Text3DProps): void;
20
+ }
@@ -0,0 +1,59 @@
1
+ import Dexie, { Table } from "dexie";
2
+ import { Font } from "three/examples/jsm/loaders/FontLoader.js";
3
+ export type saveFontParam = {
4
+ fontType?: string;
5
+ fontName: string;
6
+ fontJson: any;
7
+ };
8
+ export type addFontFamilyParam = {
9
+ fontType?: string;
10
+ fontFamilyJson: any;
11
+ };
12
+ export type getFontParam = {
13
+ fontType?: string;
14
+ fontName: string;
15
+ };
16
+ export type loadTextParam = {
17
+ fontBasePath: string;
18
+ fontType?: string;
19
+ text?: string;
20
+ callback?: (font: Font) => void;
21
+ };
22
+ declare class indexBD extends Dexie {
23
+ constructor(dbName: string);
24
+ threeFont: Table;
25
+ }
26
+ declare class fontContorl {
27
+ constructor();
28
+ THREEFontMap: Map<string, Font>;
29
+ fontBD: indexBD;
30
+ /**
31
+ * 保存 字体json到本地数据库中
32
+ * @param {saveFontParam} { fontType = "simhei", fontName, fontJson }
33
+ * @memberof fontContorl
34
+ */
35
+ saveFont({ fontType, fontName, fontJson }: saveFontParam): Promise<void>;
36
+ /**
37
+ * 通过 fontType 和 fontName 查询 fontJson
38
+ * @param {getFontParam} { fontType = "simhei", fontName }
39
+ * @returns
40
+ * @memberof fontContorl
41
+ */
42
+ getFont({ fontType, fontName }: getFontParam): Promise<any>;
43
+ _loadTextCall: Map<string, Array<() => void>>;
44
+ loadText({ fontType, text, fontBasePath, callback }: loadTextParam): Promise<void>;
45
+ _loadFontIndexJson({ fontType, fontBasePath }: loadTextParam): Promise<void>;
46
+ _loadFontJson({ fontType, fontName, fontBasePath }: {
47
+ fontType: string;
48
+ fontName: string;
49
+ fontBasePath: string;
50
+ }): Promise<void>;
51
+ hasFont({ fontType, fontName }: {
52
+ fontType: string;
53
+ fontName: string;
54
+ }): boolean;
55
+ addFont({ fontType, fontName, fontJson }: saveFontParam): void;
56
+ addFontFamily({ fontType, fontFamilyJson }: addFontFamilyParam): void;
57
+ }
58
+ declare const fontContorller: fontContorl;
59
+ export default fontContorller;
@@ -0,0 +1,59 @@
1
+ import { BufferGeometry, EventDispatcher, Object3D, PerspectiveCamera, Scene, Texture, Vector2, Vector3, WebGLRenderer, WebGLRenderTarget } from "three";
2
+ import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
3
+ import ThreeMouse from "./ThreeMouse";
4
+ import Transition from "./Transition";
5
+ export default class ThreeBase extends EventDispatcher {
6
+ constructor();
7
+ renderTarget: WebGLRenderTarget;
8
+ renderTarget2: WebGLRenderTarget;
9
+ tempVector2: Vector2;
10
+ tempVector3: Vector3;
11
+ size: Vector2;
12
+ renderer: WebGLRenderer;
13
+ camera: PerspectiveCamera;
14
+ scene: Scene;
15
+ threeMouse: ThreeMouse;
16
+ controls: OrbitControls;
17
+ isRendererContextLost: boolean;
18
+ setContainer(div: HTMLDivElement | null): Promise<void>;
19
+ resize(width: number, height: number): void;
20
+ controlsPosition: Transition;
21
+ controlsCenter: Transition;
22
+ init(): void;
23
+ resetLookAt({ position, center, }: {
24
+ position?: Vector3;
25
+ center?: Vector3;
26
+ }): void;
27
+ setLookAt({ position, center, duration }: {
28
+ position?: Vector3;
29
+ center?: Vector3;
30
+ duration?: number;
31
+ }): Promise<void>;
32
+ getLookAt(): {
33
+ center: Vector3;
34
+ position: Vector3;
35
+ centerPosition: string;
36
+ };
37
+ v3tov2(v3: Vector3): Vector2;
38
+ controlType: "OrbitControls" | "MapControls";
39
+ originScreenSpacePanning: boolean;
40
+ setControlType(controlType: "OrbitControls" | "MapControls"): void;
41
+ autoRender: boolean;
42
+ needRender: boolean;
43
+ stopRender(): void;
44
+ render(): void;
45
+ renderBindThis: any;
46
+ download(fileName?: string): void;
47
+ private _preMesh;
48
+ private _preRT;
49
+ preloadTexture(src: string): Promise<void>;
50
+ preloadGeometry(geometry: BufferGeometry): Promise<void>;
51
+ clearRendererTargte(rendererTarget: WebGLRenderTarget | null): void;
52
+ copyTextureToRenderTarget(texture: Texture, rendererTarget: WebGLRenderTarget | null, alpha?: boolean, opactity?: number): void;
53
+ object3dToRendererTarget(obj: Object3D, rendererTarget: WebGLRenderTarget): void;
54
+ rendererTagetAddStroke(rendererTarget: WebGLRenderTarget, strockWidth: number, color: string, opacity: number): void;
55
+ renderObject3dStroke(obj: Object3D, strockWidth: number, color: string, opacity: number): void;
56
+ renderTargetgaussBlur(rendererTarget: WebGLRenderTarget, radius: number, opacity: number): void;
57
+ renderTargetAddGlow(renderTarget: WebGLRenderTarget, width: number, color: string): void;
58
+ renderRendererTarget(renderTarget: WebGLRenderTarget, alpha?: boolean): void;
59
+ }
@@ -0,0 +1,39 @@
1
+ import * as THREE from "three";
2
+ import { Object3D, Scene } from "three";
3
+ import type { Intersection } from "three";
4
+ export interface ThreeMouseEvent extends Intersection {
5
+ renderer: THREE.Renderer;
6
+ camera: THREE.Camera;
7
+ type: string;
8
+ offsetX: number;
9
+ offsetY: number;
10
+ x: number;
11
+ y: number;
12
+ }
13
+ /**
14
+ * harp.gl 专用的鼠标拾取模型对象
15
+ */
16
+ export default class ThreeMouse {
17
+ constructor(renderer: THREE.WebGLRenderer, camera: THREE.Camera, scene: THREE.Scene);
18
+ _renderer: THREE.WebGLRenderer;
19
+ _camera: THREE.Camera;
20
+ _scene: Scene;
21
+ _mosePosition: THREE.Vector2;
22
+ _mouseDownPosition: THREE.Vector2;
23
+ _mesh_on?: Object3D;
24
+ _mesh_Down?: Object3D;
25
+ _raycaster: THREE.Raycaster;
26
+ _frame: number;
27
+ _mouseInRenderer: boolean;
28
+ _mousemoveEvent?: MouseEvent;
29
+ _object3ds: Object3D[];
30
+ _click_num: number;
31
+ _getSelected(object3ds: Object3D[]): Intersection | undefined;
32
+ hasEvent(object?: Object3D, types?: Array<"leftclick" | "rightclick" | "click" | "dbclick" | "mouseenter" | "mouseleave" | "mousemove" | "mousedown" | "mouseup">): boolean;
33
+ hasCursor(object?: Object3D): boolean;
34
+ dispatchEvent(): void;
35
+ _mouseleave: (e: MouseEvent) => void;
36
+ _mousemove: (e: MouseEvent) => void;
37
+ _mousedown: (e: MouseEvent) => void;
38
+ _mouseup: import("lodash").DebouncedFunc<(e: PointerEvent) => Promise<void>>;
39
+ }
@@ -0,0 +1,45 @@
1
+ interface TParam {
2
+ [key: string]: number;
3
+ }
4
+ export default class Transition {
5
+ /**
6
+ *Creates an instance of transition.
7
+ * @param {{ [key: string]: number }} // 初始值
8
+ * @param {[0.8, 0, 0.2, 1]} // 贝塞尔曲线
9
+ * @param {number} [duration=1000] // 过渡时间
10
+ * @memberof transition
11
+ */
12
+ constructor(param?: TParam, bezier?: [number, number, number, number], duration?: number);
13
+ _keys: Array<string>;
14
+ _bezier: [number, number, number, number];
15
+ _Xbezier: [number, number, number, number];
16
+ _Ybezier: [number, number, number, number];
17
+ setBezier(bezier?: [number, number, number, number]): this;
18
+ timeTemp: number;
19
+ _duration: number;
20
+ _delay: number;
21
+ setDuration(duration?: number): this;
22
+ setDelay(delay?: number): this;
23
+ _: {
24
+ [key: string]: number;
25
+ };
26
+ onChangeCall?: (josn: {
27
+ [key: string]: number;
28
+ }) => void;
29
+ run({ timeTemp }: any): this;
30
+ runbindThis: any;
31
+ onChange(onChangeCall: (josn: {
32
+ [key: string]: number;
33
+ }) => void): this;
34
+ get(key: string | number): number;
35
+ set(param: TParam): Promise<this>;
36
+ reset(param: TParam): this;
37
+ getKeys(): string[];
38
+ hasKey(key: string): boolean;
39
+ getJson(): {
40
+ [key: string]: number;
41
+ };
42
+ _isDone: boolean;
43
+ isDone(): boolean;
44
+ }
45
+ export {};
@@ -0,0 +1,25 @@
1
+ import { Event, EventDispatcher, EventListener, Vector3 } from "three";
2
+ /**
3
+ * 键盘 使用 ↑↓←→ 控制 x z 方向, 小键盘 1 0 控制 y 方向
4
+ *
5
+ * @class KeyContorls
6
+ * @extends {EventDispatcher}
7
+ */
8
+ declare class KeyContorls extends EventDispatcher {
9
+ constructor();
10
+ uuid: string;
11
+ direction: Vector3;
12
+ add(e: any): void;
13
+ delete(e: any): void;
14
+ enter(e: any): void;
15
+ keyDown: (e: any) => void;
16
+ _listeners?: {
17
+ [key: string]: Array<any>;
18
+ };
19
+ removeEvent: import("lodash").DebouncedFunc<(type: string) => void>;
20
+ addEventListener<T extends string>(type: T, listener: EventListener<Event, T, this>): void;
21
+ addEvent(): void;
22
+ dispose(): void;
23
+ }
24
+ declare const keyContorls: KeyContorls;
25
+ export default keyContorls;
@@ -0,0 +1,32 @@
1
+ import { MeshBasicMaterial, Mesh, CanvasTexture, PlaneGeometry } from "three";
2
+ export type PlaneModal1Config = {
3
+ size?: number;
4
+ title?: string;
5
+ titleColor?: string;
6
+ texts?: Array<{
7
+ text?: string;
8
+ color?: string;
9
+ size?: number;
10
+ }>;
11
+ };
12
+ export default class PlaneModal1 extends Mesh {
13
+ constructor(config?: PlaneModal1Config);
14
+ renderOrder: number;
15
+ geometry: PlaneGeometry;
16
+ material: MeshBasicMaterial;
17
+ static img: HTMLImageElement;
18
+ canvas: HTMLCanvasElement;
19
+ context: CanvasRenderingContext2D;
20
+ texture: CanvasTexture;
21
+ _config: {
22
+ size: number;
23
+ title: string;
24
+ titleColor: string;
25
+ texts: Array<{
26
+ text: string;
27
+ color: string;
28
+ size: number;
29
+ }>;
30
+ };
31
+ updata(config: PlaneModal1Config): Promise<void>;
32
+ }
@@ -0,0 +1,17 @@
1
+ import { Mesh, OrthographicCamera, ShaderMaterial, WebGLRenderer } from "three";
2
+ declare class FullScreenQuad {
3
+ constructor();
4
+ _mesh: Mesh;
5
+ dispose(): void;
6
+ render(renderer: WebGLRenderer): void;
7
+ get material(): import("three").Material | import("three").Material[];
8
+ set material(value: import("three").Material | import("three").Material[]);
9
+ }
10
+ export declare const fullScreenMesh: FullScreenQuad;
11
+ export declare const orthographicCamera: OrthographicCamera;
12
+ export declare const clearShader: ShaderMaterial;
13
+ export declare const intersectionShader: ShaderMaterial;
14
+ export declare const coptyShader: ShaderMaterial;
15
+ export declare const strokeShader: ShaderMaterial;
16
+ export declare const gaussBlurShader: ShaderMaterial;
17
+ export {};
@@ -0,0 +1,31 @@
1
+ import { Sprite, CanvasTexture, Raycaster, Intersection } from "three";
2
+ export type SpritModal1Config = {
3
+ size?: number;
4
+ title?: string;
5
+ titleColor?: string;
6
+ texts?: Array<{
7
+ text?: string;
8
+ color?: string;
9
+ size?: number;
10
+ }>;
11
+ };
12
+ export default class SpritModal1 extends Sprite {
13
+ constructor(config?: SpritModal1Config);
14
+ renderOrder: number;
15
+ static img: HTMLImageElement;
16
+ canvas: HTMLCanvasElement;
17
+ context: CanvasRenderingContext2D;
18
+ texture: CanvasTexture;
19
+ _config: {
20
+ size: number;
21
+ title: string;
22
+ titleColor: string;
23
+ texts: Array<{
24
+ text: string;
25
+ color: string;
26
+ size: number;
27
+ }>;
28
+ };
29
+ updata(config: SpritModal1Config): Promise<void>;
30
+ raycast(raycaster: Raycaster, intersects: Intersection[]): void;
31
+ }
@@ -0,0 +1,20 @@
1
+ import { EventDispatcher, Texture, TextureLoader } from "three";
2
+ import { FBXLoader } from "three/examples/jsm/loaders/FBXLoader";
3
+ import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
4
+ import { MTLLoader } from "three/examples/jsm/loaders/MTLLoader";
5
+ import { OBJLoader } from "three/examples/jsm/loaders/OBJLoader";
6
+ declare class ThreeLoader extends EventDispatcher {
7
+ constructor();
8
+ anisotropy: number;
9
+ setAnisotropy(v: number): void;
10
+ textureMap: Map<string, Texture>;
11
+ textureLoader: TextureLoader;
12
+ getTexture(src: string): Texture;
13
+ fbxLoader: FBXLoader;
14
+ objLoader: OBJLoader;
15
+ mtlLoader: MTLLoader;
16
+ gltfLoader: GLTFLoader;
17
+ onload: boolean;
18
+ }
19
+ declare const threeLoader: ThreeLoader;
20
+ export default threeLoader;