优化代码,避免切换渲染类型时重新生成实体

pull/354/MERGE
ChenX 5 years ago
parent 12620e1452
commit 9a2d40d1d1

@ -121,13 +121,8 @@ export class AlignedDimension extends Entity
return ent;
}
GetDrawObjectFromRenderType(renderType: RenderType = RenderType.Wireframe): Object3D
{
if (renderType === RenderType.Jig)
return;
return super.GetDrawObjectFromRenderType(RenderType.Wireframe);
}
//重载
protected OnlyRenderType = true;
InitDrawObject(renderType: RenderType = RenderType.Wireframe): Object3D
{
let obj = new Object3D();

@ -154,12 +154,8 @@ export abstract class Curve extends Entity
IntersectWith(curve: Curve, intType: IntersectOption, tolerance = 1e-6): Vector3[] { return []; }
//------------------绘制相关------------------
GetDrawObjectFromRenderType(renderType: RenderType = RenderType.Wireframe): Object3D
{
if (renderType === RenderType.Jig)
return;
return super.GetDrawObjectFromRenderType(RenderType.Wireframe);
}
//重载
protected OnlyRenderType = true;
/**
* :

@ -22,6 +22,11 @@ import { PhysicalMaterialRecord } from '../PhysicalMaterialRecord';
@Factory
export class Entity extends CADObject
{
/**
* ,
*/
protected OnlyRenderType = false;
protected _CacheDrawObject = new Map<RenderType, Object3D>();
//材质id
protected materialId: ObjectId;
@ -158,6 +163,7 @@ export class Entity extends CADObject
}
UpdateRenderType(type: RenderType)
{
if (this.OnlyRenderType) return;
DisposeThreeObj(this.DrawObject);
let obj = this.GetDrawObjectFromRenderType(type);
if (obj) this.DrawObject.add(obj);
@ -165,6 +171,9 @@ export class Entity extends CADObject
GetDrawObjectFromRenderType(renderType: RenderType = RenderType.Wireframe): Object3D
{
if (this.OnlyRenderType)
renderType = RenderType.Wireframe;
if (this._CacheDrawObject.has(renderType))
{
return this._CacheDrawObject.get(renderType);

Loading…
Cancel
Save