DrawKit
Vector and illustration framework for Mac OS X
|
Instance Methods | |
(NSArray *) | - dividePathWithPath: |
(NSBezierPath *) | - performBooleanOp:withPath: |
(NSBezierPath *) | - renormalizePath |
(void) | - showIntersectionsWithPath: |
implements union, intersection, diff and xor between pairs of paths.
this maintains paths in their original form as much as possible.
restrictions: both operand paths must be closed.
how it works:
first, the points where the paths intersect are found by searching for intersections between flattened versions of the paths. This is the slowest part of the operation because every path segments needs to be tested against every path segment of the second path (after weeding out obvious non-intersecting points).
then, the paths are split up into new path fragments at the intersecting points. Depending on which operation is being performed, some of these paths will be thrown away, and the rest joined up into the new path.
- (NSArray*) dividePathWithPath: | (NSBezierPath *) | path |
- (NSBezierPath*) performBooleanOp: | (DKBooleanOperation) | op | |
withPath: | (NSBezierPath *) | path | |
- (NSBezierPath*) renormalizePath |
- (void) showIntersectionsWithPath: | (NSBezierPath *) | path |