diff --git a/src/Add-on/DrawLine.ts b/src/Add-on/DrawLine.ts index f7049a405..9cf69427a 100644 --- a/src/Add-on/DrawLine.ts +++ b/src/Add-on/DrawLine.ts @@ -40,6 +40,8 @@ export class DrawLine implements Command { p2 = ptRes.Value; let line = new Line(); + line.ColorIndex = i++; + line.StartPoint = p1; line.EndPoint = p2; app.m_Database.ModelSpace.Append(line); diff --git a/src/DatabaseServices/Entity.ts b/src/DatabaseServices/Entity.ts index a7124aa01..fb7b5a6d0 100644 --- a/src/DatabaseServices/Entity.ts +++ b/src/DatabaseServices/Entity.ts @@ -13,6 +13,18 @@ export class Entity extends CADObject //材质id protected m_MaterialId: ObjectId; protected m_Color: number = 7; + + set ColorIndex(v: number) + { + this.m_Color = v; + this.Update(); + } + get ColorIndex(): number + { + return this.m_Color; + } + + //绘制一个threeJs对象. Draw(renderType: RenderType = RenderType.Wireframe): THREE.Object3D { diff --git a/src/DatabaseServices/Line.ts b/src/DatabaseServices/Line.ts index 09d85a9c9..4a0ba9dd6 100644 --- a/src/DatabaseServices/Line.ts +++ b/src/DatabaseServices/Line.ts @@ -37,7 +37,11 @@ export class Line extends Entity { for (let [, obj] of this.m_DrawEntity) { - let geo = (obj).geometry as THREE.Geometry; + let lineObj = (obj); + + lineObj.material = ColorMaterial.GetLineMaterial(this.ColorIndex); + + let geo = lineObj.geometry as THREE.Geometry; geo.vertices[0].copy(this.startPoint); geo.vertices[1].copy(this.endPoint);