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(); }
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; } }
/* * 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(); } }
/* 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(); }