NSBezierPath

NSBezierPath Mac OS X 10.0

This class represents Bezier paths that are vector-based paths based on polynomial formulas. Vector paths are the basis of Quartz 2D. As such, this class provides the most general interface to Quartz 2D from Cocoa.

A Bezier path is constructed from path elements. Complex paths are constructed by appending lines and curves to the path. It is also possible to move to a point, thus creating a broken space in the path. Lines are appended to a path using the method lineToPoint:. Curves are appended using the method curveToPoint:controlPoint1:controlPoint2:. To move to a new location on the canvas, use the method moveToPoint:. In all of these methods, the point referred to is the end point of the element; the starting point is implicitly specified as the endpoint of the last element in the path. Chapter 4 provides a more detailed discussion on the use of NSBezierPath for drawing.

figs/cocn_1506.gif

@interface NSBezierPath : NSObject <NSCoding, NSCopying>
 // Accessor Methods
   - (void)setMiterLimit:(float)miterLimit;
   - (float)miterLimit;
   - (void)setLineDash:(const float *)pattern count:(int)count phase:(float)phase;
   - (void)setCachesBezierPath:(BOOL)flag;
   - (BOOL)cachesBezierPath;
   - (void)setClip;
   - (void)setLineWidth:(float)lineWidth;
   - (float)lineWidth;
   - (void)setWindingRule:(NSWindingRule)windingRule;
   - (NSWindingRule)windingRule;
   - (void)setLineJoinStyle:(NSLineJoinStyle)lineJoinStyle;
   - (NSLineJoinStyle)lineJoinStyle;
   - (void)setAssociatedPoints:(NSPointArray)points atIndex:(int)index;
   - (void)setLineCapStyle:(NSLineCapStyle)lineCapStyle;
   - (NSLineCapStyle)lineCapStyle;
   - (void)setFlatness:(float)flatness;
   - (float)flatness;
 // Class Methods
   + (NSBezierPath *)bezierPath;
   + (NSBezierPath *)bezierPathWithOvalInRect:(NSRect)rect;
   + (NSBezierPath *)bezierPathWithRect:(NSRect)rect;
   + (void)clipRect:(NSRect)rect;
   + (float)defaultFlatness;
   + (NSLineCapStyle)defaultLineCapStyle;
   + (NSLineJoinStyle)defaultLineJoinStyle;
   + (float)defaultLineWidth;
   + (float)defaultMiterLimit;
   + (NSWindingRule)defaultWindingRule;
   + (void)drawPackedGlyphs:(const char *)packedGlyphs atPoint:(NSPoint)point;
   + (void)fillRect:(NSRect)rect;
   + (void)setDefaultFlatness:(float)flatness;
   + (void)setDefaultLineCapStyle:(NSLineCapStyle)lineCapStyle;
   + (void)setDefaultLineJoinStyle:(NSLineJoinStyle)lineJoinStyle;
   + (void)setDefaultLineWidth:(float)lineWidth;
   + (void)setDefaultMiterLimit:(float)limit;
   + (void)setDefaultWindingRule:(NSWindingRule)windingRule;
   + (void)strokeLineFromPoint:(NSPoint)point1 toPoint:(NSPoint)point2;
   + (void)strokeRect:(NSRect)rect;
 // Instance Methods
   - (void)addClip;
   - (void)appendBezierPath:(NSBezierPath *)path;
   - (void)appendBezierPathWithArcFromPoint:(NSPoint)point1;
   - (void)appendBezierPathWithArcWithCenter:(NSPoint)center radius:(float)radius;
   - (void)appendBezierPathWithArcWithCenter:(NSPoint)center radius:(float)radius;
   - (void)appendBezierPathWithGlyph:(NSGlyph)glyph inFont:(NSFont *)font;
   - (void)appendBezierPathWithGlyphs:(NSGlyph *)glyphs count:(int)count;
   - (void)appendBezierPathWithOvalInRect:(NSRect)rect;
   - (void)appendBezierPathWithPackedGlyphs:(const char *)packedGlyphs;
   - (void)appendBezierPathWithPoints:(NSPointArray)points count:(int)count;
   - (void)appendBezierPathWithRect:(NSRect)rect;
   - (NSBezierPath *)bezierPathByFlatteningPath;
   - (NSBezierPath *)bezierPathByReversingPath;
   - (NSRect)bounds;
   - (void)closePath;
   - (NSPoint)currentPoint;
   - (NSBezierPathElement)elementAtIndex:(int)index;
   - (NSBezierPathElement)elementAtIndex:(int)index;
   - (int)elementCount;
   - (void)fill;
   - (void)getLineDash:(float *)pattern count:(int *)count phase:(float *)phase;
   - (BOOL)isEmpty;
   - (void)lineToPoint:(NSPoint)point;
   - (void)moveToPoint:(NSPoint)point;
   - (void)relativeCurveToPoint:(NSPoint)endPoint;
   - (void)relativeLineToPoint:(NSPoint)point;
   - (void)relativeMoveToPoint:(NSPoint)point;
   - (void)removeAllPoints;
   - (void)stroke;
   - (void)transformUsingAffineTransform:(NSAffineTransform *)transform;
   - (BOOL)containsPoint:(NSPoint)point;
   - (NSRect)controlPointBounds;
   - (void)curveToPoint:(NSPoint)endPoint;
 // Methods Implementing NSCoding
   - (void)encodeWithCoder:(NSCoder *)aCoder;
   - (id)initWithCoder:(NSCoder *)aDecoder;
 // Methods Implementing NSCopying
   - (id)copyWithZone:(NSZone *)zone;



    Part II: API Quick Reference
    Chapter 13. Foundation Classes