three-base 1.129.17 → 2.0.2

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 (109) hide show
  1. package/{lib/planeModal1 → PlaneModal1}/PlaneModal1.d.ts +1 -1
  2. package/{lib/planeModal1 → PlaneModal1}/PlaneModal1.js +3 -2
  3. package/{lib/planeModal1 → PlaneModal1}/PlaneModal1.ts +3 -2
  4. package/PlaneModal1/index.d.ts +1 -0
  5. package/PlaneModal1/index.js +1 -0
  6. package/PlaneModal1/index.ts +1 -0
  7. package/PlaneText.d.ts +37 -0
  8. package/PointLight/index.d.ts +1 -0
  9. package/PointLight/index.js +1 -0
  10. package/PointLight/index.ts +1 -0
  11. package/README.md +1 -0
  12. package/Sky/index.d.ts +1 -0
  13. package/Sky/index.js +1 -0
  14. package/Sky/index.ts +1 -0
  15. package/{lib/spriteModal1 → SpriteModal1}/SpriteModal1.d.ts +1 -1
  16. package/{lib/spriteModal1 → SpriteModal1}/SpriteModal1.js +3 -2
  17. package/{lib/spriteModal1 → SpriteModal1}/SpriteModal1.ts +2 -1
  18. package/SpriteModal1/index.d.ts +1 -0
  19. package/SpriteModal1/index.js +1 -0
  20. package/SpriteModal1/index.ts +1 -0
  21. package/{lib/SpriteText.d.ts → SpriteText.d.ts} +3 -3
  22. package/{lib/SpriteText.ts → SpriteText.ts} +1 -1
  23. package/{lib/Text3D → Text3D}/Text3D.js +4 -3
  24. package/{lib/Text3D → Text3D}/Text3D.ts +4 -3
  25. package/{lib/Text3D → Text3D}/fontController.d.ts +1 -1
  26. package/{lib/Text3D → Text3D}/fontController.js +2 -2
  27. package/{lib/Text3D → Text3D}/fontController.ts +2 -2
  28. package/Text3D/index.d.ts +1 -0
  29. package/Text3D/index.js +1 -0
  30. package/Text3D/index.ts +1 -0
  31. package/{lib/ThreeBase.d.ts → ThreeBase.d.ts} +3 -1
  32. package/{lib/ThreeBase.js → ThreeBase.js} +24 -18
  33. package/{lib/ThreeBase.ts → ThreeBase.ts} +26 -19
  34. package/{lib/ThreeMouse.js → ThreeMouse.js} +2 -0
  35. package/{lib/ThreeMouse.ts → ThreeMouse.ts} +2 -1
  36. package/index.d.ts +1 -0
  37. package/index.js +1 -37
  38. package/index.ts +1 -61
  39. package/{lib/keyContorls.d.ts → keyContorls.d.ts} +2 -2
  40. package/{lib/keyContorls.ts → keyContorls.ts} +2 -2
  41. package/package.json +17 -22
  42. package/{lib/stroke_pass → pass}/FullScreenQuad.d.ts +1 -1
  43. package/{lib/threeLoader.d.ts → threeLoader.d.ts} +2 -2
  44. package/{lib/threeLoader.js → threeLoader.js} +14 -6
  45. package/{lib/threeLoader.ts → threeLoader.ts} +19 -8
  46. package/{lib/threeUtils.d.ts → threeUtils.d.ts} +4 -1
  47. package/{lib/threeUtils.js → threeUtils.js} +59 -5
  48. package/{lib/threeUtils.ts → threeUtils.ts} +68 -9
  49. package/tsconfig.json +39 -0
  50. package/lib/PlaneText.d.ts +0 -37
  51. package/lib/index.d.ts +0 -22
  52. package/lib/type.d.ts +0 -0
  53. package/lib/type.js +0 -10
  54. package/lib/type.ts +0 -13
  55. /package/{lib/ApngTexture.d.ts → ApngTexture.d.ts} +0 -0
  56. /package/{lib/ApngTexture.js → ApngTexture.js} +0 -0
  57. /package/{lib/ApngTexture.ts → ApngTexture.ts} +0 -0
  58. /package/{lib/ApngTextureManage.d.ts → ApngTextureManage.d.ts} +0 -0
  59. /package/{lib/ApngTextureManage.js → ApngTextureManage.js} +0 -0
  60. /package/{lib/ApngTextureManage.ts → ApngTextureManage.ts} +0 -0
  61. /package/{lib/EventMesh.d.ts → EventMesh.d.ts} +0 -0
  62. /package/{lib/EventMesh.js → EventMesh.js} +0 -0
  63. /package/{lib/EventMesh.ts → EventMesh.ts} +0 -0
  64. /package/{lib/ExtrudeMesh.d.ts → ExtrudeMesh.d.ts} +0 -0
  65. /package/{lib/ExtrudeMesh.js → ExtrudeMesh.js} +0 -0
  66. /package/{lib/ExtrudeMesh.ts → ExtrudeMesh.ts} +0 -0
  67. /package/{lib/FPScontrol.d.ts → FPScontrol.d.ts} +0 -0
  68. /package/{lib/FPScontrol.js → FPScontrol.js} +0 -0
  69. /package/{lib/FPScontrol.ts → FPScontrol.ts} +0 -0
  70. /package/{lib/InstancedGroupMesh.d.ts → InstancedGroupMesh.d.ts} +0 -0
  71. /package/{lib/InstancedGroupMesh.js → InstancedGroupMesh.js} +0 -0
  72. /package/{lib/InstancedGroupMesh.ts → InstancedGroupMesh.ts} +0 -0
  73. /package/{lib/KeyFrameAnimation.d.ts → KeyFrameAnimation.d.ts} +0 -0
  74. /package/{lib/KeyFrameAnimation.js → KeyFrameAnimation.js} +0 -0
  75. /package/{lib/KeyFrameAnimation.ts → KeyFrameAnimation.ts} +0 -0
  76. /package/{lib/planeModal1 → PlaneModal1}/planeModal.png +0 -0
  77. /package/{lib/PlaneText.js → PlaneText.js} +0 -0
  78. /package/{lib/PlaneText.ts → PlaneText.ts} +0 -0
  79. /package/{lib/PlaneWithHtml.d.ts → PlaneWithHtml.d.ts} +0 -0
  80. /package/{lib/PlaneWithHtml.js → PlaneWithHtml.js} +0 -0
  81. /package/{lib/PlaneWithHtml.ts → PlaneWithHtml.ts} +0 -0
  82. /package/{lib/PointLight → PointLight}/PointLight.d.ts +0 -0
  83. /package/{lib/PointLight → PointLight}/PointLight.js +0 -0
  84. /package/{lib/PointLight → PointLight}/PointLight.ts +0 -0
  85. /package/{lib/PointLight → PointLight}/pointLight_map.png +0 -0
  86. /package/{lib/Sky → Sky}/Sky.d.ts +0 -0
  87. /package/{lib/Sky → Sky}/Sky.js +0 -0
  88. /package/{lib/Sky → Sky}/Sky.ts +0 -0
  89. /package/{lib/Sky → Sky}/bluesky.jpg +0 -0
  90. /package/{lib/spriteModal1 → SpriteModal1}/spriteModal1.png +0 -0
  91. /package/{lib/SpriteText.js → SpriteText.js} +0 -0
  92. /package/{lib/SpriteText2.d.ts → SpriteText2.d.ts} +0 -0
  93. /package/{lib/SpriteText2.js → SpriteText2.js} +0 -0
  94. /package/{lib/SpriteText2.ts → SpriteText2.ts} +0 -0
  95. /package/{lib/Text3D → Text3D}/Text3D.d.ts +0 -0
  96. /package/{lib/Text3D → Text3D}/gentilis.json +0 -0
  97. /package/{lib/ThreeMouse.d.ts → ThreeMouse.d.ts} +0 -0
  98. /package/{lib/Transition.d.ts → Transition.d.ts} +0 -0
  99. /package/{lib/Transition.js → Transition.js} +0 -0
  100. /package/{lib/Transition.ts → Transition.ts} +0 -0
  101. /package/{lib/keyContorls.js → keyContorls.js} +0 -0
  102. /package/{lib/stroke_pass → pass}/FullScreenQuad.js +0 -0
  103. /package/{lib/stroke_pass → pass}/FullScreenQuad.ts +0 -0
  104. /package/{lib/stroke_pass → pass}/stroke_pass.d.ts +0 -0
  105. /package/{lib/stroke_pass → pass}/stroke_pass.js +0 -0
  106. /package/{lib/stroke_pass → pass}/stroke_pass.ts +0 -0
  107. /package/{lib/shaders.d.ts → shaders.d.ts} +0 -0
  108. /package/{lib/shaders.js → shaders.js} +0 -0
  109. /package/{lib/shaders.ts → shaders.ts} +0 -0
@@ -16,7 +16,7 @@ export default class PlaneModal1 extends Mesh {
16
16
  static img: HTMLImageElement;
17
17
  canvas: HTMLCanvasElement;
18
18
  context: CanvasRenderingContext2D;
19
- texture: CanvasTexture;
19
+ texture: CanvasTexture | import("three").Texture;
20
20
  _config: {
21
21
  size: number;
22
22
  title: string;
@@ -4,8 +4,9 @@
4
4
  * @Last Modified by: xiaosihan
5
5
  * @Last Modified time: 2023-03-09 19:15:35
6
6
  */
7
- import { MeshBasicMaterial, Mesh, DoubleSide, CanvasTexture, Vector2, PlaneGeometry } from "three";
7
+ import { MeshBasicMaterial, Mesh, DoubleSide, Vector2, PlaneGeometry } from "three";
8
8
  import planeModalPNG from "./planeModal.png";
9
+ import threeLoader from "../threeLoader";
9
10
  // 平面模型弹窗
10
11
  export default class PlaneModal1 extends Mesh {
11
12
  constructor(config = {}) {
@@ -33,7 +34,7 @@ export default class PlaneModal1 extends Mesh {
33
34
  return canvas;
34
35
  })();
35
36
  context = this.canvas.getContext("2d");
36
- texture = new CanvasTexture(this.canvas);
37
+ texture = threeLoader.getTexture(this.canvas);
37
38
  // 配置
38
39
  _config = {
39
40
  size: 10,
@@ -5,8 +5,9 @@
5
5
  * @Last Modified time: 2023-03-09 19:15:35
6
6
  */
7
7
 
8
- import { MeshBasicMaterial, Mesh, DoubleSide, CanvasTexture, Vector2, BufferGeometry, PlaneGeometry } from "three";
8
+ import { MeshBasicMaterial, Mesh, DoubleSide, CanvasTexture, Vector2, BufferGeometry, PlaneGeometry, SRGBColorSpace } from "three";
9
9
  import planeModalPNG from "./planeModal.png";
10
+ import threeLoader from "../threeLoader";
10
11
 
11
12
 
12
13
  export type PlaneModal1Config = {
@@ -54,7 +55,7 @@ export default class PlaneModal1 extends Mesh {
54
55
 
55
56
  context = this.canvas.getContext("2d")!;
56
57
 
57
- texture = new CanvasTexture(this.canvas);
58
+ texture = threeLoader.getTexture(this.canvas);
58
59
 
59
60
  // 配置
60
61
  _config: {
@@ -0,0 +1 @@
1
+ export { default } from "./PlaneModal1";
@@ -0,0 +1 @@
1
+ export { default } from "./PlaneModal1";
@@ -0,0 +1 @@
1
+ export { default } from "./PlaneModal1";
package/PlaneText.d.ts ADDED
@@ -0,0 +1,37 @@
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 | ((event: import("three").Event) => void) | Vector3 | import("three").Object3D<import("three").Event> | import("three").BufferGeometry<import("three").NormalBufferAttributes> | ((force?: boolean) => void) | import("three").Object3D<import("three").Event>[] | HTMLCanvasElement | import("three").Vector2 | import("three").Material | import("three").Matrix4 | import("three").Quaternion | import("three").Euler | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | import("three").Matrix3 | 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<import("three").NormalBufferAttributes>, 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<import("three").NormalBufferAttributes>, 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) | ((raycaster: import("three").Raycaster, intersects: import("three").Intersection<import("three").Object3D<import("three").Event>>[]) => void) | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | ((callback: (object: import("three").Object3D<import("three").Event>) => any) => void) | (() => void) | ((updateParents: boolean, updateChildren: boolean) => void) | ((meta?: {
31
+ geometries: any;
32
+ materials: any;
33
+ textures: any;
34
+ images: any;
35
+ }) => any) | import("three").SpriteMaterial | ((source: SpriteText, recursive?: boolean) => SpriteText) | (() => 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<import("three").Event>[]) => SpriteText) | ((...object: import("three").Object3D<import("three").Event>[]) => SpriteText) | (() => SpriteText) | (() => SpriteText) | ((object: import("three").Object3D<import("three").Event>) => SpriteText) | ((recursive?: boolean) => 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 @@
1
+ export { default } from "./PointLight";
@@ -0,0 +1 @@
1
+ export { default } from "./PointLight";
@@ -0,0 +1 @@
1
+ export { default } from "./PointLight";
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
  .创建一个 homeRender.ts 模块
3
3
  import { AmbientLight, BoxGeometry, Mesh, MeshLambertMaterial, PointLight } from "three";
4
4
  import ThreeBase, { Transition } from "three-base";
5
+ import Transition from "three-base/Transition";
5
6
 
6
7
  // 做项目找我 qq:389652405
7
8
  class HomeRender extends ThreeBase {
package/Sky/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { default } from "./Sky";
package/Sky/index.js ADDED
@@ -0,0 +1 @@
1
+ export { default } from "./Sky";
package/Sky/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { default } from "./Sky";
@@ -14,7 +14,7 @@ export default class SpritModal1 extends Sprite {
14
14
  static img: HTMLImageElement;
15
15
  canvas: HTMLCanvasElement;
16
16
  context: CanvasRenderingContext2D;
17
- texture: CanvasTexture;
17
+ texture: CanvasTexture | import("three").Texture;
18
18
  _config: {
19
19
  size: number;
20
20
  title: string;
@@ -4,8 +4,9 @@
4
4
  * @Last Modified by: xiaosihan
5
5
  * @Last Modified time: 2023-03-08 02:05:25
6
6
  */
7
- import { Sprite, CanvasTexture, Vector2 } from "three";
7
+ import { Sprite, Vector2 } from "three";
8
8
  import spriteModal1PNG from "./spriteModal1.png";
9
+ import threeLoader from "../threeLoader";
9
10
  // sprit弹窗1
10
11
  export default class SpritModal1 extends Sprite {
11
12
  constructor(config = {}) {
@@ -28,7 +29,7 @@ export default class SpritModal1 extends Sprite {
28
29
  return canvas;
29
30
  })();
30
31
  context = this.canvas.getContext("2d");
31
- texture = new CanvasTexture(this.canvas);
32
+ texture = threeLoader.getTexture(this.canvas);
32
33
  // 配置
33
34
  _config = {
34
35
  size: 10,
@@ -11,6 +11,7 @@
11
11
 
12
12
  import { Sprite, CanvasTexture, Vector2, Raycaster, Intersection } from "three";
13
13
  import spriteModal1PNG from "./spriteModal1.png";
14
+ import threeLoader from "../threeLoader";
14
15
 
15
16
  export type SpritModal1Config = {
16
17
  size?: number,
@@ -50,7 +51,7 @@ export default class SpritModal1 extends Sprite {
50
51
 
51
52
  context = this.canvas.getContext("2d")!;
52
53
 
53
- texture = new CanvasTexture(this.canvas);
54
+ texture = threeLoader.getTexture(this.canvas);
54
55
 
55
56
  // 配置
56
57
  _config: {
@@ -0,0 +1 @@
1
+ export { default } from "./SpriteModal1";
@@ -0,0 +1 @@
1
+ export { default } from "./SpriteModal1";
@@ -0,0 +1 @@
1
+ export { default } from "./SpriteModal1";
@@ -4,7 +4,7 @@ export default class SpriteText extends Sprite {
4
4
  _text: string;
5
5
  _textHeight: number;
6
6
  _color: `#${string}` | `rgba(${string})`;
7
- _backgroundColor: boolean;
7
+ _backgroundColor: boolean | `#${string}` | `rgba(${string})`;
8
8
  _padding: number;
9
9
  _borderWidth: number;
10
10
  _borderRadius: number;
@@ -21,8 +21,8 @@ export default class SpriteText extends Sprite {
21
21
  set textHeight(textHeight: number);
22
22
  get color(): `#${string}` | `rgba(${string})`;
23
23
  set color(color: `#${string}` | `rgba(${string})`);
24
- get backgroundColor(): boolean;
25
- set backgroundColor(color: boolean);
24
+ get backgroundColor(): boolean | `#${string}` | `rgba(${string})`;
25
+ set backgroundColor(color: boolean | `#${string}` | `rgba(${string})`);
26
26
  get padding(): number;
27
27
  set padding(padding: number);
28
28
  get borderWidth(): number;
@@ -22,7 +22,7 @@ export default class SpriteText extends Sprite {
22
22
  _text: string = "";
23
23
  _textHeight: number = 10;
24
24
  _color: `#${string}` | `rgba(${string})` = "#fffff";
25
- _backgroundColor = false; // no background color
25
+ _backgroundColor: boolean | `#${string}` | `rgba(${string})` = false; // no background color
26
26
 
27
27
  _padding: number = 0;
28
28
  _borderWidth: number = 0;
@@ -4,7 +4,8 @@
4
4
  * @Last Modified by: xiaosihan
5
5
  * @Last Modified time: 2023-04-07 21:52:03
6
6
  */
7
- import { Mesh, MeshStandardMaterial, TextGeometry } from "three";
7
+ import { TextGeometry } from 'three/examples/jsm/geometries/TextGeometry.js';
8
+ import { Mesh, MeshStandardMaterial } from "three";
8
9
  import fontContorller from "./fontController";
9
10
  // 3D文字模型
10
11
  export default class Text3D extends Mesh {
@@ -13,9 +14,9 @@ export default class Text3D extends Mesh {
13
14
  this.setText({ text });
14
15
  }
15
16
  // 字体的存储路径 例如 : "http://drm.gitee.io/three-base-font/simhei/字.js"
16
- static path = "http://drm.gitee.io/three-base-font/";
17
+ static path = "//drm.gitee.io/three-base-font/";
17
18
  material = new MeshStandardMaterial({
18
- metalness: 0.8,
19
+ metalness: 1,
19
20
  roughness: 0.5, // 粗糙度,值为0到1
20
21
  });
21
22
  // 配置
@@ -5,7 +5,8 @@
5
5
  * @Last Modified time: 2023-04-07 21:52:03
6
6
  */
7
7
 
8
- import { Mesh, MeshStandardMaterial, TextGeometry } from "three";
8
+ import { TextGeometry, TextGeometryParameters } from 'three/examples/jsm/geometries/TextGeometry.js';
9
+ import { Mesh, MeshStandardMaterial } from "three";
9
10
  import fontContorller from "./fontController";
10
11
 
11
12
 
@@ -33,11 +34,11 @@ export default class Text3D extends Mesh {
33
34
  }
34
35
 
35
36
  // 字体的存储路径 例如 : "http://drm.gitee.io/three-base-font/simhei/字.js"
36
- static path = "http://drm.gitee.io/three-base-font/";
37
+ static path = "//drm.gitee.io/three-base-font/";
37
38
 
38
39
 
39
40
  material = new MeshStandardMaterial({
40
- metalness: 0.8, // 金属度,值为0到1
41
+ metalness: 1, // 金属度,值为0到1
41
42
  roughness: 0.5, // 粗糙度,值为0到1
42
43
  });
43
44
 
@@ -1,5 +1,5 @@
1
1
  import Dexie, { Table } from "dexie";
2
- import { Font } from "three";
2
+ import { Font } from "three/examples/jsm/loaders/FontLoader.js";
3
3
  export type saveFontParam = {
4
4
  fontType?: string;
5
5
  fontName: string;
@@ -2,11 +2,11 @@
2
2
  * @Author: xiaosihan
3
3
  * @Date: 2021-04-15 00:34:44
4
4
  * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-04-04 19:26:27
5
+ * @Last Modified time: 2022-06-08 14:33:45
6
6
  */
7
7
  import Dexie from "dexie";
8
8
  import { filter, first, isEmpty } from "lodash";
9
- import { Font } from "three";
9
+ import { Font } from "three/examples/jsm/loaders/FontLoader.js";
10
10
  import threeUtils from "../threeUtils";
11
11
  import gentilisJSON from "./gentilis.json";
12
12
  class indexBD extends Dexie {
@@ -2,12 +2,12 @@
2
2
  * @Author: xiaosihan
3
3
  * @Date: 2021-04-15 00:34:44
4
4
  * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-04-04 19:26:27
5
+ * @Last Modified time: 2022-06-08 14:33:45
6
6
  */
7
7
 
8
8
  import Dexie, { Table } from "dexie";
9
9
  import { filter, first, isEmpty } from "lodash";
10
- import { Font } from "three";
10
+ import { Font } from "three/examples/jsm/loaders/FontLoader.js";
11
11
  import threeUtils from "../threeUtils";
12
12
  import gentilisJSON from "./gentilis.json";
13
13
 
@@ -0,0 +1 @@
1
+ export { default } from "./Text3D";
@@ -0,0 +1 @@
1
+ export { default } from "./Text3D";
@@ -0,0 +1 @@
1
+ export { default } from "./Text3D";
@@ -16,9 +16,11 @@ export default class ThreeBase extends EventDispatcher {
16
16
  controls: OrbitControls;
17
17
  isRendererContextLost: boolean;
18
18
  setContainer(div: HTMLDivElement | null): Promise<void>;
19
- setsize(width: number, height: number): void;
19
+ setSize(width: number, height: number): void;
20
20
  controlsPosition: Transition;
21
21
  controlsCenter: Transition;
22
+ gridHelper: void;
23
+ axesHelper: void;
22
24
  init(): void;
23
25
  resetLookAt({ position, center, }: {
24
26
  position?: Vector3;
@@ -2,7 +2,7 @@
2
2
  * @Author: xiaosihan
3
3
  * @Date: 2021-12-20 13:38:22
4
4
  * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-09 01:11:17
5
+ * @Last Modified time: 2023-05-23 23:54:13
6
6
  */
7
7
  import { round } from "lodash";
8
8
  import { AxesHelper, EventDispatcher, GridHelper, LinearFilter, Mesh, MOUSE, NoBlending, NormalBlending, PerspectiveCamera, RGBAFormat, Scene, TOUCH, Vector2, Vector3, WebGLRenderer, WebGLRenderTarget } from "three";
@@ -13,7 +13,7 @@ import threeLoader from "./threeLoader";
13
13
  import ThreeMouse from "./ThreeMouse";
14
14
  import threeUtils from "./threeUtils";
15
15
  import Transition from "./Transition";
16
- import stroke_pass from "./stroke_pass/stroke_pass";
16
+ import stroke_pass from "./pass/stroke_pass";
17
17
  // three.js 的基础对象
18
18
  export default class ThreeBase extends EventDispatcher {
19
19
  constructor() {
@@ -48,9 +48,12 @@ export default class ThreeBase extends EventDispatcher {
48
48
  return renderer;
49
49
  })();
50
50
  //透视相机
51
- camera = new PerspectiveCamera(45, 1, 0.0001, 10000);
51
+ camera = new PerspectiveCamera(45, 1, 0.0001, 1000000);
52
52
  // 场景对象
53
- scene = new Scene();
53
+ scene = (() => {
54
+ const scene = new Scene();
55
+ return scene;
56
+ })();
54
57
  ///鼠标事件对象
55
58
  threeMouse = new ThreeMouse(this.renderer, this.camera, this.scene);
56
59
  // 轨道控制器
@@ -76,20 +79,19 @@ export default class ThreeBase extends EventDispatcher {
76
79
  div.append(this.renderer.domElement);
77
80
  // 如果上下文被销毁了, 就恢复上下文
78
81
  if (this.isRendererContextLost) {
79
- //@ts-ignore
80
- this.renderer['forceContextRestore']();
82
+ this.renderer.forceContextRestore();
81
83
  await new Promise(resolve => requestAnimationFrame(resolve));
82
84
  await new Promise(resolve => requestAnimationFrame(resolve));
83
85
  this.renderer.domElement.style.opacity = "1";
84
86
  }
85
- this.setsize(div.clientWidth, div.clientHeight);
87
+ this.setSize(div.clientWidth, div.clientHeight);
86
88
  // 开启时时渲染
87
89
  threeUtils.removeEventListener("requestAnimationFrame", this.renderBindThis);
88
90
  threeUtils.addEventListener("requestAnimationFrame", this.renderBindThis);
89
91
  }
90
92
  }
91
93
  // 修改尺寸
92
- setsize(width, height) {
94
+ setSize(width, height) {
93
95
  if (this.camera instanceof PerspectiveCamera) {
94
96
  this.camera.aspect = width / height;
95
97
  this.camera.updateProjectionMatrix();
@@ -123,15 +125,19 @@ export default class ThreeBase extends EventDispatcher {
123
125
  });
124
126
  return controlsCenter;
125
127
  })();
128
+ // 网格辅助线
129
+ gridHelper = (() => {
130
+ const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
131
+ gridHelper.visible = threeUtils.isDev;
132
+ this.scene.add(gridHelper);
133
+ })();
134
+ //坐标轴线
135
+ axesHelper = (() => {
136
+ const axesHelper = new AxesHelper(10000);
137
+ axesHelper.visible = threeUtils.isDev;
138
+ this.scene.add(axesHelper);
139
+ })();
126
140
  init() {
127
- // 非开发模式添加网格辅助线
128
- if (threeUtils.isDev) {
129
- const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
130
- gridHelper.position.set(0, -0.001, 0);
131
- this.scene.add(gridHelper);
132
- const axesHelper = new AxesHelper(10000);
133
- this.scene.add(axesHelper);
134
- }
135
141
  // 资源加载进度有更新时, 需要渲染
136
142
  threeLoader.addEventListener("progress", () => {
137
143
  this.needRender = true;
@@ -224,7 +230,7 @@ export default class ThreeBase extends EventDispatcher {
224
230
  this.renderer.forceContextLoss();
225
231
  // 标记上下文被销毁了
226
232
  this.isRendererContextLost = true;
227
- this.setsize(100, 100);
233
+ this.setSize(100, 100);
228
234
  this.renderer.domElement.style.opacity = "0";
229
235
  }
230
236
  // 渲染场景
@@ -239,7 +245,7 @@ export default class ThreeBase extends EventDispatcher {
239
245
  //判断尺寸发生改变时重置尺寸
240
246
  const parentNode = this.renderer.domElement.parentNode;
241
247
  if (parentNode.clientWidth !== this.size.x || parentNode.clientHeight !== this.size.y) {
242
- this.setsize(parentNode.clientWidth, parentNode.clientHeight);
248
+ this.setSize(parentNode.clientWidth, parentNode.clientHeight);
243
249
  }
244
250
  // 分发鼠标事件
245
251
  this.threeMouse.dispatchEvent();
@@ -2,7 +2,7 @@
2
2
  * @Author: xiaosihan
3
3
  * @Date: 2021-12-20 13:38:22
4
4
  * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-09 01:11:17
5
+ * @Last Modified time: 2023-05-23 23:54:13
6
6
  */
7
7
 
8
8
  import { round } from "lodash";
@@ -14,7 +14,7 @@ import threeLoader from "./threeLoader";
14
14
  import ThreeMouse from "./ThreeMouse";
15
15
  import threeUtils from "./threeUtils";
16
16
  import Transition from "./Transition";
17
- import stroke_pass from "./stroke_pass/stroke_pass";
17
+ import stroke_pass from "./pass/stroke_pass";
18
18
 
19
19
  // three.js 的基础对象
20
20
  export default class ThreeBase extends EventDispatcher {
@@ -59,10 +59,13 @@ export default class ThreeBase extends EventDispatcher {
59
59
  })();
60
60
 
61
61
  //透视相机
62
- camera: Camera = new PerspectiveCamera(45, 1, 0.0001, 10000);
62
+ camera: Camera = new PerspectiveCamera(45, 1, 0.0001, 1000000);
63
63
 
64
64
  // 场景对象
65
- scene = new Scene();
65
+ scene = (() => {
66
+ const scene = new Scene();
67
+ return scene;
68
+ })();
66
69
 
67
70
  ///鼠标事件对象
68
71
  threeMouse = new ThreeMouse(this.renderer, this.camera, this.scene);
@@ -93,14 +96,13 @@ export default class ThreeBase extends EventDispatcher {
93
96
 
94
97
  // 如果上下文被销毁了, 就恢复上下文
95
98
  if (this.isRendererContextLost) {
96
- //@ts-ignore
97
- this.renderer['forceContextRestore']();
99
+ this.renderer.forceContextRestore();
98
100
  await new Promise(resolve => requestAnimationFrame(resolve));
99
101
  await new Promise(resolve => requestAnimationFrame(resolve));
100
102
  this.renderer.domElement.style.opacity = "1";
101
103
  }
102
104
 
103
- this.setsize(div.clientWidth, div.clientHeight);
105
+ this.setSize(div.clientWidth, div.clientHeight);
104
106
 
105
107
  // 开启时时渲染
106
108
  threeUtils.removeEventListener("requestAnimationFrame", this.renderBindThis);
@@ -109,7 +111,7 @@ export default class ThreeBase extends EventDispatcher {
109
111
  }
110
112
 
111
113
  // 修改尺寸
112
- setsize(width: number, height: number) {
114
+ setSize(width: number, height: number) {
113
115
  if (this.camera instanceof PerspectiveCamera) {
114
116
  this.camera.aspect = width / height;
115
117
  this.camera.updateProjectionMatrix();
@@ -147,16 +149,21 @@ export default class ThreeBase extends EventDispatcher {
147
149
  return controlsCenter;
148
150
  })();
149
151
 
150
- init() {
151
- // 非开发模式添加网格辅助线
152
- if (threeUtils.isDev) {
153
- const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
154
- gridHelper.position.set(0, -0.001, 0);
155
- this.scene.add(gridHelper);
156
- const axesHelper = new AxesHelper(10000);
157
- this.scene.add(axesHelper);
158
- }
152
+ // 网格辅助线
153
+ gridHelper = (() => {
154
+ const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
155
+ gridHelper.visible = threeUtils.isDev;
156
+ this.scene.add(gridHelper);
157
+ })();
159
158
 
159
+ //坐标轴线
160
+ axesHelper = (() => {
161
+ const axesHelper = new AxesHelper(10000);
162
+ axesHelper.visible = threeUtils.isDev;
163
+ this.scene.add(axesHelper);
164
+ })();
165
+
166
+ init() {
160
167
  // 资源加载进度有更新时, 需要渲染
161
168
  threeLoader.addEventListener("progress", () => {
162
169
  this.needRender = true;
@@ -268,7 +275,7 @@ export default class ThreeBase extends EventDispatcher {
268
275
  this.renderer.forceContextLoss();
269
276
  // 标记上下文被销毁了
270
277
  this.isRendererContextLost = true;
271
- this.setsize(100, 100);
278
+ this.setSize(100, 100);
272
279
  this.renderer.domElement.style.opacity = "0";
273
280
  }
274
281
 
@@ -287,7 +294,7 @@ export default class ThreeBase extends EventDispatcher {
287
294
  //判断尺寸发生改变时重置尺寸
288
295
  const parentNode = this.renderer.domElement.parentNode as HTMLDivElement;
289
296
  if (parentNode.clientWidth !== this.size.x || parentNode.clientHeight !== this.size.y) {
290
- this.setsize(parentNode.clientWidth, parentNode.clientHeight);
297
+ this.setSize(parentNode.clientWidth, parentNode.clientHeight);
291
298
  }
292
299
 
293
300
  // 分发鼠标事件
@@ -107,6 +107,8 @@ export default class ThreeMouse {
107
107
  // 拾取模型
108
108
  let intersection = this._getSelected(meshs);
109
109
  if (intersection) {
110
+ const { face, object } = intersection;
111
+ face && face.normal.applyMatrix4(object.matrixWorld);
110
112
  const MouseEvent = Object.assign(intersection, {
111
113
  renderer: this._renderer,
112
114
  camera: this._camera,
@@ -151,7 +151,8 @@ export default class ThreeMouse {
151
151
  let intersection = this._getSelected(meshs);
152
152
 
153
153
  if (intersection) {
154
-
154
+ const { face, object } = intersection;
155
+ face && face.normal.applyMatrix4(object.matrixWorld);
155
156
  const MouseEvent: ThreeMouseEvent = Object.assign(intersection, { // 将来可能用到的对象
156
157
  renderer: this._renderer,
157
158
  camera: this._camera,
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { default } from "./ThreeBase";
package/index.js CHANGED
@@ -1,38 +1,2 @@
1
1
  // 基类
2
- export { default } from "./lib/ThreeBase";
3
- // 事件对象
4
- export { default as EventMesh } from "./lib/EventMesh";
5
- // 挤出模型
6
- export { default as ExtrudeMesh } from "./lib/ExtrudeMesh";
7
- // 关键帧动画对象
8
- export { default as KeyFrameAnimation } from "./lib/KeyFrameAnimation";
9
- //实例模型组对象
10
- export { default as InstancedGroupMesh } from "./lib/InstancedGroupMesh";
11
- //点光源
12
- export { default as PointLight } from "./lib/PointLight/PointLight";
13
- //天空球
14
- export { default as Sky } from "./lib/Sky/Sky";
15
- //键盘控制器
16
- export { default as keyContorls } from "./lib/keyContorls";
17
- // 动画过度对象
18
- export { default as Transition } from "./lib/Transition";
19
- // 公共方法
20
- export { default as threeUtils } from "./lib/threeUtils";
21
- // 加载器
22
- export { default as threeLoader } from "./lib/threeLoader";
23
- // 第一人称控制器
24
- export { default as FPScontrol } from "./lib/FPScontrol";
25
- // 平面文字
26
- export { default as PlaneText } from "./lib/PlaneText";
27
- // 精灵文字
28
- export { default as SpriteText } from "./lib/SpriteText";
29
- // 精灵文字样式2
30
- export { default as SpriteText2 } from "./lib/SpriteText2";
31
- //精灵文本框
32
- export { default as SpriteModal1 } from "./lib/spriteModal1/SpriteModal1";
33
- //平面文本框
34
- export { default as PlaneModal1 } from "./lib/planeModal1/PlaneModal1";
35
- // 3D文字
36
- export { default as Text3D } from "./lib/Text3D/Text3D";
37
- // html面板
38
- export { default as PlaneWithHtml } from "./lib/PlaneWithHtml";
2
+ export { default } from "./ThreeBase";