three-base 1.129.15 → 2.0.1

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 (91) hide show
  1. package/README.md +1 -0
  2. package/index.js +1 -37
  3. package/index.ts +1 -61
  4. package/package.json +3 -4
  5. package/lib/ApngTexture.d.ts +0 -13
  6. package/lib/ApngTexture.js +0 -61
  7. package/lib/ApngTexture.ts +0 -91
  8. package/lib/ApngTextureManage.d.ts +0 -18
  9. package/lib/ApngTextureManage.js +0 -87
  10. package/lib/ApngTextureManage.ts +0 -130
  11. package/lib/EventMesh.d.ts +0 -18
  12. package/lib/EventMesh.js +0 -59
  13. package/lib/EventMesh.ts +0 -79
  14. package/lib/ExtrudeMesh.d.ts +0 -111
  15. package/lib/ExtrudeMesh.js +0 -363
  16. package/lib/ExtrudeMesh.ts +0 -571
  17. package/lib/FPScontrol.d.ts +0 -44
  18. package/lib/FPScontrol.js +0 -170
  19. package/lib/FPScontrol.ts +0 -209
  20. package/lib/InstancedGroupMesh.d.ts +0 -10
  21. package/lib/InstancedGroupMesh.js +0 -63
  22. package/lib/InstancedGroupMesh.ts +0 -80
  23. package/lib/KeyFrameAnimation.d.ts +0 -25
  24. package/lib/KeyFrameAnimation.js +0 -78
  25. package/lib/KeyFrameAnimation.ts +0 -122
  26. package/lib/PlaneText.d.ts +0 -37
  27. package/lib/PlaneText.js +0 -30
  28. package/lib/PlaneText.ts +0 -58
  29. package/lib/PlaneWithHtml.d.ts +0 -11
  30. package/lib/PlaneWithHtml.js +0 -67
  31. package/lib/PlaneWithHtml.ts +0 -84
  32. package/lib/PointLight/PointLight.d.ts +0 -13
  33. package/lib/PointLight/PointLight.js +0 -63
  34. package/lib/PointLight/PointLight.ts +0 -74
  35. package/lib/PointLight/pointLight_map.png +0 -0
  36. package/lib/Sky/Sky.d.ts +0 -13
  37. package/lib/Sky/Sky.js +0 -28
  38. package/lib/Sky/Sky.ts +0 -36
  39. package/lib/Sky/bluesky.jpg +0 -0
  40. package/lib/SpriteText.d.ts +0 -45
  41. package/lib/SpriteText.js +0 -162
  42. package/lib/SpriteText.ts +0 -189
  43. package/lib/SpriteText2.d.ts +0 -47
  44. package/lib/SpriteText2.js +0 -197
  45. package/lib/SpriteText2.ts +0 -236
  46. package/lib/Text3D/Text3D.d.ts +0 -20
  47. package/lib/Text3D/Text3D.js +0 -61
  48. package/lib/Text3D/Text3D.ts +0 -92
  49. package/lib/Text3D/fontController.d.ts +0 -59
  50. package/lib/Text3D/fontController.js +0 -200
  51. package/lib/Text3D/fontController.ts +0 -285
  52. package/lib/Text3D/gentilis.json +0 -811
  53. package/lib/ThreeBase.d.ts +0 -59
  54. package/lib/ThreeBase.js +0 -395
  55. package/lib/ThreeBase.ts +0 -475
  56. package/lib/ThreeMouse.d.ts +0 -39
  57. package/lib/ThreeMouse.js +0 -357
  58. package/lib/ThreeMouse.ts +0 -464
  59. package/lib/Transition.d.ts +0 -43
  60. package/lib/Transition.js +0 -196
  61. package/lib/Transition.ts +0 -268
  62. package/lib/index.d.ts +0 -22
  63. package/lib/keyContorls.d.ts +0 -25
  64. package/lib/keyContorls.js +0 -98
  65. package/lib/keyContorls.ts +0 -127
  66. package/lib/planeModal1/PlaneModal1.d.ts +0 -31
  67. package/lib/planeModal1/PlaneModal1.js +0 -104
  68. package/lib/planeModal1/PlaneModal1.ts +0 -150
  69. package/lib/planeModal1/planeModal.png +0 -0
  70. package/lib/shaders.d.ts +0 -17
  71. package/lib/shaders.js +0 -245
  72. package/lib/shaders.ts +0 -264
  73. package/lib/spriteModal1/SpriteModal1.d.ts +0 -30
  74. package/lib/spriteModal1/SpriteModal1.js +0 -109
  75. package/lib/spriteModal1/SpriteModal1.ts +0 -159
  76. package/lib/spriteModal1/spriteModal1.png +0 -0
  77. package/lib/stroke_pass/FullScreenQuad.d.ts +0 -7
  78. package/lib/stroke_pass/FullScreenQuad.js +0 -25
  79. package/lib/stroke_pass/FullScreenQuad.ts +0 -33
  80. package/lib/stroke_pass/stroke_pass.d.ts +0 -2
  81. package/lib/stroke_pass/stroke_pass.js +0 -190
  82. package/lib/stroke_pass/stroke_pass.ts +0 -211
  83. package/lib/threeLoader.d.ts +0 -20
  84. package/lib/threeLoader.js +0 -110
  85. package/lib/threeLoader.ts +0 -136
  86. package/lib/threeUtils.d.ts +0 -41
  87. package/lib/threeUtils.js +0 -179
  88. package/lib/threeUtils.ts +0 -212
  89. package/lib/type.d.ts +0 -0
  90. package/lib/type.js +0 -10
  91. package/lib/type.ts +0 -13
@@ -1,122 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2023-02-16 00:22:31
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-02-16 19:08:55
6
- */
7
-
8
- import { last } from "lodash";
9
- import { BufferAttribute, Euler, Line, LineBasicMaterial, Object3D, Vector3 } from "three";
10
- import threeUtils from "./threeUtils";
11
-
12
-
13
- // 关键帧类型
14
- export type Keyframe = {
15
- position: Vector3;
16
- scale: Vector3;
17
- rotation: Euler;
18
- timeTemp: number; //时间节点 单位毫秒.
19
- }
20
-
21
-
22
- export type KeyframeAnimationProps = {
23
- speedScale?: number; // 速度调整
24
- object3d: Object3D; // 需要移动的对象
25
- keyframes: Array<Keyframe>,
26
- }
27
-
28
- // 关键帧动画对象
29
- export default class KeyframeAnimation extends Object3D {
30
-
31
- constructor(props: KeyframeAnimationProps) {
32
- super();
33
-
34
- // 速度调整
35
- this.speedScale = props.speedScale || 1;
36
-
37
- // 设置关键帧对象数组
38
- this.setKeyframes(props.keyframes);
39
-
40
-
41
- // 设置对象
42
- this.setObject3D(props.object3d);
43
-
44
- }
45
-
46
- // 速度调整
47
- speedScale = 1;
48
-
49
- // 需要需要移动的对象
50
- object3d!: Object3D;
51
-
52
- //路径辅助线
53
- halperLine = new Line(undefined, new LineBasicMaterial({ color: "#f00" }));
54
-
55
- // 关键帧数组
56
- keyframes: Array<Keyframe> = [];
57
-
58
- // 设置需要移动的对象
59
- setObject3D(object3d: Object3D) {
60
- this.object3d = object3d;
61
- if (threeUtils.isDev) {
62
- this.children = [object3d, this.halperLine];
63
- } else {
64
- this.children = [object3d];
65
- }
66
- }
67
-
68
- // 获取单个关键帧
69
- getKeyframe(i: number) {
70
- return this.keyframes[i];
71
- }
72
-
73
- // 设置单个关键帧
74
- setKeyframe(i: number, keyframe: Keyframe) {
75
- this.keyframes[i] = keyframe;
76
- this.setKeyframes(this.keyframes);
77
- }
78
-
79
- //设置全部关键帧
80
- setKeyframes(keyframes: Array<Keyframe>) {
81
- this.keyframes = keyframes;
82
- const position: Array<number> = [];
83
- keyframes.map(k => {
84
- position.push(k.position.x);
85
- position.push(k.position.y);
86
- position.push(k.position.z);
87
- });
88
- this.halperLine.geometry.setAttribute("position", new BufferAttribute(new Float32Array(position), 3, false));
89
- }
90
-
91
- // 更具关键帧的信息更新 对象的位置
92
- update() {
93
- const { _timeTemp } = threeUtils;
94
- const maxtimetemp = last(this.keyframes)!.timeTemp;
95
- const currentTime = _timeTemp % maxtimetemp;
96
-
97
- const currentKeyframeIndex = this.keyframes.findIndex(k => currentTime < k.timeTemp);
98
-
99
- const startKeyframe = this.keyframes[currentKeyframeIndex - 1];
100
- const endKeyframe = this.keyframes[currentKeyframeIndex];
101
- const progress = (currentTime - startKeyframe.timeTemp) / (endKeyframe.timeTemp - startKeyframe.timeTemp);
102
-
103
- this.object3d.position.copy(endKeyframe.position).sub(startKeyframe.position).multiplyScalar(progress).add(startKeyframe.position);
104
- this.object3d.scale.copy(endKeyframe.scale).sub(startKeyframe.scale).multiplyScalar(progress).add(startKeyframe.scale);
105
-
106
- this.object3d.rotation.set(
107
- (endKeyframe.rotation.x - startKeyframe.rotation.x) * progress + startKeyframe.rotation.x,
108
- (endKeyframe.rotation.y - startKeyframe.rotation.y) * progress + startKeyframe.rotation.y,
109
- (endKeyframe.rotation.z - startKeyframe.rotation.z) * progress + startKeyframe.rotation.z,
110
- );
111
-
112
- this.dispatchEvent({ type: "update" });
113
- }
114
-
115
- //更新关键帧的实例矩阵
116
- updateMatrix(): void {
117
- this.update();
118
- super.updateMatrix();
119
- }
120
-
121
-
122
- }
@@ -1,37 +0,0 @@
1
- import { Mesh, MeshBasicMaterial, PlaneGeometry, Vector3 } from "three";
2
- import SpriteText from "./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 | {
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) | import("three").Quaternion | Vector3 | ((vector: number | Vector3, y?: number, z?: number) => void) | import("three").Object3D[] | ((id: number) => import("three").Object3D) | ((name: string) => import("three").Object3D) | ((name: string, value: string) => import("three").Object3D) | ((callback: (object: import("three").Object3D) => any) => void) | ((callback: (object: import("three").Object3D) => any) => void) | ((callback: (object: import("three").Object3D) => any) => void) | ((meta?: {
28
- geometries: any;
29
- materials: any;
30
- textures: any;
31
- images: any;
32
- }) => any) | ((type: string, listener: (event: import("three").Event) => void) => void) | ((type: string, listener: (event: import("three").Event) => void) => boolean) | ((type: string, listener: (event: import("three").Event) => void) => void) | ((event: {
33
- [attachment: string]: any;
34
- type: string;
35
- }) => void) | import("three").Vector2 | HTMLCanvasElement | ((force?: boolean) => void) | import("three").Euler | (() => void) | import("three").Layers | import("three").AnimationClip[] | import("three").SpriteMaterial | ((raycaster: import("three").Raycaster, intersects: import("three").Intersection[]) => void) | ((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[]) => SpriteText) | ((...object: import("three").Object3D[]) => SpriteText) | (() => SpriteText) | (() => SpriteText) | ((object: import("three").Object3D) => SpriteText) | ((recursive?: boolean) => SpriteText) | ((source: SpriteText) => SpriteText) | (() => 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) | ((target: Vector3) => Vector3) | ((target: import("three").Quaternion) => import("three").Quaternion) | ((target: Vector3) => Vector3) | ((target: Vector3) => Vector3) | ((updateParents: boolean, updateChildren: boolean) => void);
36
- }
37
- export {};
package/lib/PlaneText.js DELETED
@@ -1,30 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2022-05-23 13:53:06
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-03 02:54:52
6
- */
7
- import { DoubleSide, Mesh, MeshBasicMaterial, PlaneGeometry, Vector3 } from "three";
8
- import SpriteText from "./SpriteText";
9
- export default class PlaneText extends Mesh {
10
- constructor(text = "planeText") {
11
- super(PlaneText.geometry);
12
- this.set({ text });
13
- }
14
- type = "PlaneText";
15
- static geometry = new PlaneGeometry(1, 1, 1, 1);
16
- spriteText = new SpriteText("");
17
- material = new MeshBasicMaterial({ transparent: true, side: DoubleSide, map: this.spriteText.material.map });
18
- set(parame) {
19
- for (let key in parame) {
20
- //@ts-ignore
21
- this.spriteText[key] = parame[key];
22
- }
23
- this.scale.copy(this.spriteText.scale);
24
- this.scale.max(new Vector3(1, 1, 1));
25
- this.material.map = this.spriteText.material.map;
26
- }
27
- get(prop) {
28
- return this.spriteText[prop];
29
- }
30
- }
package/lib/PlaneText.ts DELETED
@@ -1,58 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2022-05-23 13:53:06
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-03 02:54:52
6
- */
7
-
8
- import { DoubleSide, Mesh, MeshBasicMaterial, PlaneGeometry, Vector3 } from "three";
9
- import SpriteText from "./SpriteText";
10
-
11
-
12
- type Props = {
13
- text?: string;
14
- textHeight?: number;
15
- color?: string;
16
- backgroundColor?: string;
17
- fontFace?: string;
18
- fontSize?: number;
19
- fontWeight?: string;
20
- padding?: number | [number, number];
21
- borderWidth?: number;
22
- borderRadius?: number;
23
- borderColor?: string;
24
- strokeWidth?: number;
25
- strokeColor?: string;
26
- }
27
-
28
- export default class PlaneText extends Mesh {
29
-
30
- constructor(text: string = "planeText") {
31
- super(PlaneText.geometry);
32
- this.set({ text });
33
- }
34
-
35
- type = "PlaneText";
36
-
37
- static geometry = new PlaneGeometry(1, 1, 1, 1);
38
-
39
- spriteText = new SpriteText("");
40
-
41
- material = new MeshBasicMaterial({ transparent: true, side: DoubleSide, map: this.spriteText.material.map });
42
-
43
- set(parame: Props) {
44
- for (let key in parame) {
45
- //@ts-ignore
46
- this.spriteText[key] = parame[key];
47
- }
48
-
49
- this.scale.copy(this.spriteText.scale);
50
- this.scale.max(new Vector3(1, 1, 1));
51
- this.material.map = this.spriteText.material.map;
52
- }
53
-
54
- get(prop: keyof SpriteText) {
55
- return this.spriteText[prop];
56
- }
57
-
58
- }
@@ -1,11 +0,0 @@
1
- import { Mesh, MeshBasicMaterial, PlaneGeometry, Vector2 } from "three";
2
- export default class PlaneWithHtml extends Mesh {
3
- constructor(html?: string, backgroundColor?: `#${string}`);
4
- visible: boolean;
5
- size: Vector2;
6
- geometry: PlaneGeometry;
7
- material: MeshBasicMaterial;
8
- div: HTMLDivElement;
9
- setGeoSize(width: number, height: number): void;
10
- setHtml(html?: string, backgroundColor?: `#${string}`): Promise<void>;
11
- }
@@ -1,67 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2023-04-15 11:26:32
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-04-15 12:38:09
6
- */
7
- import html2canvas from "html2canvas";
8
- import { CanvasTexture, DoubleSide, Mesh, MeshBasicMaterial, PlaneGeometry, Vector2 } from "three";
9
- import { degToRad } from "three/src/math/MathUtils";
10
- import threeLoader from "./threeLoader";
11
- // html 文本面板
12
- export default class PlaneWithHtml extends Mesh {
13
- constructor(html = "", backgroundColor = "#00000000") {
14
- super();
15
- this.setHtml(html, backgroundColor);
16
- }
17
- visible = false;
18
- size = new Vector2(10, 10);
19
- geometry = (() => {
20
- const geometry = new PlaneGeometry(10, 10, 1, 1);
21
- geometry.rotateX(degToRad(-90));
22
- return geometry;
23
- })();
24
- material = new MeshBasicMaterial({
25
- side: DoubleSide,
26
- transparent: true
27
- });
28
- div = (() => {
29
- const div = document.createElement("div");
30
- div.style.position = "fixed";
31
- div.style.top = "100%";
32
- div.style.left = "100%";
33
- div.style.pointerEvents = "none";
34
- div.style.userSelect = "none";
35
- div.style.lineHeight = "1";
36
- div.style.whiteSpace = "nowrap";
37
- return div;
38
- })();
39
- // 设置网格尺寸
40
- setGeoSize(width, height) {
41
- this.size.set(width, height);
42
- this.geometry.dispose();
43
- const geometry = new PlaneGeometry(width, height, 1, 1);
44
- geometry.rotateX(degToRad(-90));
45
- this.geometry = geometry;
46
- }
47
- async setHtml(html = "", backgroundColor = "#00000000") {
48
- this.div.innerHTML = html;
49
- document.body.appendChild(this.div);
50
- await new Promise((resolve, reject) => {
51
- html2canvas(this.div, {
52
- backgroundColor,
53
- removeContainer: true
54
- }).then(async (canvas) => {
55
- this.setGeoSize(canvas.width, canvas.height);
56
- this.material.map = new CanvasTexture(canvas);
57
- this.material.map.anisotropy = threeLoader.anisotropy;
58
- this.material.needsUpdate = true;
59
- this.visible = true;
60
- await new Promise(resolve => requestAnimationFrame(resolve));
61
- this.div.remove();
62
- resolve();
63
- });
64
- });
65
- this.dispatchEvent({ type: "loaded" });
66
- }
67
- }
@@ -1,84 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2023-04-15 11:26:32
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-04-15 12:38:09
6
- */
7
-
8
- import html2canvas from "html2canvas";
9
- import { CanvasTexture, DoubleSide, Mesh, MeshBasicMaterial, PlaneGeometry, Vector2 } from "three";
10
- import { degToRad } from "three/src/math/MathUtils";
11
- import threeLoader from "./threeLoader";
12
-
13
-
14
- // html 文本面板
15
- export default class PlaneWithHtml extends Mesh {
16
-
17
- constructor(html: string = "", backgroundColor: `#${string}` = "#00000000") {
18
- super();
19
- this.setHtml(html, backgroundColor);
20
- }
21
-
22
- visible = false;
23
-
24
- size = new Vector2(10, 10);
25
-
26
- geometry = (() => {
27
- const geometry = new PlaneGeometry(10, 10, 1, 1);
28
- geometry.rotateX(degToRad(-90));
29
- return geometry;
30
- })();
31
-
32
- material = new MeshBasicMaterial({
33
- side: DoubleSide,
34
- transparent: true
35
- });
36
-
37
- div = (() => {
38
- const div = document.createElement("div");
39
- div.style.position = "fixed";
40
- div.style.top = "100%";
41
- div.style.left = "100%";
42
- div.style.pointerEvents = "none";
43
- div.style.userSelect = "none";
44
- div.style.lineHeight = "1";
45
- div.style.whiteSpace = "nowrap";
46
- return div;
47
- })();
48
-
49
- // 设置网格尺寸
50
- setGeoSize(width: number, height: number) {
51
- this.size.set(width, height);
52
- this.geometry.dispose();
53
- const geometry = new PlaneGeometry(width, height, 1, 1);
54
- geometry.rotateX(degToRad(-90));
55
- this.geometry = geometry;
56
- }
57
-
58
- async setHtml(html: string = "", backgroundColor: `#${string}` = "#00000000") {
59
- this.div.innerHTML = html;
60
- document.body.appendChild(this.div);
61
-
62
- await new Promise<void>((resolve, reject) => {
63
-
64
- html2canvas(this.div, {
65
- backgroundColor,
66
- removeContainer: true
67
- }).then(async (canvas) => {
68
- this.setGeoSize(canvas.width, canvas.height);
69
- this.material.map = new CanvasTexture(canvas);
70
- this.material.map.anisotropy = threeLoader.anisotropy;
71
- this.material.needsUpdate = true;
72
- this.visible = true;
73
- await new Promise(resolve => requestAnimationFrame(resolve));
74
- this.div.remove();
75
- resolve();
76
- });
77
-
78
- });
79
-
80
- this.dispatchEvent({ type: "loaded" });
81
- }
82
-
83
-
84
- }
@@ -1,13 +0,0 @@
1
- import { Sprite, PointLight as THREEPointLight } from "three";
2
- import SpriteText from "../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
- pointLinghtHelper: Sprite;
12
- label: SpriteText;
13
- }
@@ -1,63 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2022-05-18 16:02:55
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-03 02:55:28
6
- */
7
- import { Sprite, PointLight as THREEPointLight } from "three";
8
- import threeLoader from "../threeLoader";
9
- import threeUtils from "../threeUtils";
10
- import pointLight_mapPNG from "./pointLight_map.png";
11
- import SpriteText from "../SpriteText";
12
- /**
13
- * 点光源
14
- * @export
15
- * @class PointLight
16
- * @extends {THREEPointLight}
17
- */
18
- export default class PointLight extends THREEPointLight {
19
- constructor(color = "#fff", intensity, distance, decay) {
20
- super(color, intensity, distance, decay);
21
- }
22
- // 灯光辅助器
23
- pointLinghtHelper = threeUtils.isDev && (() => {
24
- const pointLinghtHelper = new Sprite();
25
- pointLinghtHelper.scale.set(0.05, 0.05, 0.05);
26
- pointLinghtHelper.material.color = this.color;
27
- pointLinghtHelper.material.map = threeLoader.getTexture(pointLight_mapPNG);
28
- pointLinghtHelper.material.sizeAttenuation = false;
29
- pointLinghtHelper.userData = {
30
- cursor: "pointer"
31
- };
32
- pointLinghtHelper.addEventListener("mouseenter", () => {
33
- if (this.label) {
34
- this.label.visible = true;
35
- }
36
- });
37
- pointLinghtHelper.addEventListener("mouseleave", () => {
38
- if (this.label) {
39
- this.label.visible = false;
40
- }
41
- });
42
- this.add(pointLinghtHelper);
43
- return pointLinghtHelper;
44
- })();
45
- label = threeUtils.isDev && (() => {
46
- const label = new SpriteText("点光源\n\n\n");
47
- label.renderOrder = Infinity;
48
- // label.backgroundColor = "rgba(0, 0, 0, 0.5)";
49
- label.padding = 4;
50
- label.strokeColor = "#333";
51
- label.strokeWidth = 2;
52
- // label.borderRadius = 4;
53
- // label.borderWidth = 1;
54
- label.position.set(0, 0, 0);
55
- label.visible = false;
56
- label.material.color = this.color;
57
- label.material.depthTest = false;
58
- label.material.sizeAttenuation = false;
59
- label.scale.multiplyScalar(0.002);
60
- this.add(label);
61
- return label;
62
- })();
63
- }
@@ -1,74 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2022-05-18 16:02:55
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-03 02:55:28
6
- */
7
-
8
- import { Sprite, PointLight as THREEPointLight } from "three";
9
- import threeLoader from "../threeLoader";
10
- import threeUtils from "../threeUtils";
11
- import pointLight_mapPNG from "./pointLight_map.png";
12
- import SpriteText from "../SpriteText";
13
-
14
-
15
- /**
16
- * 点光源
17
- * @export
18
- * @class PointLight
19
- * @extends {THREEPointLight}
20
- */
21
- export default class PointLight extends THREEPointLight {
22
-
23
- constructor(color = "#fff", intensity?: number, distance?: number, decay?: number) {
24
- super(color, intensity, distance, decay);
25
- }
26
-
27
- // 灯光辅助器
28
- pointLinghtHelper = threeUtils.isDev && (() => {
29
- const pointLinghtHelper = new Sprite();
30
- pointLinghtHelper.scale.set(0.05, 0.05, 0.05);
31
- pointLinghtHelper.material.color = this.color;
32
- pointLinghtHelper.material.map = threeLoader.getTexture(pointLight_mapPNG);
33
- pointLinghtHelper.material.sizeAttenuation = false;
34
-
35
- pointLinghtHelper.userData = {
36
- cursor: "pointer"
37
- };
38
-
39
- pointLinghtHelper.addEventListener("mouseenter", () => {
40
- if (this.label) {
41
- this.label.visible = true;
42
- }
43
- });
44
-
45
- pointLinghtHelper.addEventListener("mouseleave", () => {
46
- if (this.label) {
47
- this.label.visible = false;
48
- }
49
- });
50
-
51
- this.add(pointLinghtHelper);
52
- return pointLinghtHelper;
53
- })();
54
-
55
- label = threeUtils.isDev && (() => {
56
- const label = new SpriteText("点光源\n\n\n");
57
- label.renderOrder = Infinity;
58
- // label.backgroundColor = "rgba(0, 0, 0, 0.5)";
59
- label.padding = 4;
60
- label.strokeColor = "#333";
61
- label.strokeWidth = 2;
62
- // label.borderRadius = 4;
63
- // label.borderWidth = 1;
64
- label.position.set(0, 0, 0);
65
- label.visible = false;
66
- label.material.color = this.color;
67
- label.material.depthTest = false;
68
- label.material.sizeAttenuation = false;
69
- label.scale.multiplyScalar(0.002);
70
- this.add(label);
71
- return label;
72
- })();
73
-
74
- }
Binary file
package/lib/Sky/Sky.d.ts DELETED
@@ -1,13 +0,0 @@
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
- }
package/lib/Sky/Sky.js DELETED
@@ -1,28 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2022-05-20 18:03:58
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2022-12-27 09:54:23
6
- */
7
- import { DoubleSide, Mesh, MeshBasicMaterial, SphereGeometry } from "three";
8
- import threeLoader from "../threeLoader";
9
- import blueskyJPG from "./blueSky.jpg";
10
- /**
11
- * 天空球
12
- */
13
- export default class Sky extends Mesh {
14
- constructor() {
15
- super(Sky.geometry);
16
- }
17
- static geometry = new SphereGeometry(500000, 100, 100);
18
- material = new MeshBasicMaterial({
19
- side: DoubleSide,
20
- map: threeLoader.getTexture(blueskyJPG)
21
- });
22
- /**
23
- *设置贴图
24
- */
25
- setMap(src) {
26
- this.material.map = threeLoader.getTexture(src);
27
- }
28
- }
package/lib/Sky/Sky.ts DELETED
@@ -1,36 +0,0 @@
1
- /*
2
- * @Author: xiaosihan
3
- * @Date: 2022-05-20 18:03:58
4
- * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2022-12-27 09:54:23
6
- */
7
-
8
- import { DoubleSide, Mesh, MeshBasicMaterial, SphereGeometry } from "three";
9
- import threeLoader from "../threeLoader";
10
-
11
- import blueskyJPG from "./blueSky.jpg";
12
-
13
- /**
14
- * 天空球
15
- */
16
- export default class Sky extends Mesh {
17
-
18
- constructor() {
19
- super(Sky.geometry);
20
- }
21
-
22
- static geometry = new SphereGeometry(500000, 100, 100);
23
-
24
- material = new MeshBasicMaterial({
25
- side: DoubleSide,
26
- map: threeLoader.getTexture(blueskyJPG)
27
- });
28
-
29
- /**
30
- *设置贴图
31
- */
32
- setMap(src: string) {
33
- this.material.map = threeLoader.getTexture(src);
34
- }
35
-
36
- }
Binary file