修复:避免Ex命令在线选择时报错

pull/2321/MERGE
ChenX 1 year ago
parent aee595622c
commit ea1fbad9b8

@ -9,6 +9,7 @@ import { Command } from '../Editor/CommandMachine';
import { JigUtils } from '../Editor/JigUtils'; import { JigUtils } from '../Editor/JigUtils';
import { PromptSsgetResult, PromptStatus } from '../Editor/PromptResult'; import { PromptSsgetResult, PromptStatus } from '../Editor/PromptResult';
import { SelectBox, SelectType } from '../Editor/SelectBox'; import { SelectBox, SelectType } from '../Editor/SelectBox';
import { SelectLine } from '../Editor/SelectLine';
import { SelectPick } from '../Editor/SelectPick'; import { SelectPick } from '../Editor/SelectPick';
import { SelectSet } from '../Editor/SelectSet'; import { SelectSet } from '../Editor/SelectSet';
import { AsVector3 } from '../Geometry/GeUtils'; import { AsVector3 } from '../Geometry/GeUtils';
@ -83,6 +84,10 @@ export class Command_Extend implements Command
{ {
selectCenterPt = set._PickPointVcs.clone(); selectCenterPt = set._PickPointVcs.clone();
} }
else if (set instanceof SelectLine)
{
selectCenterPt = AsVector3(set.Center);
}
app.Viewer.ScreenToWorld(selectCenterPt); app.Viewer.ScreenToWorld(selectCenterPt);
for (let cu of set.SelectEntityList as Curve[]) for (let cu of set.SelectEntityList as Curve[])

@ -1,5 +1,6 @@
import { Matrix4, Object3D, OrthographicCamera, PerspectiveCamera, Vector2, Vector3 } from 'three'; import { Matrix4, Object3D, OrthographicCamera, PerspectiveCamera, Vector2, Vector3 } from 'three';
import { doIntersect } from "../Geometry/DoIntersect"; import { doIntersect } from "../Geometry/DoIntersect";
import { midPoint2 } from '../Geometry/GeUtils';
import { IViewer } from '../GraphicsSystem/IView'; import { IViewer } from '../GraphicsSystem/IView';
import { SelectSetBase } from './SelectBase'; import { SelectSetBase } from './SelectBase';
@ -23,6 +24,11 @@ export class SelectLine extends SelectSetBase
} }
} }
get Center()
{
return midPoint2(this._StartPt, this._EndPt);
}
IntersectLine(p1: Vector3, p2: Vector3): boolean IntersectLine(p1: Vector3, p2: Vector3): boolean
{ {
return doIntersect(p1, p2, this._StartPt, this._EndPt); return doIntersect(p1, p2, this._StartPt, this._EndPt);

Loading…
Cancel
Save