|
|
@ -3,14 +3,12 @@ import hotkeys from 'hotkeys-js-ext';
|
|
|
|
import { Vector3 } from 'three';
|
|
|
|
import { Vector3 } from 'three';
|
|
|
|
import { app } from '../ApplicationServices/Application';
|
|
|
|
import { app } from '../ApplicationServices/Application';
|
|
|
|
import { CircleInternalTangentLines, CircleOuterTangentLines } from '../Common/CurveUtils';
|
|
|
|
import { CircleInternalTangentLines, CircleOuterTangentLines } from '../Common/CurveUtils';
|
|
|
|
import { Arc } from '../DatabaseServices/Entity/Arc';
|
|
|
|
|
|
|
|
import { Circle } from '../DatabaseServices/Entity/Circle';
|
|
|
|
import { Circle } from '../DatabaseServices/Entity/Circle';
|
|
|
|
import { Line } from '../DatabaseServices/Entity/Line';
|
|
|
|
import { Line } from '../DatabaseServices/Entity/Line';
|
|
|
|
import { Command } from '../Editor/CommandMachine';
|
|
|
|
import { Command } from '../Editor/CommandMachine';
|
|
|
|
import { JigUtils } from '../Editor/JigUtils';
|
|
|
|
import { JigUtils } from '../Editor/JigUtils';
|
|
|
|
import { ObjectSnapMode } from '../Editor/ObjectSnapMode';
|
|
|
|
import { ObjectSnapMode } from '../Editor/ObjectSnapMode';
|
|
|
|
import { PromptPointResult, PromptStatus } from '../Editor/PromptResult';
|
|
|
|
import { PromptPointResult, PromptStatus } from '../Editor/PromptResult';
|
|
|
|
import { SelectPick } from '../Editor/SelectPick';
|
|
|
|
|
|
|
|
import { UCSUtils } from '../Editor/UCSRAII';
|
|
|
|
import { UCSUtils } from '../Editor/UCSRAII';
|
|
|
|
import { userConfig } from '../Editor/UserConfig';
|
|
|
|
import { userConfig } from '../Editor/UserConfig';
|
|
|
|
import { ZeroVec, equalv3 } from '../Geometry/GeUtils';
|
|
|
|
import { ZeroVec, equalv3 } from '../Geometry/GeUtils';
|
|
|
@ -85,22 +83,10 @@ export class DrawLine implements Command
|
|
|
|
UCSUtils.SetUCSFromPointRes(ptRes);
|
|
|
|
UCSUtils.SetUCSFromPointRes(ptRes);
|
|
|
|
|
|
|
|
|
|
|
|
let ptLast = ptRes.Point;
|
|
|
|
let ptLast = ptRes.Point;
|
|
|
|
let firstSnapModeIsTan = ptRes.SnapMode === ObjectSnapMode.Tan;
|
|
|
|
let firstSnapModeIsTan = ptRes.SnapMode === ObjectSnapMode.Tan && ptRes.SnapEntity;
|
|
|
|
|
|
|
|
let firstTangeCircle = ptRes.SnapEntity as Circle;
|
|
|
|
let secondSnapModelIsTan = false;
|
|
|
|
let secondSnapModelIsTan = false;
|
|
|
|
|
|
|
|
|
|
|
|
let firstTangeCircle: Circle | Arc;
|
|
|
|
|
|
|
|
if (firstSnapModeIsTan)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let pick = new SelectPick(app.Viewer, app.Viewer.WorldToScreen(ptRes.Point));
|
|
|
|
|
|
|
|
pick.Select(app.Viewer.VisibleObjects, { filterTypes: [Circle, Arc] });
|
|
|
|
|
|
|
|
let cirs = pick.SelectEntityList as Circle[];
|
|
|
|
|
|
|
|
for (let e of cirs)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (e.PtOnCurve(ptRes.Point))
|
|
|
|
|
|
|
|
firstTangeCircle = e;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const TempUndo = () =>
|
|
|
|
const TempUndo = () =>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (app.Editor.GetPointServices.IsReady)
|
|
|
|
if (app.Editor.GetPointServices.IsReady)
|
|
|
|