优化:实体绘制更新的性能

pull/1657/MERGE
ChenX 3 years ago
parent 28109c091c
commit 10e5abab1b

@ -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()

@ -60,7 +60,7 @@ export class Viewer
private _Width: number;
private _Height: number;
private needUpdateEnts = new Set<Entity>();
private _NeedUpdateEnts = new Set<Entity>();//避免某些实体关闭自动更新后没有在渲染时刷新显示,导致显示的是错误的
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)
{

Loading…
Cancel
Save