|
|
|
@ -3,7 +3,7 @@ import { app } from '../ApplicationServices/Application';
|
|
|
|
|
import { arrayRemoveIf } from '../Common/ArrayExt';
|
|
|
|
|
import { ColorMaterial } from '../Common/ColorPalette';
|
|
|
|
|
import { GetPointPrompt } from '../Common/InputState';
|
|
|
|
|
import { FixIndex } from '../Common/Utils';
|
|
|
|
|
import { FixIndex, GetEntity } from '../Common/Utils';
|
|
|
|
|
import { Arc } from '../DatabaseServices/Arc';
|
|
|
|
|
import { Curve } from '../DatabaseServices/Curve';
|
|
|
|
|
import { Entity } from '../DatabaseServices/Entity';
|
|
|
|
@ -20,6 +20,7 @@ import { PromptBlock } from '../UI/DynamicPrompt/PromptBlock';
|
|
|
|
|
import { ObjectSnapMode } from './ObjectSnapMode';
|
|
|
|
|
import { SelectPick } from './SelectPick';
|
|
|
|
|
import { Circle } from '../DatabaseServices/Circle';
|
|
|
|
|
import { PointPick } from './PointPick';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 轴线捕捉模式
|
|
|
|
@ -226,12 +227,12 @@ export class SnapServices
|
|
|
|
|
)
|
|
|
|
|
return this.m_LastSnapEntityPoint;
|
|
|
|
|
|
|
|
|
|
//显示图元列表
|
|
|
|
|
let visEns = app.m_Viewer.VisibleEntitys;
|
|
|
|
|
let selectEns = PointPick(vcsP, app.m_Viewer, undefined, app.m_Viewer.VisibleObjects).map(GetEntity).filter(e => e !== undefined);
|
|
|
|
|
|
|
|
|
|
//如果只有切线捕捉
|
|
|
|
|
|
|
|
|
|
if (this.SnapModeEnable === ObjectSnapMode.Tan && !this.m_HasBasePoint)
|
|
|
|
|
for (let e of visEns)
|
|
|
|
|
for (let e of selectEns)
|
|
|
|
|
{
|
|
|
|
|
if (e instanceof Circle || e instanceof Arc)
|
|
|
|
|
{
|
|
|
|
@ -265,9 +266,9 @@ export class SnapServices
|
|
|
|
|
if ((mode & this.SnapModeEnable) === 0)
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
for (let ei = 0, el = visEns.length; ei < el; ei++)
|
|
|
|
|
for (let ei = 0, el = selectEns.length; ei < el; ei++)
|
|
|
|
|
{
|
|
|
|
|
let en = visEns[ei];
|
|
|
|
|
let en = selectEns[ei];
|
|
|
|
|
if (!en.Id || en.IsErase)
|
|
|
|
|
continue;
|
|
|
|
|
let sps = en.GetObjectSnapPoints(mode, wcsP, baseP, viewXform);
|
|
|
|
@ -289,7 +290,7 @@ export class SnapServices
|
|
|
|
|
if (mode === ObjectSnapMode.End)
|
|
|
|
|
for (; ei < el; ei++)
|
|
|
|
|
{
|
|
|
|
|
let en = visEns[ei];
|
|
|
|
|
let en = selectEns[ei];
|
|
|
|
|
let sps = en.GetObjectSnapPoints(ObjectSnapMode.End, wcsP, baseP, viewXform);
|
|
|
|
|
for (let i = 0, l = sps.length; i < l; i++)
|
|
|
|
|
{
|
|
|
|
@ -404,7 +405,7 @@ export class SnapServices
|
|
|
|
|
|
|
|
|
|
//#region 最近点捕捉
|
|
|
|
|
if (this.SnapModeEnable & ObjectSnapMode.Nea)
|
|
|
|
|
for (let en of visEns)
|
|
|
|
|
for (let en of selectEns)
|
|
|
|
|
{
|
|
|
|
|
if (!en.Id || en.IsErase)
|
|
|
|
|
continue;
|
|
|
|
|