From cf9b7e1f6c14adeb248217fb6c09603add4805ef Mon Sep 17 00:00:00 2001 From: ChenX Date: Mon, 5 Mar 2018 11:08:24 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=9D=90=E8=B4=A8=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DatabaseServices/Circle.ts | 1 - src/DatabaseServices/Curve.ts | 18 +++++++++++++++++- src/DatabaseServices/Entity.ts | 13 +++++++++++++ src/DatabaseServices/Line.ts | 2 -- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/DatabaseServices/Circle.ts b/src/DatabaseServices/Circle.ts index 6194eb0cf..82eb9af28 100644 --- a/src/DatabaseServices/Circle.ts +++ b/src/DatabaseServices/Circle.ts @@ -226,7 +226,6 @@ export class Circle extends Curve UpdateDrawObject(type: RenderType, obj: Object3D) { let line = obj as THREE.Line; - line.material = ColorMaterial.GetLineMaterial(this.ColorIndex); let geo = line.geometry as Geometry; this.UpdateGeometry(geo); } diff --git a/src/DatabaseServices/Curve.ts b/src/DatabaseServices/Curve.ts index 2bbae02dc..14c448a29 100644 --- a/src/DatabaseServices/Curve.ts +++ b/src/DatabaseServices/Curve.ts @@ -1,5 +1,7 @@ -import { Vector3 } from 'three'; +import { Mesh, Object3D, Vector3 } from 'three'; +import { ColorMaterial } from '../Common/ColorPalette'; +import { RenderType } from '../GraphicsSystem/Enum'; import { IntersectOption } from '../GraphicsSystem/IntersectWith'; import { Factory } from './CADFactory'; import { Entity } from './Entity'; @@ -87,4 +89,18 @@ export abstract class Curve extends Entity */ IntersectWith(curve: Curve, intType: IntersectOption): Vector3[] { return; } + //------------------绘制相关------------------ + + /** + * 重载:更新实体材质 + * + * @param {RenderType} type + * @param {Object3D} en + * @memberof Curve + */ + UpdateDrawObjectMaterial(type: RenderType, en: Object3D) + { + let m = en as Mesh; + m.material = ColorMaterial.GetLineMaterial(this.m_Color); + } } diff --git a/src/DatabaseServices/Entity.ts b/src/DatabaseServices/Entity.ts index d441b3dbd..66bbc9860 100644 --- a/src/DatabaseServices/Entity.ts +++ b/src/DatabaseServices/Entity.ts @@ -108,6 +108,7 @@ export class Entity extends CADObject { en.visible = !this._isErase; this.UpdateDrawObject(type, en); + this.UpdateDrawObjectMaterial(type, en); this.UpdateBoundingSphere(en); } } @@ -123,6 +124,18 @@ export class Entity extends CADObject { } + /** + * 当实体需要被更新时,更新实体材质 + * + * @param {RenderType} type + * @param {Object3D} en + * @memberof Entity + */ + UpdateDrawObjectMaterial(type: RenderType, en: Object3D) + { + + } + UpdateVisible() { for (let [, en] of this.m_DrawEntity) diff --git a/src/DatabaseServices/Line.ts b/src/DatabaseServices/Line.ts index 20cc7dfcd..1c21ff848 100644 --- a/src/DatabaseServices/Line.ts +++ b/src/DatabaseServices/Line.ts @@ -35,8 +35,6 @@ export class Line extends Curve { let lineObj = en as THREE.Line; - lineObj.material = ColorMaterial.GetLineMaterial(this.ColorIndex); - let geo = lineObj.geometry as THREE.Geometry; geo.vertices[0].copy(this.m_StartPoint);