|
|
@ -1,11 +1,12 @@
|
|
|
|
import * as THREE from 'three';
|
|
|
|
|
|
|
|
import { Vector3 } from 'three';
|
|
|
|
import { Vector3 } from 'three';
|
|
|
|
|
|
|
|
import * as THREE from 'three';
|
|
|
|
import * as xaop from 'xaop';
|
|
|
|
import * as xaop from 'xaop';
|
|
|
|
|
|
|
|
|
|
|
|
import { app } from '../ApplicationServices/Application';
|
|
|
|
import { app } from '../ApplicationServices/Application';
|
|
|
|
import { GetDistendPrompt, GetPointPrompt, InputState } from '../Common/InputState';
|
|
|
|
import { GetDistendPrompt, GetPointPrompt, InputState } from '../Common/InputState';
|
|
|
|
import { KeyBoard, MouseKey } from '../Common/KeyEnum';
|
|
|
|
import { KeyBoard, MouseKey } from '../Common/KeyEnum';
|
|
|
|
import { equaln, fixAngle, Intersect, midPoint, polar } from '../Geometry/GeUtils';
|
|
|
|
import { equaln, fixAngle, Intersect, midPoint, polar } from '../Geometry/GeUtils';
|
|
|
|
|
|
|
|
import { PreViewer } from '../GraphicsSystem/PreViewer';
|
|
|
|
import { DynamicInputManage } from '../UI/DynamicPrompt/DynamicInputManage';
|
|
|
|
import { DynamicInputManage } from '../UI/DynamicPrompt/DynamicInputManage';
|
|
|
|
import { GetDistancePromptBlock } from '../UI/DynamicPrompt/GetDistancePromptBlock';
|
|
|
|
import { GetDistancePromptBlock } from '../UI/DynamicPrompt/GetDistancePromptBlock';
|
|
|
|
import { GetPoint2PromptBlock, GetPointPromptBlock } from '../UI/DynamicPrompt/GetPointPromptBlock';
|
|
|
|
import { GetPoint2PromptBlock, GetPointPromptBlock } from '../UI/DynamicPrompt/GetPointPromptBlock';
|
|
|
@ -336,26 +337,7 @@ export class GetPointServices
|
|
|
|
let preView = app.m_Viewer.m_PreViewer;
|
|
|
|
let preView = app.m_Viewer.m_PreViewer;
|
|
|
|
|
|
|
|
|
|
|
|
//绘制捕捉光标列表
|
|
|
|
//绘制捕捉光标列表
|
|
|
|
for (let snapP of this.m_SnapPtList)
|
|
|
|
this.DrawSnapCross(preView);
|
|
|
|
{
|
|
|
|
|
|
|
|
let lines = preView.DrawCross(5, preView.m_BlueDashMaterial);
|
|
|
|
|
|
|
|
let p = snapP.clone();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.m_Viewer.WorldToScreen(p);
|
|
|
|
|
|
|
|
preView.ScreenPointToViewerPoint(p);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let move = new THREE.Matrix4();
|
|
|
|
|
|
|
|
move.setPosition(p);
|
|
|
|
|
|
|
|
for (let l of lines)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
l.applyMatrix(move);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.m_SnapAxisBlueLine.push(l);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preView.Scene.add(l);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//如果存在捕捉
|
|
|
|
//如果存在捕捉
|
|
|
|
if (app.m_Viewer.m_PreViewer.m_LastSnapPoint)
|
|
|
|
if (app.m_Viewer.m_PreViewer.m_LastSnapPoint)
|
|
|
@ -424,31 +406,6 @@ export class GetPointServices
|
|
|
|
{
|
|
|
|
{
|
|
|
|
this.DrawLine(insD.i1.basePt, insD.ins, preView.m_BlueDashMaterial);
|
|
|
|
this.DrawLine(insD.i1.basePt, insD.ins, preView.m_BlueDashMaterial);
|
|
|
|
this.DrawLine(insD.i2.basePt, insD.ins, preView.m_BlueDashMaterial);
|
|
|
|
this.DrawLine(insD.i2.basePt, insD.ins, preView.m_BlueDashMaterial);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//绘制捕捉光标列表
|
|
|
|
|
|
|
|
for (let snapP of this.m_SnapPtList)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let lines = preView.DrawCross(5, preView.m_BlueDashMaterial);
|
|
|
|
|
|
|
|
let p = insD.ins.clone();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.m_Viewer.WorldToScreen(p);
|
|
|
|
|
|
|
|
preView.ScreenPointToViewerPoint(p);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let ro = new THREE.Matrix4();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let move = new THREE.Matrix4();
|
|
|
|
|
|
|
|
move.setPosition(p);
|
|
|
|
|
|
|
|
for (let l of lines)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
l.applyMatrix(move);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.m_SnapAxisBlueLine.push(l);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preView.Scene.add(l);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return insD.ins.clone();
|
|
|
|
return insD.ins.clone();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -468,6 +425,25 @@ export class GetPointServices
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private DrawSnapCross(preView: PreViewer)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
for (let snapP of this.m_SnapPtList)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let lines = preView.DrawCross(5, preView.m_BlueDashMaterial);
|
|
|
|
|
|
|
|
let p = snapP.clone();
|
|
|
|
|
|
|
|
app.m_Viewer.WorldToScreen(p);
|
|
|
|
|
|
|
|
preView.ScreenPointToViewerPoint(p);
|
|
|
|
|
|
|
|
let move = new THREE.Matrix4();
|
|
|
|
|
|
|
|
move.setPosition(p);
|
|
|
|
|
|
|
|
for (let l of lines)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
l.applyMatrix(move);
|
|
|
|
|
|
|
|
this.m_SnapAxisBlueLine.push(l);
|
|
|
|
|
|
|
|
preView.Scene.add(l);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 在preView中绘制 临时的线段
|
|
|
|
* 在preView中绘制 临时的线段
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -527,7 +503,7 @@ export class GetPointServices
|
|
|
|
app.m_Viewer.m_PreViewer.m_LastEntity = obj;
|
|
|
|
app.m_Viewer.m_PreViewer.m_LastEntity = obj;
|
|
|
|
app.m_Viewer.m_PreViewer.m_LastIndex = i;
|
|
|
|
app.m_Viewer.m_PreViewer.m_LastIndex = i;
|
|
|
|
|
|
|
|
|
|
|
|
app.m_Viewer.m_PreViewer.SerCursorPostion(ptC);
|
|
|
|
// app.m_Viewer.m_PreViewer.SerCursorPostion(ptC); 设置点为捕捉到的点.
|
|
|
|
|
|
|
|
|
|
|
|
app.m_Viewer.m_PreViewer.render();
|
|
|
|
app.m_Viewer.m_PreViewer.render();
|
|
|
|
|
|
|
|
|
|
|
|