private void OnPointInputReturn(DynInputCtrl sender, DynInputResult retult) { DynInputResult <LitMath.Vector2> xyRet = retult as DynInputResult <LitMath.Vector2>; if (xyRet != null && xyRet.status == DynInputStatus.OK) { switch (_step) { case Step.Step1_SpecifyBasePoint: { _currXline = new Xline(); _currXline.basePoint = xyRet.value; _currXline.layerId = this.document.currentLayerId; _currXline.color = this.document.currentColor; this.GotoStep(Step.Step2_SpecifyOtherPoint); } break; case Step.Step2_SpecifyOtherPoint: { LitMath.Vector2 dir = (xyRet.value - _currXline.basePoint).normalized; if (dir.x != 0 || dir.y != 0) { _currXline.direction = dir; _currXline.layerId = this.document.currentLayerId; _currXline.color = this.document.currentColor; _xlines.Add(_currXline); _currXline = _currXline.Clone() as Xline; } this.GotoStep(Step.Step2_SpecifyOtherPoint); } break; } } else { if (_xlines.Count > 0) { _mgr.FinishCurrentCommand(); } else { _mgr.CancelCurrentCommand(); } } }
public override IEventResult OnMouseDown(IMouseButtonEventArgs e) { switch (_step) { case Step.Step1_SpecifyBasePoint: if (e.IsLeftPressed) { _currXline = presenter.AppendEntity(new Xline(), DBObjectState.Unconfirmed); _currXline.basePoint = this.Pointer.CurrentSnapPoint; _currXline.LayerId = this.document.currentLayerId; _currXline.Color = this.document.currentColor; this.GotoStep(Step.Step2_SpecifyOtherPoint); } break; case Step.Step2_SpecifyOtherPoint: if (e.IsLeftPressed) { CADVector dir = (this.Pointer.CurrentSnapPoint - _currXline.basePoint).normalized; if (dir.X != 0 || dir.Y != 0) { _currXline.direction = dir; _currXline.LayerId = this.document.currentLayerId; _currXline.Color = this.document.currentColor; _xlines.Add(_currXline); _currXline = Drawing.AppendEntity((Xline)_currXline.Clone(), DBObjectState.Unconfirmed); _currXline.Draw(); //_currXline = _currXline.Clone() as Xline; } } break; } return(EventResult.Handled); }
public override EventResult OnMouseDown(MouseEventArgs e) { switch (_step) { case Step.Step1_SpecifyBasePoint: if (e.Button == MouseButtons.Left) { _currXline = new Xline(); _currXline.basePoint = this.pointer.currentSnapPoint; _currXline.layerId = this.document.currentLayerId; _currXline.color = this.document.currentColor; this.GotoStep(Step.Step2_SpecifyOtherPoint); } break; case Step.Step2_SpecifyOtherPoint: if (e.Button == MouseButtons.Left) { LitMath.Vector2 dir = (this.pointer.currentSnapPoint - _currXline.basePoint).normalized; if (dir.x != 0 || dir.y != 0) { _currXline.direction = dir; _currXline.layerId = this.document.currentLayerId; _currXline.color = this.document.currentColor; _xlines.Add(_currXline); _currXline = _currXline.Clone() as Xline; } } break; } return(EventResult.Handled); }