Revision: 4664
http://skim-app.svn.sourceforge.net/skim-app/?rev=4664&view=rev
Author: hofman
Date: 2008-09-21 17:29:47 +0000 (Sun, 21 Sep 2008)
Log Message:
-----------
Convenience accessor to get main associated point of a bezier path element
Modified Paths:
--------------
trunk/NSBezierPath_BDSKExtensions.h
trunk/NSBezierPath_BDSKExtensions.m
trunk/PDFAnnotationInk_SKExtensions.m
Modified: trunk/NSBezierPath_BDSKExtensions.h
===================================================================
--- trunk/NSBezierPath_BDSKExtensions.h 2008-09-21 14:25:29 UTC (rev 4663)
+++ trunk/NSBezierPath_BDSKExtensions.h 2008-09-21 17:29:47 UTC (rev 4664)
@@ -69,4 +69,6 @@
- (NSRect)nonEmptyBounds;
+- (NSPoint)associatedPointForElementAtIndex:(unsigned int)anIndex;
+
@end
Modified: trunk/NSBezierPath_BDSKExtensions.m
===================================================================
--- trunk/NSBezierPath_BDSKExtensions.m 2008-09-21 14:25:29 UTC (rev 4663)
+++ trunk/NSBezierPath_BDSKExtensions.m 2008-09-21 17:29:47 UTC (rev 4664)
@@ -347,17 +347,21 @@
return path;
}
+- (NSPoint)associatedPointForElementAtIndex:(unsigned int)anIndex {
+ NSPoint points[3];
+ if (NSCurveToBezierPathElement == [self elementAtIndex:anIndex
associatedPoints:points])
+ return points[2];
+ else
+ return points[0];
+}
+
- (NSRect)nonEmptyBounds {
NSRect bounds = [self bounds];
if (NSIsEmptyRect(bounds) && [self elementCount]) {
- NSPoint points[2];
NSPoint point, minPoint = NSZeroPoint, maxPoint = NSZeroPoint;
unsigned int i, count = [self elementCount];
for (i = 0; i < count; i++) {
- if ([self elementAtIndex:i associatedPoints:points] ==
NSCurveToBezierPathElement)
- point = points[2];
- else
- point = points[0];
+ point = [self associatedPointForElementAtIndex:i];
if (i == 0) {
minPoint = maxPoint = point;
} else {
Modified: trunk/PDFAnnotationInk_SKExtensions.m
===================================================================
--- trunk/PDFAnnotationInk_SKExtensions.m 2008-09-21 14:25:29 UTC (rev
4663)
+++ trunk/PDFAnnotationInk_SKExtensions.m 2008-09-21 17:29:47 UTC (rev
4664)
@@ -90,9 +90,7 @@
NSEnumerator *pathEnum = [[self paths] objectEnumerator];
NSBezierPath *path;
NSPoint point;
- NSPoint points[3];
int i, iMax;
- NSBezierPathElement element;
NSRect bounds = [self bounds];
[fdfString appendFDFName:SKFDFAnnotationInkListKey];
[fdfString appendString:@"["];
@@ -100,8 +98,7 @@
iMax = [path elementCount];
[fdfString appendString:@"["];
for (i = 0; i < iMax; i++) {
- element = [path elementAtIndex:i associatedPoints:points];
- point = element == NSCurveToBezierPathElement ? points[2] :
points[0];
+ point = [path associatedPointForElementAtIndex:i];
[fdfString appendFormat:@"%f %f ", point.x + NSMinX(bounds),
point.y + NSMinY(bounds)];
}
[fdfString appendString:@"]"];
@@ -124,15 +121,12 @@
NSEnumerator *pathEnum = [[self paths] objectEnumerator];
NSBezierPath *path;
NSPoint prevPoint, nextPoint = NSZeroPoint;
- NSPoint points[3];
int i, iMax;
- NSBezierPathElement element;
while (path = [pathEnum nextObject]) {
iMax = [path elementCount];
for (i = 0; i < iMax; i++) {
- element = [path elementAtIndex:i associatedPoints:points];
prevPoint = nextPoint;
- nextPoint = element == NSCurveToBezierPathElement ? points[2]
: points[0];
+ nextPoint = [path associatedPointForElementAtIndex:i];
if (i > 0 && SKPointNearLineFromPointToPoint(relPoint,
prevPoint, nextPoint, delta))
return YES;
}
@@ -158,15 +152,12 @@
NSEnumerator *pathEnum = [[self paths] objectEnumerator];
NSBezierPath *path;
NSPoint point;
- NSPoint points[3];
int i, iMax;
- NSBezierPathElement element;
while (path = [pathEnum nextObject]) {
iMax = [path elementCount];
pointValues = [[NSMutableArray alloc] initWithCapacity:iMax];
for (i = 0; i < iMax; i++) {
- element = [path elementAtIndex:i associatedPoints:points];
- point = element == NSCurveToBezierPathElement ? points[2] :
points[0];
+ point = [path associatedPointForElementAtIndex:i];
[pointValues addObject:[NSValue valueWithPoint:point]];
}
[pointLists addObject:pointValues];
@@ -200,15 +191,12 @@
NSEnumerator *pathEnum = [[self paths] objectEnumerator];
NSBezierPath *path;
NSPoint point;
- NSPoint points[3];
int i, iMax;
- NSBezierPathElement element;
while (path = [pathEnum nextObject]) {
iMax = [path elementCount];
pointValues = [[NSMutableArray alloc] initWithCapacity:iMax];
for (i = 0; i < iMax; i++) {
- element = [path elementAtIndex:i associatedPoints:points];
- point = element == NSCurveToBezierPathElement ? points[2] :
points[0];
+ point = [path associatedPointForElementAtIndex:i];
[pointValues addObject:[NSData
dataWithPointAsQDPoint:SKAddPoints(point, origin)]];
}
[pointLists addObject:pointValues];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit