Ejemplo n.º 1
0
        private int AddJoint(int pointIndex, ref JoinSample joinSample, PenWorkspace ws, Buffer <CCVector2> insetBuffer, Buffer <CCVector2> outsetBuffer)
        {
            InsetOutsetCount vioCount = new InsetOutsetCount();

            switch (_pen.LineJoin)
            {
            case LineJoin.Miter:
                vioCount = _pen.ComputeMiter(ref joinSample, ws);
                break;

            case LineJoin.Bevel:
                vioCount = _pen.ComputeBevel(ref joinSample, ws);
                break;
            }

            if (insetBuffer != null)
            {
                for (int i = 0; i < vioCount.InsetCount; i++)
                {
                    insetBuffer.SetNext(ws.XYInsetBuffer[i]);
                }
            }
            if (outsetBuffer != null)
            {
                for (int i = 0; i < vioCount.OutsetCount; i++)
                {
                    outsetBuffer.SetNext(ws.XYOutsetBuffer[i]);
                }
            }

            return((_strokeType != StrokeType.Outline) ? AddJoint(pointIndex, vioCount, ws) : 0);
        }