Exemplo n.º 1
0
    protected float _radius = 100; // rayon souhaité

    #endregion Fields

    #region Constructors

    public ArchedPoint2(Point2 point)
        : base(point)
    {
        _prevEdge = point.GetPrevEdge ();
        _nextEdge = point.GetNextEdge ();
        _junction = JunctionType.Curved;

        _prevEdge.SetNextPoint2 (this);
        _nextEdge.SetPrevPoint2 (this);

        Update (false);
    }
Exemplo n.º 2
0
    public void SetJunctionType(int index, JunctionType junction)
    {
        Point2 selectedPoint = _points[index];

        if (selectedPoint.GetJunction () != junction)
        {
            if (junction == JunctionType.Curved)
            {
                ArchedPoint2 ap = new ArchedPoint2 (selectedPoint);
                _points[index] = ap;
            }
            else if (junction == JunctionType.Broken)
            {
                Point2 newPoint = new Point2 (selectedPoint);
                newPoint.SetPrevEdge (selectedPoint.GetPrevEdge ());
                newPoint.SetNextEdge (selectedPoint.GetNextEdge ());

                Edge2 prevEdge = newPoint.GetPrevEdge ();
                if (prevEdge != null)
                {
                    prevEdge.SetNextPoint2 (newPoint);
                }

                Edge2 nextEdge = newPoint.GetNextEdge ();
                if (nextEdge != null)
                {
                    nextEdge.SetPrevPoint2 (newPoint);
                }

                _points[index] = newPoint;
            }
        }
    }