From 10fe6ccf2603bd75c1b3b74d9b1449c6eeb33aa9 Mon Sep 17 00:00:00 2001 From: ChenX Date: Fri, 29 Nov 2019 16:06:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E9=AB=98=E6=9C=89=E9=80=A0=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E6=9D=BF=E4=BB=B6=E7=9A=84=E6=8B=89=E4=BC=B8=E6=80=A7?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DatabaseServices/Entity/Entity.ts | 11 +++++++++++ src/DatabaseServices/Entity/Extrude.ts | 6 ++---- src/Editor/Jig.ts | 2 ++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/DatabaseServices/Entity/Entity.ts b/src/DatabaseServices/Entity/Entity.ts index 792f7693b..d59679108 100644 --- a/src/DatabaseServices/Entity/Entity.ts +++ b/src/DatabaseServices/Entity/Entity.ts @@ -168,6 +168,17 @@ export class Entity extends CADObject DisposeThreeObj(obj); this._CacheDrawObject.clear(); } + ClearDrawOfJig() + { + let jig = this._CacheDrawObject.get(RenderType.Jig); + if (jig) + this._CacheDrawObject.delete(RenderType.Jig); + for (let [type, obj] of this._CacheDrawObject) + DisposeThreeObj(obj); + this._CacheDrawObject.clear(); + if (jig) + this._CacheDrawObject.set(RenderType.Jig, jig); + } protected _drawObject: Object3D; diff --git a/src/DatabaseServices/Entity/Extrude.ts b/src/DatabaseServices/Entity/Extrude.ts index 6b5453d9e..1be26dcf8 100644 --- a/src/DatabaseServices/Entity/Extrude.ts +++ b/src/DatabaseServices/Entity/Extrude.ts @@ -580,9 +580,9 @@ export class ExtrudeSolid extends Entity } } - this.CheckContourCurve(); if (this.objectId) { + this.CheckContourCurve(); let splitEntitys: this[] = []; this.GrooveCheckAll(splitEntitys); @@ -1143,7 +1143,7 @@ export class ExtrudeSolid extends Entity { if (this._EdgeGeometry) return this._EdgeGeometry; - + this.MeshGeometry; this._EdgeGeometry = new EdgesGeometry().FromCSG(this.CSG); return this._EdgeGeometry; } @@ -1207,8 +1207,6 @@ export class ExtrudeSolid extends Entity DisposeThreeObj(obj); this._EdgeGeometry = undefined; this._MeshGeometry = undefined; - this.MeshGeometry; - if (renderType === RenderType.Wireframe) { let l = obj as LineSegments; diff --git a/src/Editor/Jig.ts b/src/Editor/Jig.ts index 2893f9dd9..cc30adf29 100644 --- a/src/Editor/Jig.ts +++ b/src/Editor/Jig.ts @@ -32,6 +32,8 @@ export class Jig if (enOrg.Id) { enNew = enOrg.Clone(); + if (fast) + enNew.ClearDrawOfJig(); this.m_OrgEntitys.push(enOrg); enOrg.UpdateJigMaterial(); let f = new CADFiler();