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

Reply via email to