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); }