添加了取消动作功能

pull/2/head
ChenX 7 years ago
parent 10a39fb154
commit d4dc7af85c

@ -41,6 +41,11 @@ export class Editor
app.m_Viewer.m_PreViewer.SerCursorPostion(this.m_MouseCtrl.m_CurMousePointVCS); app.m_Viewer.m_PreViewer.SerCursorPostion(this.m_MouseCtrl.m_CurMousePointVCS);
}) })
} }
//尝试取消当前的操作
Canel()
{
this.m_GetpointServices.Canel();
}
GetPoint(prompt?: GetPointPrompt, showDyn: boolean = true): Promise<PromptPointResult> GetPoint(prompt?: GetPointPrompt, showDyn: boolean = true): Promise<PromptPointResult>
{ {
return this.m_GetpointServices.Doit(prompt, showDyn); return this.m_GetpointServices.Doit(prompt, showDyn);

@ -53,6 +53,11 @@ export class GetPointServices
}); });
} }
Canel()
{
this._return();
}
//更新当前点事件,统一使用该方法注入其他服务的更新(aop在此方法中注入) //更新当前点事件,统一使用该方法注入其他服务的更新(aop在此方法中注入)
UpdateCurPointEvent(pt: Vector3) UpdateCurPointEvent(pt: Vector3)
{ {
@ -230,6 +235,7 @@ export class GetPointServices
//调用promis的回调. //调用promis的回调.
protected _return(v?: THREE.Vector3 | string) protected _return(v?: THREE.Vector3 | string)
{ {
if (!this.promisResolve) return;
this.restAppState(); this.restAppState();
let retValue = new PromptPointResult(); let retValue = new PromptPointResult();
@ -248,6 +254,8 @@ export class GetPointServices
retValue.StringResult = v; retValue.StringResult = v;
} }
this.promisResolve(retValue); this.promisResolve(retValue);
this.promisResolve = undefined;
} }
//初始化设置 程序的状态 //初始化设置 程序的状态
@ -262,12 +270,14 @@ export class GetPointServices
app.m_Editor.m_InputState = InputState.None; app.m_Editor.m_InputState = InputState.None;
app.m_Viewer.m_PreViewer.ToSelect(); app.m_Viewer.m_PreViewer.ToSelect();
app.m_Editor.UpdateScreen();
this.removeCalls.forEach(f => f()); this.removeCalls.forEach(f => f());
this.removeCalls.length = 0; this.removeCalls.length = 0;
this.noSnapList.clear(); this.noSnapList.clear();
app.m_Editor.UpdateScreen();
app.m_Viewer.m_PreViewer.render();
} }
//极轴捕捉的线列表 //极轴捕捉的线列表
@ -576,6 +586,9 @@ export class GetDistanceServices
return new Promise<PromptDistendResult>(async (resolve, reject) => return new Promise<PromptDistendResult>(async (resolve, reject) =>
{ {
this.promisResolve = resolve; this.promisResolve = resolve;
this.removeCalls.push(() => app.m_Editor.Canel())
let p1 = prompt.BasePoint; let p1 = prompt.BasePoint;
if (!p1) if (!p1)
{ {
@ -650,11 +663,12 @@ export class GetDistanceServices
{ {
res.Status = PromptStatus.Cancel; res.Status = PromptStatus.Cancel;
} }
else if (v instanceof Number) else if ((typeof v) === "number")
{ {
res.Value = v as number;
res.Status = PromptStatus.OK res.Status = PromptStatus.OK
} }
else else if (v instanceof String)
{ {
res.Status = PromptStatus.Keyword res.Status = PromptStatus.Keyword
res.StringResult = v; res.StringResult = v;

@ -49,7 +49,7 @@ export class PromptDistendResult extends PromptResult
{ {
return this._value; return this._value;
} }
set Value(v) set Value(v: number)
{ {
this._value = v; this._value = v;
} }

Loading…
Cancel
Save