diff --git a/src/Add-on/Move.ts b/src/Add-on/Move.ts index b9973284b..442e51879 100644 --- a/src/Add-on/Move.ts +++ b/src/Add-on/Move.ts @@ -1,13 +1,14 @@ import { Matrix4 } from 'three'; import { app } from '../ApplicationServices/Application'; +import { Log } from '../Common/Log'; import { CylinderHole, GangDrillType } from '../DatabaseServices/3DSolid/CylinderHole'; +import { ExtrudeHole } from '../DatabaseServices/3DSolid/ExtrudeHole'; +import { Hole } from '../DatabaseServices/3DSolid/Hole'; import { Board } from '../DatabaseServices/Entity/Board'; +import { Light } from '../DatabaseServices/Lights/Light'; import { Command } from '../Editor/CommandMachine'; import { JigUtils } from '../Editor/JigUtils'; import { PromptStatus } from '../Editor/PromptResult'; -import { Log } from '../Common/Log'; -import { Hole } from '../DatabaseServices/3DSolid/Hole'; -import { ExtrudeHole } from '../DatabaseServices/3DSolid/ExtrudeHole'; export class Command_Move implements Command { @@ -28,7 +29,15 @@ export class Command_Move implements Command let ens = ssRes.SelectSet.SelectEntityList; - let ensClone = ens.map(e => JigUtils.Draw(e)); + let ensClone = ens.map(e => + { + if (e instanceof Light) + { + e.DrawObject.visible = false; + return JigUtils.Draw(e, true); + } + return JigUtils.Draw(e); + }); let ptBase = ptRes.Point; let ptLast = ptBase.clone(); diff --git a/src/Add-on/Rotate.ts b/src/Add-on/Rotate.ts index 6213eadac..1cb3afd7f 100644 --- a/src/Add-on/Rotate.ts +++ b/src/Add-on/Rotate.ts @@ -2,6 +2,7 @@ import { MathUtils, Matrix4, Vector3 } from 'three'; import { app } from '../ApplicationServices/Application'; import { UpdateDraw } from '../Common/Status'; import { Entity } from '../DatabaseServices/Entity/Entity'; +import { Light } from '../DatabaseServices/Lights/Light'; import { Command } from '../Editor/CommandMachine'; import { JigUtils } from '../Editor/JigUtils'; import { PromptStatus } from '../Editor/PromptResult'; @@ -23,7 +24,15 @@ export class Command_Rotate implements Command let pt1 = ptRes.Point; let ens = ss.SelectSet.SelectEntityList; - let cloneEns = ens.map(en => JigUtils.Draw(en)); + let cloneEns = ens.map(e => + { + if (e instanceof Light)//为了避免性能损耗,这里用快速拷贝的方式,并且将原来的灯隐藏显示 + { + e.DrawObject.visible = false; + return JigUtils.Draw(e, true); + } + return JigUtils.Draw(e); + }); let isCopy = false; diff --git a/src/DatabaseServices/Lights/Light.ts b/src/DatabaseServices/Lights/Light.ts index 0a0b1aeb6..75474f665 100644 --- a/src/DatabaseServices/Lights/Light.ts +++ b/src/DatabaseServices/Lights/Light.ts @@ -16,6 +16,7 @@ import { Entity } from '../Entity/Entity'; @Factory export class Light extends Entity { + OnlyRenderType = true; protected _Intensity: number = 2; //强度 protected _LightColor: Color = new Color(0xffffff);//光源颜色 @AutoRecord Temperature = 6500;//色温