three-base 1.0.87 → 1.0.88

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.
@@ -19,6 +19,8 @@ export default class ThreeBase extends EventDispatcher {
19
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;
package/lib/ThreeBase.js CHANGED
@@ -122,15 +122,19 @@ export default class ThreeBase extends EventDispatcher {
122
122
  });
123
123
  return controlsCenter;
124
124
  })();
125
+ // 网格辅助线
126
+ gridHelper = (() => {
127
+ const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
128
+ gridHelper.visible = threeUtils.isDev;
129
+ this.scene.add(gridHelper);
130
+ })();
131
+ //坐标轴线
132
+ axesHelper = (() => {
133
+ const axesHelper = new AxesHelper(10000);
134
+ axesHelper.visible = threeUtils.isDev;
135
+ this.scene.add(axesHelper);
136
+ })();
125
137
  init() {
126
- // 非开发模式添加网格辅助线
127
- if (threeUtils.isDev) {
128
- const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
129
- gridHelper.position.set(0, -0.001, 0);
130
- this.scene.add(gridHelper);
131
- const axesHelper = new AxesHelper(10000);
132
- this.scene.add(axesHelper);
133
- }
134
138
  // 资源加载进度有更新时, 需要渲染
135
139
  threeLoader.addEventListener("progress", () => {
136
140
  this.needRender = true;
package/lib/ThreeBase.ts CHANGED
@@ -146,16 +146,21 @@ export default class ThreeBase extends EventDispatcher {
146
146
  return controlsCenter;
147
147
  })();
148
148
 
149
- init() {
150
- // 非开发模式添加网格辅助线
151
- if (threeUtils.isDev) {
152
- const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
153
- gridHelper.position.set(0, -0.001, 0);
154
- this.scene.add(gridHelper);
155
- const axesHelper = new AxesHelper(10000);
156
- this.scene.add(axesHelper);
157
- }
149
+ // 网格辅助线
150
+ gridHelper = (() => {
151
+ const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
152
+ gridHelper.visible = threeUtils.isDev;
153
+ this.scene.add(gridHelper);
154
+ })();
155
+
156
+ //坐标轴线
157
+ axesHelper=(()=>{
158
+ const axesHelper = new AxesHelper(10000);
159
+ axesHelper.visible = threeUtils.isDev;
160
+ this.scene.add(axesHelper);
161
+ })();
158
162
 
163
+ init() {
159
164
  // 资源加载进度有更新时, 需要渲染
160
165
  threeLoader.addEventListener("progress", () => {
161
166
  this.needRender = true;
@@ -2,10 +2,9 @@
2
2
  * @Author: xiaosihan
3
3
  * @Date: 2023-05-09 00:35:17
4
4
  * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-09 02:26:04
5
+ * @Last Modified time: 2023-05-09 02:33:28
6
6
  */
7
- import { LinearFilter, RGBAFormat, Vector2, WebGLRenderTarget, ShaderMaterial, NoBlending, Scene, RawShaderMaterial, Color, NormalBlending } from "three";
8
- import { CopyShader } from "three/examples/jsm/shaders/CopyShader.js";
7
+ import { LinearFilter, RGBAFormat, Vector2, WebGLRenderTarget, NoBlending, Scene, RawShaderMaterial, Color, NormalBlending } from "three";
9
8
  import FullScreenQuad from "./FullScreenQuad";
10
9
  // 选中对象的纹理
11
10
  const selectTextureTarget = new WebGLRenderTarget(512, 512, { minFilter: LinearFilter, magFilter: LinearFilter, format: RGBAFormat });
@@ -16,13 +15,6 @@ const blur2TextureTarget = new WebGLRenderTarget(512, 512, { minFilter: LinearFi
16
15
  const size = new Vector2();
17
16
  // 创建一个渲染工具 用于处理纹理
18
17
  const fsQuad = new FullScreenQuad(); // 渲染辅助器
19
- //拷贝纹理着色器
20
- const copyShader = new ShaderMaterial({
21
- ...CopyShader,
22
- depthTest: false,
23
- depthWrite: false,
24
- transparent: true
25
- });
26
18
  // 描边着色器
27
19
  const blurShader = new RawShaderMaterial({
28
20
  uniforms: {
@@ -2,11 +2,10 @@
2
2
  * @Author: xiaosihan
3
3
  * @Date: 2023-05-09 00:35:17
4
4
  * @Last Modified by: xiaosihan
5
- * @Last Modified time: 2023-05-09 02:26:04
5
+ * @Last Modified time: 2023-05-09 02:33:28
6
6
  */
7
7
 
8
8
  import { Camera, LinearFilter, Object3D, RGBAFormat, Vector2, WebGLRenderTarget, WebGLRenderer, ShaderMaterial, NoBlending, Scene, RawShaderMaterial, Color, NormalBlending } from "three";
9
- import { CopyShader } from "three/examples/jsm/shaders/CopyShader.js";
10
9
  import FullScreenQuad from "./FullScreenQuad";
11
10
 
12
11
  // 选中对象的纹理
@@ -23,14 +22,6 @@ const size = new Vector2();
23
22
  // 创建一个渲染工具 用于处理纹理
24
23
  const fsQuad = new FullScreenQuad(); // 渲染辅助器
25
24
 
26
- //拷贝纹理着色器
27
- const copyShader = new ShaderMaterial({
28
- ...CopyShader,
29
- depthTest: false,
30
- depthWrite: false,
31
- transparent: true
32
- });
33
-
34
25
  // 描边着色器
35
26
  const blurShader = new RawShaderMaterial({
36
27
  uniforms: {
@@ -35,7 +35,7 @@ declare class ThreeUtils extends EventDispatcher {
35
35
  alignBottom(object3d: Object3D | BufferGeometry, y?: number): void;
36
36
  centerObject3D(object3d: Object3D | BufferGeometry): void;
37
37
  center(object3d: Object3D | BufferGeometry): void;
38
- scaleTo(object3d: Object3D | BufferGeometry, size?: number): void;
38
+ scaleTo(object3d: Object3D | BufferGeometry, size?: number, key?: Partial<["x", "y", "z"]>): void;
39
39
  }
40
40
  declare const threeUtils: ThreeUtils;
41
41
  export default threeUtils;
package/lib/threeUtils.js CHANGED
@@ -162,10 +162,10 @@ class ThreeUtils extends EventDispatcher {
162
162
  center(object3d) {
163
163
  this.centerObject3D(object3d);
164
164
  }
165
- //缩放至指定大小
166
- scaleTo(object3d, size = 1) {
165
+ // 使用指定的纬度计算, 缩放至指定大小
166
+ scaleTo(object3d, size = 1, key = ["x", "y", "z"]) {
167
167
  const originSize = this.getSize(object3d);
168
- const scale = size / Math.max(originSize.x, originSize.y, originSize.z);
168
+ const scale = size / Math.max(...key.map(k => originSize[k]));
169
169
  if (object3d instanceof Object3D) {
170
170
  object3d.scale.multiplyScalar(scale);
171
171
  object3d.updateMatrixWorld(true);
package/lib/threeUtils.ts CHANGED
@@ -188,10 +188,11 @@ class ThreeUtils extends EventDispatcher {
188
188
  this.centerObject3D(object3d);
189
189
  }
190
190
 
191
- //缩放至指定大小
192
- scaleTo(object3d: Object3D | BufferGeometry, size: number = 1) {
191
+ // 使用指定的纬度计算, 缩放至指定大小
192
+ scaleTo(object3d: Object3D | BufferGeometry, size: number = 1, key: Partial<["x", "y", "z"]> = ["x", "y", "z"]) {
193
193
  const originSize = this.getSize(object3d);
194
- const scale = size / Math.max(originSize.x, originSize.y, originSize.z);
194
+ const scale = size / Math.max(...key.map(k => originSize[k]));
195
+
195
196
  if (object3d instanceof Object3D) {
196
197
  object3d.scale.multiplyScalar(scale);
197
198
  object3d.updateMatrixWorld(true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-base",
3
- "version": "1.0.87",
3
+ "version": "1.0.88",
4
4
  "description": "three 3d three-base",
5
5
  "repository": {
6
6
  "type": "git",