From 10e5abab1baa2e08364dd7b80922c43a5a22b542 Mon Sep 17 00:00:00 2001 From: ChenX Date: Wed, 27 Oct 2021 14:14:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=E5=AE=9E=E4=BD=93=E7=BB=98?= =?UTF-8?q?=E5=88=B6=E6=9B=B4=E6=96=B0=E7=9A=84=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DatabaseServices/3DSolid/ExtrudeHole.ts | 2 +- src/GraphicsSystem/Viewer.ts | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/DatabaseServices/3DSolid/ExtrudeHole.ts b/src/DatabaseServices/3DSolid/ExtrudeHole.ts index 82a92a313..42c1e0bf1 100644 --- a/src/DatabaseServices/3DSolid/ExtrudeHole.ts +++ b/src/DatabaseServices/3DSolid/ExtrudeHole.ts @@ -339,7 +339,7 @@ export class ExtrudeHole extends Hole g.KnifeRadius = this.KnifeRadius; g.SetContourCurve(this.ContourCurve); g.Thickness = this.Height; - g.ApplyMatrix(this.OCS); + g.ApplyMatrix(this.OCSNoClone); return g; } GetPrintObject3D() diff --git a/src/GraphicsSystem/Viewer.ts b/src/GraphicsSystem/Viewer.ts index b8d6b3b74..e9029ba36 100644 --- a/src/GraphicsSystem/Viewer.ts +++ b/src/GraphicsSystem/Viewer.ts @@ -60,7 +60,7 @@ export class Viewer private _Width: number; private _Height: number; - private needUpdateEnts = new Set(); + private _NeedUpdateEnts = new Set();//避免某些实体关闭自动更新后没有在渲染时刷新显示,导致显示的是错误的 isLayout = false; ViewPorts: ViewportEntity[] = []; LayoutScene = new Scene(); @@ -120,7 +120,8 @@ export class Viewer let self = this; end(new Entity().Update, function () { - self.needUpdateEnts.add(this); + if (!(this as Entity).AutoUpdate) + self._NeedUpdateEnts.add(this);//避免错误的登记需要变更的实体 }); end(this.CameraCtrl, this.CameraCtrl.SwitchCamera, () => @@ -314,10 +315,10 @@ export class Viewer Render() { - for (let e of this.needUpdateEnts) - e.Update(0); + for (let e of this._NeedUpdateEnts) + e.DeferUpdate();//使用Update(0) 会导致重复记录这个实体,造成性能损耗(或者错误的变更了实体版本) - this.needUpdateEnts.clear(); + this._NeedUpdateEnts.clear(); if (this.isLayout) {