three-base 1.0.27 → 1.0.29

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 (2) hide show
  1. package/lib/ThreeBase.ts +16 -5
  2. package/package.json +1 -1
package/lib/ThreeBase.ts CHANGED
@@ -158,7 +158,7 @@ export default class ThreeBase extends EventDispatcher {
158
158
  // 非开发模式添加网格辅助线
159
159
  if (threeUtils.isDev) {
160
160
  const gridHelper = new GridHelper(1000, 100, 0x303030, 0x303030);
161
- gridHelper.position.set(0, -0.01, 0);
161
+ gridHelper.position.set(0, -0.001, 0);
162
162
  this.scene.add(gridHelper);
163
163
  const axesHelper = new AxesHelper(10000);
164
164
  this.scene.add(axesHelper);
@@ -167,12 +167,18 @@ export default class ThreeBase extends EventDispatcher {
167
167
  // 资源加载进度有更新时, 需要渲染
168
168
  threeLoader.addEventListener("progress", () => {
169
169
  this.needRender = true;
170
- })
170
+ });
171
171
 
172
172
  }
173
173
 
174
174
  // 重置控制器的位置
175
175
  resetLookAt({ position, center, }: { position?: Vector3, center?: Vector3, }) {
176
+
177
+ // 停止控制器的惯性
178
+ this.controls.enableDamping = false;
179
+ this.controls.update();
180
+ this.controls.enableDamping = true;
181
+
176
182
  position && this.controlsPosition.reset({ x: position.x, y: position.y, z: position.z });
177
183
  center && this.controlsCenter.reset({ x: center.x, y: center.y, z: center.z });
178
184
  this.needRender = true;
@@ -181,6 +187,11 @@ export default class ThreeBase extends EventDispatcher {
181
187
  // 设置控制器的位置 以动画的方式移动控制器
182
188
  async setLookAt({ position, center, duration = 1000 }: { position?: Vector3, center?: Vector3, duration?: number }) {
183
189
 
190
+ // 停止控制器的惯性
191
+ this.controls.enableDamping = false;
192
+ this.controls.update();
193
+ this.controls.enableDamping = true;
194
+
184
195
  let currentPosition = this.camera.position.clone();
185
196
  let currentCenter = this.controls.target.clone();
186
197
 
@@ -237,9 +248,9 @@ export default class ThreeBase extends EventDispatcher {
237
248
  }
238
249
 
239
250
  // 寻找最顶层的父元素
240
- findRoot(dom: ParentNode): ParentNode | undefined {
251
+ _findRoot(dom: ParentNode): ParentNode | undefined {
241
252
  if (dom.parentNode) {
242
- return this.findRoot(dom.parentNode);
253
+ return this._findRoot(dom.parentNode);
243
254
  } else {
244
255
  return dom;
245
256
  }
@@ -258,7 +269,7 @@ export default class ThreeBase extends EventDispatcher {
258
269
  this.controls.enabled = (this.controlsPosition.isDone() || this.controlsCenter.isDone());
259
270
 
260
271
  // canvas 没有在页面上面的话 就跳过渲染
261
- if (this.findRoot(this.renderer.domElement) !== document) {
272
+ if (this._findRoot(this.renderer.domElement) !== document) {
262
273
  threeUtils.removeEventListener("requestAnimationFrame", this.renderBindThis);
263
274
  this.renderer.forceContextLoss();
264
275
  // 标记上下文被销毁了
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-base",
3
- "version": "1.0.27",
3
+ "version": "1.0.29",
4
4
  "description": "three 3d three-base",
5
5
  "keywords": [
6
6
  "three",