three-base 1.0.27 → 1.0.28

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 +21 -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,20 @@ 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.saveState();
180
+ this.controls.update();
181
+ this.controls.reset();
182
+ this.controls.enableDamping = true;
183
+
176
184
  position && this.controlsPosition.reset({ x: position.x, y: position.y, z: position.z });
177
185
  center && this.controlsCenter.reset({ x: center.x, y: center.y, z: center.z });
178
186
  this.needRender = true;
@@ -181,6 +189,14 @@ export default class ThreeBase extends EventDispatcher {
181
189
  // 设置控制器的位置 以动画的方式移动控制器
182
190
  async setLookAt({ position, center, duration = 1000 }: { position?: Vector3, center?: Vector3, duration?: number }) {
183
191
 
192
+ // 停止控制器的惯性
193
+ this.controls.enableDamping = false;
194
+ this.controls.saveState();
195
+ this.controls.update();
196
+ this.controls.reset();
197
+ this.controls.enableDamping = true;
198
+
199
+
184
200
  let currentPosition = this.camera.position.clone();
185
201
  let currentCenter = this.controls.target.clone();
186
202
 
@@ -237,9 +253,9 @@ export default class ThreeBase extends EventDispatcher {
237
253
  }
238
254
 
239
255
  // 寻找最顶层的父元素
240
- findRoot(dom: ParentNode): ParentNode | undefined {
256
+ _findRoot(dom: ParentNode): ParentNode | undefined {
241
257
  if (dom.parentNode) {
242
- return this.findRoot(dom.parentNode);
258
+ return this._findRoot(dom.parentNode);
243
259
  } else {
244
260
  return dom;
245
261
  }
@@ -258,7 +274,7 @@ export default class ThreeBase extends EventDispatcher {
258
274
  this.controls.enabled = (this.controlsPosition.isDone() || this.controlsCenter.isDone());
259
275
 
260
276
  // canvas 没有在页面上面的话 就跳过渲染
261
- if (this.findRoot(this.renderer.domElement) !== document) {
277
+ if (this._findRoot(this.renderer.domElement) !== document) {
262
278
  threeUtils.removeEventListener("requestAnimationFrame", this.renderBindThis);
263
279
  this.renderer.forceContextLoss();
264
280
  // 标记上下文被销毁了
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "three-base",
3
- "version": "1.0.27",
3
+ "version": "1.0.28",
4
4
  "description": "three 3d three-base",
5
5
  "keywords": [
6
6
  "three",