Beispiel #1
0
 public virtual void Undo()
 {
     m_owner.P1 = m_originalPoints[0];
     m_owner.P2 = m_originalPoints[1];
     m_owner.P3 = m_originalPoints[2];
     m_owner.UpdateArcFrom3Points();
 }
Beispiel #2
0
 public virtual void Undo()
 {
     try
     {
         m_owner.P1 = m_originalPoints[0];
         m_owner.P2 = m_originalPoints[1];
         m_owner.P3 = m_originalPoints[2];
         m_owner.UpdateArcFrom3Points();
     }
     catch (Exception ex)
     { throw ex; }
 }
Beispiel #3
0
        /*
         * UnitPoint GetPoint()
         * {
         *      if (m_curPoint == Arc3Point.eCurrentPoint.p1)
         *              return m_clone.P1;
         *      if (m_curPoint == Arc3Point.eCurrentPoint.p2)
         *              return m_clone.P2;
         *      if (m_curPoint == Arc3Point.eCurrentPoint.p3)
         *              return m_clone.P3;
         *      if (m_curPoint == Arc3Point.eCurrentPoint.startangle)
         *              return m_clone.P1;
         *      if (m_curPoint == Arc3Point.eCurrentPoint.endangle)
         *              return m_clone.P3;
         *      if (m_curPoint == Arc3Point.eCurrentPoint.radius)
         *              return m_clone.P2;
         *      return UnitPoint.Empty;
         * }
         * */
        void SetPoint(Arc3Point arc, UnitPoint pos)
        {
            if (m_curPoint == Arc3Point.eCurrentPoint.p1)
            {
                arc.P1 = pos;
            }
            if (m_curPoint == Arc3Point.eCurrentPoint.p2)
            {
                arc.P2 = pos;
            }
            if (m_curPoint == Arc3Point.eCurrentPoint.p3)
            {
                arc.P3 = pos;
            }

            double angleToRound = 0;

            if (Control.ModifierKeys == Keys.Control)
            {
                angleToRound = HitUtil.DegressToRadians(45);
            }
            double angleR = HitUtil.LineAngleR(arc.Center, pos, angleToRound);

            if (m_curPoint == Arc3Point.eCurrentPoint.startangle)
            {
                arc.P1 = HitUtil.PointOncircle(arc.Center, arc.Radius, angleR);
            }
            if (m_curPoint == Arc3Point.eCurrentPoint.endangle)
            {
                arc.P3 = HitUtil.PointOncircle(arc.Center, arc.Radius, angleR);
            }
            if (m_curPoint == Arc3Point.eCurrentPoint.radius)
            {
                double radius = HitUtil.Distance(arc.Center, pos);
                arc.P1 = HitUtil.PointOncircle(arc.Center, radius, HitUtil.DegressToRadians(arc.StartAngle));
                arc.P2 = pos;
                arc.P3 = HitUtil.PointOncircle(arc.Center, radius, HitUtil.DegressToRadians(arc.EndAngle));
            }

            arc.UpdateArcFrom3Points();

            if ((m_curPoint == Arc3Point.eCurrentPoint.startangle) || (m_curPoint == Arc3Point.eCurrentPoint.endangle))
            {
                arc.UpdateCenterNodeFromAngles();
            }
        }
Beispiel #4
0
        /*
        UnitPoint GetPoint()
        {
            if (m_curPoint == Arc3Point.eCurrentPoint.p1)
                return m_clone.P1;
            if (m_curPoint == Arc3Point.eCurrentPoint.p2)
                return m_clone.P2;
            if (m_curPoint == Arc3Point.eCurrentPoint.p3)
                return m_clone.P3;
            if (m_curPoint == Arc3Point.eCurrentPoint.startangle)
                return m_clone.P1;
            if (m_curPoint == Arc3Point.eCurrentPoint.endangle)
                return m_clone.P3;
            if (m_curPoint == Arc3Point.eCurrentPoint.radius)
                return m_clone.P2;
            return UnitPoint.Empty;
        }
         * */
        void SetPoint(Arc3Point arc, UnitPoint pos)
        {
            if (m_curPoint == Arc3Point.eCurrentPoint.p1)
                arc.P1 = pos;
            if (m_curPoint == Arc3Point.eCurrentPoint.p2)
                arc.P2 = pos;
            if (m_curPoint == Arc3Point.eCurrentPoint.p3)
                arc.P3 = pos;

            double angleToRound = 0;
            if (Control.ModifierKeys == Keys.Control)
                angleToRound = HitUtil.DegressToRadians(45);
            double angleR = HitUtil.LineAngleR(arc.Center, pos, angleToRound);

            if (m_curPoint == Arc3Point.eCurrentPoint.startangle)
                arc.P1 = HitUtil.PointOncircle(arc.Center, arc.Radius, angleR);
            if (m_curPoint == Arc3Point.eCurrentPoint.endangle)
                arc.P3 = HitUtil.PointOncircle(arc.Center, arc.Radius, angleR);
            if (m_curPoint == Arc3Point.eCurrentPoint.radius)
            {
                double radius = HitUtil.Distance(arc.Center, pos);
                arc.P1 = HitUtil.PointOncircle(arc.Center, radius, HitUtil.DegressToRadians(arc.StartAngle));
                arc.P2 = pos;
                arc.P3 = HitUtil.PointOncircle(arc.Center, radius, HitUtil.DegressToRadians(arc.EndAngle));
            }

            arc.UpdateArcFrom3Points();

            if ((m_curPoint == Arc3Point.eCurrentPoint.startangle) || (m_curPoint == Arc3Point.eCurrentPoint.endangle))
                arc.UpdateCenterNodeFromAngles();
        }