public Arc(eArcType type) { m_arcType = type; m_curPoint = eCurrentPoint.p1; if (m_arcType == eArcType.typeCenterRadius) m_curPoint = eCurrentPoint.center; }
protected UnitPoint GetPoint(eCurrentPoint pointid) { try { if (pointid == eCurrentPoint.p1) { return(m_clone.P1); } if (pointid == eCurrentPoint.p1) { return(m_clone.P2); } if (pointid == eCurrentPoint.p1) { return(m_clone.P3); } if (pointid == eCurrentPoint.p1) { return(m_clone.P4); } return(m_owner.P1); } catch (Exception ex) { throw ex; } }
private eDrawObjectMouseDownEnum MouseDown3P123(ICanvas canvas, UnitPoint point, ISnapPoint snappoint) { try { OnMouseMove(canvas, point); if (m_curPoint == eCurrentPoint.p1) { m_curPoint = eCurrentPoint.p2; return(eDrawObjectMouseDownEnum.Continue); } if (m_curPoint == eCurrentPoint.p2) { m_curPoint = eCurrentPoint.p3; return(eDrawObjectMouseDownEnum.Continue); } if (m_curPoint == eCurrentPoint.p3) { m_curPoint = eCurrentPoint.done; Selected = false; return(eDrawObjectMouseDownEnum.Done); } return(eDrawObjectMouseDownEnum.Done); } catch (Exception ex) { throw ex; } }
public void Copy(Circle3Point acopy) { base.Copy(acopy); m_p1 = acopy.m_p1; m_p2 = acopy.m_p2; m_p3 = acopy.m_p3; m_center = acopy.m_center; m_radius = acopy.m_radius; m_curPoint = acopy.m_curPoint; }
public BezierTool(BezierTool owner, eCurrentPoint id) { try { m_owner = owner; m_clone = m_owner.Clone() as BezierTool; m_pointId = id; Type = owner.Type; m_originalPoint = GetPoint(m_pointId); UseRoute = false; } catch (Exception ex) { throw ex; } }
public eDrawObjectMouseDown OnMouseDown(ICanvas canvas, UnitPoint point, ISnapPoint snappoint) { OnMouseMove(canvas, point); if (CurrentPoint == eCurrentPoint.p1) { CurrentPoint = eCurrentPoint.p3; return(eDrawObjectMouseDown.Continue); } if (CurrentPoint == eCurrentPoint.p3) { CurrentPoint = eCurrentPoint.done; OnMouseMove(canvas, point); Selected = false; return(eDrawObjectMouseDown.Done); } return(eDrawObjectMouseDown.Done); }
/// <summary> /// 监听鼠标按下事件 /// </summary> /// <param name="canvas"></param> /// <param name="point"></param> /// <param name="snappoint"></param> /// <returns></returns> public virtual eDrawObjectMouseDown OnMouseDown(ICanvas canvas, UnitPoint point, ISnapPoint snappoint) { OnMouseMove(canvas, point); if (m_curPoint == eCurrentPoint.p1) { m_curPoint = eCurrentPoint.p2; return(eDrawObjectMouseDown.Continue); } if (m_curPoint == eCurrentPoint.p2) { m_curPoint = eCurrentPoint.p3; return(eDrawObjectMouseDown.Continue); } if (m_curPoint == eCurrentPoint.p3) { m_curPoint = eCurrentPoint.done; Selected = false; //return eDrawObjectMouseDown.Done; } return(eDrawObjectMouseDown.Done); }
protected void SetPoint(eCurrentPoint pointid, UnitPoint point, BezierTool Bezier) { try { if (pointid == eCurrentPoint.p1) { Bezier.P1 = point; } if (pointid == eCurrentPoint.p2) { Bezier.P2 = point; } if (pointid == eCurrentPoint.p3) { Bezier.P3 = point; } if (pointid == eCurrentPoint.p4) { Bezier.P4 = point; } } catch (Exception ex) { throw ex; } }
public virtual INodePoint NodePoint(ICanvas canvas, UnitPoint point) { //Console.WriteLine(m_p1.X+" "+m_p1.Y); float thWidth = Line.ThresholdWidth(canvas, Width, ThresholdPixel); if (HitUtil.PointInPoint(Center, point, thWidth))//圓心位移 { return(new NodePointCircleCenter(this)); } bool radiushit = HitUtil.PointInPoint(m_p1, point, thWidth); if (radiushit == false) { radiushit = HitUtil.PointInPoint(m_p2, point, thWidth); } if (radiushit == false) { radiushit = HitUtil.PointInPoint(m_p3, point, thWidth); } if (radiushit) { m_curPoint = eCurrentPoint.radius; m_lastPoint = Center; return(new NodePointCircleRadius(this)); } return(null); //float thWidth = Line.ThresholdWidth(canvas, Width, ThresholdPixel); //if (HitUtil.PointInPoint(P1, point, thWidth)) //{ // m_lastPoint = P1; // return new NodePointArc3PointPoint(this, eCurrentPoint.p1); //} //if (HitUtil.PointInPoint(P2, point, thWidth)) //{ // m_lastPoint = P2; // return new NodePointArc3PointPoint(this, eCurrentPoint.p2); //} //if (HitUtil.PointInPoint(P3, point, thWidth)) //{ // m_lastPoint = P3; // return new NodePointArc3PointPoint(this, eCurrentPoint.p3); //} //UnitPoint p = StartAngleNodePoint(canvas); //if (HitUtil.PointInPoint(p, point, thWidth)) //{ // m_lastPoint = p; // return new NodePointArc3PointPoint(this, eCurrentPoint.startangle); //} //p = EndAngleNodePoint(canvas); //if (HitUtil.PointInPoint(p, point, thWidth)) //{ // m_lastPoint = p; // return new NodePointArc3PointPoint(this, eCurrentPoint.endangle); //} //p = RadiusNodePoint(canvas); //if (HitUtil.PointInPoint(p, point, thWidth)) //{ // m_lastPoint = p; // return new NodePointArc3PointPoint(this, eCurrentPoint.radius); //} return(null); }
public Arc3Point(eArcType type) { m_type = type; m_curPoint = eCurrentPoint.p1; }
public Circle3Point() { m_curPoint = eCurrentPoint.p1; }
eDrawObjectMouseDown MouseDown3P132(ICanvas canvas, UnitPoint point, ISnapPoint snappoint) { OnMouseMove(canvas, point); if (m_curPoint == eCurrentPoint.p1) { m_curPoint = eCurrentPoint.p3; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.p3) { m_curPoint = eCurrentPoint.p2; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.p2) { m_curPoint = eCurrentPoint.done; Selected = false; return eDrawObjectMouseDown.Done; } return eDrawObjectMouseDown.Done; }
public virtual eDrawObjectMouseDown OnMouseDown(ICanvas canvas, UnitPoint point, ISnapPoint snappoint) { OnMouseMove(canvas, point); if (m_arcType == eArcType.type2point) { if (m_curPoint == eCurrentPoint.p1) { m_curPoint = eCurrentPoint.p2; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.p2) { m_curPoint = eCurrentPoint.startAngle; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.startAngle) { m_curPoint = eCurrentPoint.endAngle; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.endAngle) { m_curPoint = eCurrentPoint.done; OnMouseMove(canvas, point); Selected = false; return eDrawObjectMouseDown.Done; } } if (m_arcType == eArcType.typeCenterRadius) { if (m_curPoint == eCurrentPoint.center) { m_curPoint = eCurrentPoint.radius; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.radius) { m_curPoint = eCurrentPoint.startAngle; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.startAngle) { m_curPoint = eCurrentPoint.endAngle; return eDrawObjectMouseDown.Continue; } if (m_curPoint == eCurrentPoint.endAngle) { m_curPoint = eCurrentPoint.done; OnMouseMove(canvas, point); Selected = false; return eDrawObjectMouseDown.Done; } } return eDrawObjectMouseDown.Done; }
public virtual void OnKeyDown(ICanvas canvas, KeyEventArgs e) { if (e.KeyCode == Keys.D && (m_curPoint == eCurrentPoint.startAngle || m_curPoint == eCurrentPoint.endAngle)) { if (Direction == eDirection.kCW) Direction = eDirection.kCCW; else Direction = eDirection.kCW; e.Handled = true; } if (e.KeyCode == Keys.C) // switch to centerRadius mode { m_center = UnitPoint.Empty; m_radius = 0; m_startAngle = 0; m_endAngle = 0; m_arcType = eArcType.typeCenterRadius; m_curPoint = eCurrentPoint.center; e.Handled = true; canvas.Invalidate(); } if (e.KeyCode == Keys.D2) // switch to 2 pointmode { m_center = UnitPoint.Empty; m_radius = 0; m_startAngle = 0; m_endAngle = 0; m_arcType = eArcType.type2point; m_curPoint = eCurrentPoint.p1; e.Handled = true; canvas.Invalidate(); } }
public virtual INodePoint NodePoint(ICanvas canvas, UnitPoint point) { float thWidth = Line.ThresholdWidth(canvas, Width, ThresholdPixel); if (HitUtil.PointInPoint(m_center, point, thWidth)) return new NodePointArcCenter(this); if (HitUtil.PointInPoint(StartAnglePoint, point, thWidth)) { m_curPoint = eCurrentPoint.startAngle; m_lastPoint = m_center; return new NodePointArcAngle(this); } if (HitUtil.PointInPoint(EndAnglePoint, point, thWidth)) { m_curPoint = eCurrentPoint.endAngle; m_lastPoint = m_center; return new NodePointArcAngle(this); } if (HitUtil.PointInPoint(RadiusPoint, point, thWidth)) { m_curPoint = eCurrentPoint.radius; m_lastPoint = m_center; return new NodePointArcRadius(this); } return null; }
public void Copy(Arc3Point acopy) { base.Copy(acopy); m_p1 = acopy.m_p1; m_p2 = acopy.m_p2; m_p3 = acopy.m_p3; m_center = acopy.m_center; m_radius = acopy.m_radius; m_startAngle = acopy.m_startAngle; m_endAngle = acopy.m_endAngle; m_direction = acopy.m_direction; m_curPoint = acopy.m_curPoint; }
public void Copy(Arc acopy) { base.Copy(acopy); Center = acopy.Center; Radius = acopy.Radius; StartAngle = acopy.StartAngle; EndAngle = acopy.EndAngle; Selected = acopy.Selected; Direction = acopy.Direction; m_arcType = acopy.m_arcType; m_curPoint = acopy.m_curPoint; }
public virtual INodePoint NodePoint(ICanvas canvas, UnitPoint point) { float thWidth = Line.ThresholdWidth(canvas, Width, ThresholdPixel); if (HitUtil.PointInPoint(Center, point, thWidth)) { return(new NodePointArcCenter(this)); } bool radiushit = HitUtil.PointInPoint(AnglePoint(0), point, thWidth); if (radiushit == false) { radiushit = HitUtil.PointInPoint(AnglePoint(90), point, thWidth); } if (radiushit == false) { radiushit = HitUtil.PointInPoint(AnglePoint(180), point, thWidth); } if (radiushit == false) { radiushit = HitUtil.PointInPoint(AnglePoint(270), point, thWidth); } if (radiushit) { m_curPoint = eCurrentPoint.radius; m_lastPoint = Center; return(new NodePointArcRadius(this)); } return(null); //float thWidth = Line.ThresholdWidth(canvas, Width, ThresholdPixel); //if (HitUtil.PointInPoint(P1, point, thWidth)) //{ // m_lastPoint = P1; // return new NodePointArc3PointPoint(this, eCurrentPoint.p1); //} //if (HitUtil.PointInPoint(P2, point, thWidth)) //{ // m_lastPoint = P2; // return new NodePointArc3PointPoint(this, eCurrentPoint.p2); //} //if (HitUtil.PointInPoint(P3, point, thWidth)) //{ // m_lastPoint = P3; // return new NodePointArc3PointPoint(this, eCurrentPoint.p3); //} //UnitPoint p = StartAngleNodePoint(canvas); //if (HitUtil.PointInPoint(p, point, thWidth)) //{ // m_lastPoint = p; // return new NodePointArc3PointPoint(this, eCurrentPoint.startangle); //} //p = EndAngleNodePoint(canvas); //if (HitUtil.PointInPoint(p, point, thWidth)) //{ // m_lastPoint = p; // return new NodePointArc3PointPoint(this, eCurrentPoint.endangle); //} //p = RadiusNodePoint(canvas); //if (HitUtil.PointInPoint(p, point, thWidth)) //{ // m_lastPoint = p; // return new NodePointArc3PointPoint(this, eCurrentPoint.radius); //} //return null; }