The Shape of Everything
A website mostly about Mac stuff, written by August "Gus" Mueller
» Acorn
» Retrobatch
» Mastodon
» Micro.blog
» Instagram
» Github
» Maybe Pizza?
» Archives
» Feed
» Micro feed
October 10, 2011

Presented without context or comment:

- (void)printBezierCode {

    static int printBezierCodeIdx = 0;

    printBezierCodeIdx++;

    printf("\n");
    printf("NSBezierPath *p%d = [NSBezierPath bezierPath];\n", printBezierCodeIdx);

    NSBezierPath *p = [self bezierPath];

    NSInteger i;
    NSInteger numElements = [p elementCount];
    if (numElements > 0)
    {
        NSPoint points[3];
        for (i = 0; i < numElements; i++) 
        {
            switch ([p elementAtIndex:i associatedPoints:points]) 
            {
                case NSMoveToBezierPathElement:
                    printf("[p%d moveToPoint:NSMakePoint(%f, %f)];\n",
                           printBezierCodeIdx, points[0].x, points[0].y);
                    break;

                case NSLineToBezierPathElement:
                    printf("[p%d lineToPoint:NSMakePoint(%f, %f)];\n",
                           printBezierCodeIdx, points[0].x, points[0].y);
                    break;

                case NSCurveToBezierPathElement:

                    printf("[p%d curveToPoint:NSMakePoint(%f, %f) "
                           "controlPoint1:NSMakePoint(%f, %f) "
                           "controlPoint2:NSMakePoint(%f, %f)];\n",
                           printBezierCodeIdx,
                           points[2].x, points[2].y,
                           points[0].x, points[0].y,
                           points[1].x, points[1].y);
                    break;

                case NSClosePathBezierPathElement:
                    printf("[p%d closePath];\n", printBezierCodeIdx);
                    break;
            }
        }
    }
}

Formatting adjusted for this post.