Example #1
0
        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();
                }
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }