Changeset 379

Show
Ignore:
Timestamp:
04/10/07 19:21:37 (2 years ago)
Author:
wren
Message:

Improved SVG Importing

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/SVGImport/MWBezierPoints.m

    r378 r379  
    1616        NSMutableArray *points; 
    1717        points = [NSMutableArray array]; 
    18         points = [MWBezier convertBezierPath:self withPointsPerLength:1]; 
     18        points = [MWBezier convertBezierPath:self withPointsPerLength:5]; 
    1919        return points; 
    2020} 
  • branches/SVGImport/MWPointView2.m

    r377 r379  
    9696        MWSVGImport *svgImport; 
    9797        svgImport = [[MWSVGImport alloc] init]; 
    98         [svgImport parseXMLFile:@"/Users/wren/Desktop/LaserLine Dev/SVGImport/samples/path2.svg"]; 
     98        [svgImport parseXMLFile:@"/Users/wren/Desktop/LaserLine Dev/SVGImport/samples/butterfly.svg"]; 
    9999         
    100100        NSMutableArray *arrayTemp = [svgImport array]; 
     
    129129} 
    130130 
     131- (BOOL)isFlipped 
     132{ 
     133        return YES; 
     134} 
     135 
    131136 
    132137@end 
  • branches/SVGImport/MWSVGImport.m

    r377 r379  
    157157                NSCharacterSet *letterSet = [NSCharacterSet letterCharacterSet]; 
    158158                NSCharacterSet *whiteSet = [NSCharacterSet whitespaceAndNewlineCharacterSet]; 
     159                NSCharacterSet *whiteOrNumberSet = [NSCharacterSet characterSetWithCharactersInString:@" -123456789.0"]; 
    159160                NSString *command; 
    160161                NSString *point; 
    161162                NSBezierPath *path; 
    162                 NSArray *tempArray; 
    163163                path = [NSBezierPath bezierPath]; 
     164                float f1,f2,f3,f4,f5,f6; 
     165                 
    164166                while ([theScanner isAtEnd] == NO) { 
     167                        //assume no horizontal or verticle lines at this moment 
     168                        [theScanner scanUpToCharactersFromSet:whiteOrNumberSet intoString:&command]; 
     169                         
     170                        if ( [command isEqualToString:@"M"] ) 
     171                        { 
     172                                [theScanner scanFloat:&f1]; 
     173                                [theScanner scanUpToCharactersFromSet:numberSet intoString:nil]; 
     174                                [theScanner scanFloat:&f2]; 
     175                                NSLog(@"Move to: %f,%f",f1,f2); 
     176                                [path moveToPoint:NSMakePoint(f1,f2)]; 
     177                        } else if ( [command isEqualToString:@"L"] ) 
     178                        { 
     179                                [theScanner scanFloat:&f1]; 
     180                                [theScanner scanUpToCharactersFromSet:numberSet intoString:nil]; 
     181                                [theScanner scanFloat:&f2]; 
     182                                NSLog(@"Line to: %f,%f",f1,f2); 
     183                                [path lineToPoint:NSMakePoint(f1,f2)]; 
     184                        } else if ( [command isEqualToString:@"C"] ) 
     185                        { 
     186                                [theScanner scanFloat:&f1]; 
     187                                [theScanner scanUpToCharactersFromSet:numberSet intoString:nil]; 
     188                                [theScanner scanFloat:&f2]; 
     189                                [theScanner scanUpToCharactersFromSet:numberSet intoString:nil]; 
     190                                [theScanner scanFloat:&f3]; 
     191                                [theScanner scanUpToCharactersFromSet:numberSet intoString:nil]; 
     192                                [theScanner scanFloat:&f4]; 
     193                                [theScanner scanUpToCharactersFromSet:numberSet intoString:nil]; 
     194                                [theScanner scanFloat:&f5]; 
     195                                [theScanner scanUpToCharactersFromSet:numberSet intoString:nil]; 
     196                                [theScanner scanFloat:&f6]; 
     197                                NSLog(@"Curve to: %f,%f control1: %f,%f control2: %f,%f",f5,f6,f1,f2,f3,f4); 
     198                                [path curveToPoint:NSMakePoint(f5,f6) 
     199                                         controlPoint1:NSMakePoint(f1,f2) 
     200                                         controlPoint2:NSMakePoint(f3,f4)]; 
     201                        } else if ( [command isEqualToString:@"Z"] || [command isEqualToString:@"z"]  ) 
     202                        { 
     203                                NSLog(@"Close path"); 
     204                                [path closePath]; 
     205                        } else { 
     206                                [theScanner scanUpToCharactersFromSet:letterSet intoString:&point]; 
     207                                NSLog(@"Missed command: '%@', points: '%@'",command,point); 
     208                        } 
     209                } 
     210                 
     211                /*while ([theScanner isAtEnd] == NO) { 
    165212                        //assume no horizontal or verticle lines at this moment 
    166213                        [theScanner scanUpToCharactersFromSet:numberSet intoString:&command]; 
     
    192239                                [path closePath]; 
    193240                        } 
    194                 } 
     241                }*/ 
    195242                 
    196243                [objects addObject:path]; 
  • branches/SVGImport/SVGImport.xcodeproj/wren.mode1

    r377 r379  
    318318                                                                                <integer>0</integer> 
    319319                                                                                <key>bookmark</key> 
    320                                                                                 <string>A291BFC70BCC4163009AA344</string> 
     320                                                                                <string>A2E7B2EB0BCC618500E392CF</string> 
    321321                                                                                <key>history</key> 
    322322                                                                                <array> 
     
    330330                                                                                        <string>A24416AC0BCB3C6D00C9C609</string> 
    331331                                                                                        <string>A24417020BCB3DE900C9C609</string> 
    332                                                                                         <string>A24418080BCB453500C9C609</string> 
    333332                                                                                        <string>A291BE560BCC2327009AA344</string> 
    334333                                                                                        <string>A291BE570BCC2327009AA344</string> 
    335                                                                                         <string>A291BE970BCC254C009AA344</string> 
    336334                                                                                        <string>A291BF4E0BCC3A88009AA344</string> 
    337335                                                                                        <string>A291BF4F0BCC3A88009AA344</string> 
    338336                                                                                        <string>A291BF500BCC3A88009AA344</string> 
    339337                                                                                        <string>A291BF510BCC3A88009AA344</string> 
    340                                                                                         <string>A291BFBF0BCC412B009AA344</string> 
    341338                                                                                        <string>A291BFC00BCC412B009AA344</string> 
    342                                                                                         <string>A291BFC10BCC412B009AA344</string> 
    343                                                                                         <string>A291BFC20BCC412B009AA344</string> 
     339                                                                                        <string>A2AF4E360BCC5F41003E97F4</string> 
     340                                                                                        <string>A2E7B2DD0BCC614A00E392CF</string> 
     341                                                                                        <string>A2E7B2E60BCC618300E392CF</string> 
     342                                                                                        <string>A2E7B2E70BCC618300E392CF</string> 
     343                                                                                        <string>A2E7B2DC0BCC614A00E392CF</string> 
    344344                                                                                </array> 
    345345                                                                                <key>prevStack</key> 
     
    364364                                                                                        <string>A23CF5D60BB5D95C005FCF13</string> 
    365365                                                                                        <string>A245CBDC0BB6401A00990C8F</string> 
    366                                                                                         <string>A291BE5A0BCC2327009AA344</string> 
    367                                                                                         <string>A291BE5B0BCC2327009AA344</string> 
    368                                                                                         <string>A291BE5C0BCC2327009AA344</string> 
    369                                                                                         <string>A291BE5D0BCC2327009AA344</string> 
    370                                                                                         <string>A291BE600BCC2327009AA344</string> 
    371                                                                                         <string>A291BE610BCC2327009AA344</string> 
    372                                                                                         <string>A291BE620BCC2327009AA344</string> 
    373                                                                                         <string>A291BE630BCC2327009AA344</string> 
    374                                                                                         <string>A291BE640BCC2327009AA344</string> 
    375                                                                                         <string>A291BE650BCC2327009AA344</string> 
    376                                                                                         <string>A291BE660BCC2327009AA344</string> 
    377                                                                                         <string>A291BE670BCC2327009AA344</string> 
    378                                                                                         <string>A291BE680BCC2327009AA344</string> 
    379                                                                                         <string>A291BE690BCC2327009AA344</string> 
    380                                                                                         <string>A291BE7E0BCC23E3009AA344</string> 
    381                                                                                         <string>A291BE850BCC2464009AA344</string> 
    382                                                                                         <string>A291BE990BCC254C009AA344</string> 
    383                                                                                         <string>A291BE9A0BCC254C009AA344</string> 
    384                                                                                         <string>A291BE9B0BCC254C009AA344</string> 
    385                                                                                         <string>A291BE9C0BCC254C009AA344</string> 
    386                                                                                         <string>A291BE9D0BCC254C009AA344</string> 
    387                                                                                         <string>A291BF2E0BCC36B5009AA344</string> 
    388                                                                                         <string>A291BF2F0BCC36B5009AA344</string> 
    389                                                                                         <string>A291BF550BCC3A88009AA344</string> 
    390                                                                                         <string>A291BF560BCC3A88009AA344</string> 
    391                                                                                         <string>A291BF570BCC3A88009AA344</string> 
    392                                                                                         <string>A291BF580BCC3A88009AA344</string> 
    393                                                                                         <string>A291BF590BCC3A88009AA344</string> 
    394                                                                                         <string>A291BF5A0BCC3A88009AA344</string> 
    395366                                                                                        <string>A291BF5B0BCC3A88009AA344</string> 
    396367                                                                                        <string>A291BF5C0BCC3A88009AA344</string> 
    397                                                                                         <string>A291BF5D0BCC3A88009AA344</string> 
    398                                                                                         <string>A291BF5E0BCC3A88009AA344</string> 
    399                                                                                         <string>A291BF5F0BCC3A88009AA344</string> 
    400                                                                                         <string>A291BF600BCC3A88009AA344</string> 
    401                                                                                         <string>A291BF610BCC3A88009AA344</string> 
    402                                                                                         <string>A291BF620BCC3A88009AA344</string> 
    403                                                                                         <string>A291BF630BCC3A88009AA344</string> 
    404                                                                                         <string>A291BF640BCC3A88009AA344</string> 
    405                                                                                         <string>A291BF650BCC3A88009AA344</string> 
    406                                                                                         <string>A291BF660BCC3A88009AA344</string> 
    407                                                                                         <string>A291BF670BCC3A88009AA344</string> 
    408                                                                                         <string>A291BF680BCC3A88009AA344</string> 
    409                                                                                         <string>A291BF690BCC3A88009AA344</string> 
    410                                                                                         <string>A291BF6A0BCC3A88009AA344</string> 
    411                                                                                         <string>A291BF6B0BCC3A88009AA344</string> 
    412                                                                                         <string>A291BF6C0BCC3A88009AA344</string> 
    413                                                                                         <string>A291BF6D0BCC3A88009AA344</string> 
    414                                                                                         <string>A291BF6E0BCC3A88009AA344</string> 
    415                                                                                         <string>A291BF6F0BCC3A88009AA344</string> 
    416                                                                                         <string>A291BF700BCC3A88009AA344</string> 
    417                                                                                         <string>A291BF710BCC3A88009AA344</string> 
    418                                                                                         <string>A291BF720BCC3A88009AA344</string> 
    419                                                                                         <string>A291BF730BCC3A88009AA344</string> 
    420                                                                                         <string>A291BF740BCC3A88009AA344</string> 
    421                                                                                         <string>A291BF800BCC3ABF009AA344</string> 
    422                                                                                         <string>A291BF940BCC3CEF009AA344</string> 
    423                                                                                         <string>A291BF9B0BCC3DA6009AA344</string> 
    424                                                                                         <string>A291BFA80BCC3F13009AA344</string> 
    425                                                                                         <string>A291BFC30BCC412B009AA344</string> 
    426                                                                                         <string>A291BFC40BCC412B009AA344</string> 
    427                                                                                         <string>A291BFC50BCC412B009AA344</string> 
     368                                                                                        <string>A2E7B2CA0BCC611D00E392CF</string> 
     369                                                                                        <string>A2E7B2DE0BCC614A00E392CF</string> 
     370                                                                                        <string>A2E7B2DF0BCC614A00E392CF</string> 
     371                                                                                        <string>A2E7B2E80BCC618300E392CF</string> 
     372                                                                                        <string>A2E7B2E90BCC618300E392CF</string> 
    428373                                                                                </array> 
    429374                                                                        </dict> 
     
    483428                        <key>TableOfContents</key> 
    484429                        <array> 
    485                                 <string>A291BE6B0BCC2327009AA344</string> 
     430                                <string>A2E7B2CC0BCC611D00E392CF</string> 
    486431                                <string>1CE0B1FE06471DED0097A5F4</string> 
    487                                 <string>A291BE6C0BCC2327009AA344</string> 
     432                                <string>A2E7B2CD0BCC611D00E392CF</string> 
    488433                                <string>1CE0B20306471E060097A5F4</string> 
    489434                                <string>1CE0B20506471E060097A5F4</string> 
     
    630575        <key>WindowOrderList</key> 
    631576        <array> 
    632                 <string>A291BE790BCC2383009AA344</string> 
    633                 <string>A291BE7A0BCC2383009AA344</string> 
     577                <string>A2E7B2E20BCC614A00E392CF</string> 
     578                <string>A2E7B2E30BCC614A00E392CF</string> 
    634579                <string>A2CE6A070BADB89F006E6F1A</string> 
    635580                <string>1CD10A99069EF8BA00B06720</string> 
    636                 <string>A291BE760BCC237E009AA344</string> 
     581                <string>A2E7B2D70BCC613D00E392CF</string> 
    637582                <string>A2CE69D20BADB4FD006E6F1A</string> 
    638583                <string>1C0AD2B3069F1EA900FABCE6</string> 
     
    661606                                                                <string>1CD0528F0623707200166675</string> 
    662607                                                                <key>PBXProjectModuleLabel</key> 
    663                                                                 <string>MWSVGImport.m</string> 
     608                                                                <string></string> 
    664609                                                                <key>StatusBarVisibility</key> 
    665610                                                                <true/> 
     
    678623                                                </dict> 
    679624                                                <dict> 
    680                                                         <key>BecomeActive</key> 
    681                                                         <true/> 
    682625                                                        <key>ContentConfiguration</key> 
    683626                                                        <dict> 
     
    719662                        <array> 
    720663                                <string>A2CE69D20BADB4FD006E6F1A</string> 
    721                                 <string>A291BE520BCC231D009AA344</string> 
     664                                <string>A2E7B2CE0BCC611D00E392CF</string> 
    722665                                <string>1CD0528F0623707200166675</string> 
    723666                                <string>XCMainBuildResultsModuleGUID</string> 
     
    761704                                                                                <key>sizes</key> 
    762705                                                                                <array> 
    763                                                                                         <string>{{0, 0}, {476, 358}}</string> 
    764                                                                                         <string>{{476, 0}, {622, 358}}</string> 
     706                                                                                        <string>{{0, 0}, {472, 358}}</string> 
     707                                                                                        <string>{{472, 0}, {626, 358}}</string> 
    765708                                                                                </array> 
    766709                                                                        </dict> 
     
    825768                        <array> 
    826769                                <string>1CD10A99069EF8BA00B06720</string> 
    827                                 <string>A291BE700BCC237E009AA344</string> 
     770                                <string>A2E7B2D10BCC613D00E392CF</string> 
    828771                                <string>1C162984064C10D400B95A72</string> 
    829                                 <string>A291BE710BCC237E009AA344</string> 
    830                                 <string>A291BE720BCC237E009AA344</string> 
    831                                 <string>A291BE730BCC237E009AA344</string> 
    832                                 <string>A291BE740BCC237E009AA344</string> 
    833                                 <string>A291BE750BCC237E009AA344</string> 
    834                                 <string>A291BE760BCC237E009AA344</string> 
     772                                <string>A2E7B2D20BCC613D00E392CF</string> 
     773                                <string>A2E7B2D30BCC613D00E392CF</string> 
     774                                <string>A2E7B2D40BCC613D00E392CF</string> 
     775                                <string>A2E7B2D50BCC613D00E392CF</string> 
     776                                <string>A2E7B2D60BCC613D00E392CF</string> 
     777                                <string>A2E7B2D70BCC613D00E392CF</string> 
    835778                        </array> 
    836779                        <key>ToolbarConfiguration</key> 
     
    984927                        <array> 
    985928                                <string>A2CE6A070BADB89F006E6F1A</string> 
    986                                 <string>A291BE770BCC237E009AA344</string> 
     929                                <string>A2E7B2D80BCC613D00E392CF</string> 
    987930                                <string>1C78EAAC065D492600B07095</string> 
    988931                        </array> 
     
    10791022                        <array> 
    10801023                                <string>1C0AD2B3069F1EA900FABCE6</string> 
    1081                                 <string>A291BE250BCC212B009AA344</string> 
     1024                                <string>A2E7B2D90BCC613D00E392CF</string> 
    10821025                                <string>1CD0528B0623707200166675</string> 
    1083                                 <string>A291BE260BCC212B009AA344</string> 
     1026                                <string>A2E7B2DA0BCC613D00E392CF</string> 
    10841027                        </array> 
    10851028                        <key>ToolbarConfiguration</key> 
  • branches/SVGImport/SVGImport.xcodeproj/wren.pbxuser

    r377 r379  
    6060                                ); 
    6161                        }; 
    62                         PBXPerProjectTemplateStateSaveDate = 197927166
    63                         PBXWorkspaceStateSaveDate = 197927166
     62                        PBXPerProjectTemplateStateSaveDate = 197943560
     63                        PBXWorkspaceStateSaveDate = 197943560
    6464                }; 
    6565                perUserProjectItems = { 
     
    7676                        A24416AC0BCB3C6D00C9C609 /* PBXTextBookmark */ = A24416AC0BCB3C6D00C9C609 /* PBXTextBookmark */; 
    7777                        A24417020BCB3DE900C9C609 /* PBXTextBookmark */ = A24417020BCB3DE900C9C609 /* PBXTextBookmark */; 
    78                         A24418080BCB453500C9C609 /* PBXTextBookmark */ = A24418080BCB453500C9C609 /* PBXTextBookmark */; 
    7978                        A245CBB20BB6359400990C8F /* PBXTextBookmark */ = A245CBB20BB6359400990C8F /* PBXTextBookmark */; 
    8079                        A245CBDC0BB6401A00990C8F /* PBXTextBookmark */ = A245CBDC0BB6401A00990C8F /* PBXTextBookmark */; 
     
    8281                        A291BE560BCC2327009AA344 /* PBXTextBookmark */ = A291BE560BCC2327009AA344 /* PBXTextBookmark */; 
    8382                        A291BE570BCC2327009AA344 /* PBXTextBookmark */ = A291BE570BCC2327009AA344 /* PBXTextBookmark */; 
    84                         A291BE5A0BCC2327009AA344 /* PBXTextBookmark */ = A291BE5A0BCC2327009AA344 /* PBXTextBookmark */; 
    85                         A291BE5B0BCC2327009AA344 /* PBXTextBookmark */ = A291BE5B0BCC2327009AA344 /* PBXTextBookmark */; 
    86                         A291BE5C0BCC2327009AA344 /* PBXTextBookmark */ = A291BE5C0BCC2327009AA344 /* PBXTextBookmark */; 
    87                         A291BE5D0BCC2327009AA344 /* PBXTextBookmark */ = A291BE5D0BCC2327009AA344 /* PBXTextBookmark */; 
    88                         A291BE600BCC2327009AA344 /* PBXTextBookmark */ = A291BE600BCC2327009AA344 /* PBXTextBookmark */; 
    89                         A291BE610BCC2327009AA344 /* PBXTextBookmark */ = A291BE610BCC2327009AA344 /* PBXTextBookmark */; 
    90                         A291BE620BCC2327009AA344 /* PBXTextBookmark */ = A291BE620BCC2327009AA344 /* PBXTextBookmark */; 
    91                         A291BE630BCC2327009AA344 /* PBXTextBookmark */ = A291BE630BCC2327009AA344 /* PBXTextBookmark */; 
    92                         A291BE640BCC2327009AA344 /* PBXTextBookmark */ = A291BE640BCC2327009AA344 /* PBXTextBookmark */; 
    93                         A291BE650BCC2327009AA344 /* PBXTextBookmark */ = A291BE650BCC2327009AA344 /* PBXTextBookmark */; 
    94                         A291BE660BCC2327009AA344 /* PBXTextBookmark */ = A291BE660BCC2327009AA344 /* PBXTextBookmark */; 
    95                         A291BE670BCC2327009AA344 /* PBXTextBookmark */ = A291BE670BCC2327009AA344 /* PBXTextBookmark */; 
    96                         A291BE680BCC2327009AA344 /* PBXTextBookmark */ = A291BE680BCC2327009AA344 /* PBXTextBookmark */; 
    97                         A291BE690BCC2327009AA344 /* PBXTextBookmark */ = A291BE690BCC2327009AA344 /* PBXTextBookmark */; 
    98                         A291BE7E0BCC23E3009AA344 /* PBXTextBookmark */ = A291BE7E0BCC23E3009AA344 /* PBXTextBookmark */; 
    99                         A291BE850BCC2464009AA344 /* PBXTextBookmark */ = A291BE850BCC2464009AA344 /* PBXTextBookmark */; 
    100                         A291BE970BCC254C009AA344 /* PBXTextBookmark */ = A291BE970BCC254C009AA344 /* PBXTextBookmark */; 
    101                         A291BE990BCC254C009AA344 /* PBXTextBookmark */ = A291BE990BCC254C009AA344 /* PBXTextBookmark */; 
    102                         A291BE9A0BCC254C009AA344 /* PBXTextBookmark */ = A291BE9A0BCC254C009AA344 /* PBXTextBookmark */; 
    103                         A291BE9B0BCC254C009AA344 /* PBXTextBookmark */ = A291BE9B0BCC254C009AA344 /* PBXTextBookmark */; 
    104                         A291BE9C0BCC254C009AA344 /* PBXTextBookmark */ = A291BE9C0BCC254C009AA344 /* PBXTextBookmark */; 
    105                         A291BE9D0BCC254C009AA344 /* PBXTextBookmark */ = A291BE9D0BCC254C009AA344 /* PBXTextBookmark */; 
    106                         A291BF2E0BCC36B5009AA344 /* PBXTextBookmark */ = A291BF2E0BCC36B5009AA344 /* PBXTextBookmark */; 
    107                         A291BF2F0BCC36B5009AA344 /* PBXTextBookmark */ = A291BF2F0BCC36B5009AA344 /* PBXTextBookmark */; 
    10883                        A291BF4E0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF4E0BCC3A88009AA344 /* PBXTextBookmark */; 
    10984                        A291BF4F0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF4F0BCC3A88009AA344 /* PBXTextBookmark */; 
    11085                        A291BF500BCC3A88009AA344 /* PBXTextBookmark */ = A291BF500BCC3A88009AA344 /* PBXTextBookmark */; 
    11186                        A291BF510BCC3A88009AA344 /* PBXTextBookmark */ = A291BF510BCC3A88009AA344 /* PBXTextBookmark */; 
    112                         A291BF550BCC3A88009AA344 /* PBXTextBookmark */ = A291BF550BCC3A88009AA344 /* PBXTextBookmark */; 
    113                         A291BF560BCC3A88009AA344 /* PBXTextBookmark */ = A291BF560BCC3A88009AA344 /* PBXTextBookmark */; 
    114                         A291BF570BCC3A88009AA344 /* PBXTextBookmark */ = A291BF570BCC3A88009AA344 /* PBXTextBookmark */; 
    115                         A291BF580BCC3A88009AA344 /* PBXTextBookmark */ = A291BF580BCC3A88009AA344 /* PBXTextBookmark */; 
    116                         A291BF590BCC3A88009AA344 /* PBXTextBookmark */ = A291BF590BCC3A88009AA344 /* PBXTextBookmark */; 
    117                         A291BF5A0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5A0BCC3A88009AA344 /* PBXTextBookmark */; 
    11887                        A291BF5B0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5B0BCC3A88009AA344 /* PBXTextBookmark */; 
    11988                        A291BF5C0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5C0BCC3A88009AA344 /* PBXTextBookmark */; 
    120                         A291BF5D0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5D0BCC3A88009AA344 /* PBXTextBookmark */; 
    121                         A291BF5E0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5E0BCC3A88009AA344 /* PBXTextBookmark */; 
    122                         A291BF5F0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF5F0BCC3A88009AA344 /* PBXTextBookmark */; 
    123                         A291BF600BCC3A88009AA344 /* PBXTextBookmark */ = A291BF600BCC3A88009AA344 /* PBXTextBookmark */; 
    124                         A291BF610BCC3A88009AA344 /* PBXTextBookmark */ = A291BF610BCC3A88009AA344 /* PBXTextBookmark */; 
    125                         A291BF620BCC3A88009AA344 /* PBXTextBookmark */ = A291BF620BCC3A88009AA344 /* PBXTextBookmark */; 
    126                         A291BF630BCC3A88009AA344 /* PBXTextBookmark */ = A291BF630BCC3A88009AA344 /* PBXTextBookmark */; 
    127                         A291BF640BCC3A88009AA344 /* PBXTextBookmark */ = A291BF640BCC3A88009AA344 /* PBXTextBookmark */; 
    128                         A291BF650BCC3A88009AA344 /* PBXTextBookmark */ = A291BF650BCC3A88009AA344 /* PBXTextBookmark */; 
    129                         A291BF660BCC3A88009AA344 /* PBXTextBookmark */ = A291BF660BCC3A88009AA344 /* PBXTextBookmark */; 
    130                         A291BF670BCC3A88009AA344 /* PBXTextBookmark */ = A291BF670BCC3A88009AA344 /* PBXTextBookmark */; 
    131                         A291BF680BCC3A88009AA344 /* PBXTextBookmark */ = A291BF680BCC3A88009AA344 /* PBXTextBookmark */; 
    132                         A291BF690BCC3A88009AA344 /* PBXTextBookmark */ = A291BF690BCC3A88009AA344 /* PBXTextBookmark */; 
    133                         A291BF6A0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF6A0BCC3A88009AA344 /* PBXTextBookmark */; 
    134                         A291BF6B0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF6B0BCC3A88009AA344 /* PBXTextBookmark */; 
    135                         A291BF6C0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF6C0BCC3A88009AA344 /* PBXTextBookmark */; 
    136                         A291BF6D0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF6D0BCC3A88009AA344 /* PBXTextBookmark */; 
    137                         A291BF6E0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF6E0BCC3A88009AA344 /* PBXTextBookmark */; 
    138                         A291BF6F0BCC3A88009AA344 /* PBXTextBookmark */ = A291BF6F0BCC3A88009AA344 /* PBXTextBookmark */; 
    139                         A291BF700BCC3A88009AA344 /* PBXTextBookmark */ = A291BF700BCC3A88009AA344 /* PBXTextBookmark */; 
    140                         A291BF710BCC3A88009AA344 /* PBXTextBookmark */ = A291BF710BCC3A88009AA344 /* PBXTextBookmark */; 
    141                         A291BF720BCC3A88009AA344 /* PBXTextBookmark */ = A291BF720BCC3A88009AA344 /* PBXTextBookmark */; 
    142                         A291BF730BCC3A88009AA344 /* PBXTextBookmark */ = A291BF730BCC3A88009AA344 /* PBXTextBookmark */; 
    143                         A291BF740BCC3A88009AA344 /* PBXTextBookmark */ = A291BF740BCC3A88009AA344 /* PBXTextBookmark */; 
    144                         A291BF800BCC3ABF009AA344 /* PBXTextBookmark */ = A291BF800BCC3ABF009AA344 /* PBXTextBookmark */; 
    145                         A291BF940BCC3CEF009AA344 /* PBXTextBookmark */ = A291BF940BCC3CEF009AA344 /* PBXTextBookmark */; 
    146                         A291BF9B0BCC3DA6009AA344 /* PBXTextBookmark */ = A291BF9B0BCC3DA6009AA344 /* PBXTextBookmark */; 
    147                         A291BFA80BCC3F13009AA344 /* PBXTextBookmark */ = A291BFA80BCC3F13009AA344 /* PBXTextBookmark */; 
    148                         A291BFBF0BCC412B009AA344 /* PBXTextBookmark */ = A291BFBF0BCC412B009AA344 /* PBXTextBookmark */; 
    14989                        A291BFC00BCC412B009AA344 /* PBXTextBookmark */ = A291BFC00BCC412B009AA344 /* PBXTextBookmark */; 
    150                         A291BFC10BCC412B009AA344 /* PBXTextBookmark */ = A291BFC10BCC412B009AA344 /* PBXTextBookmark */; 
    151                         A291BFC20BCC412B009AA344 /* PBXTextBookmark */ = A291BFC20BCC412B009AA344 /* PBXTextBookmark */; 
    152                         A291BFC30BCC412B009AA344 /* PBXTextBookmark */ = A291BFC30BCC412B009AA344 /* PBXTextBookmark */; 
    153                         A291BFC40BCC412B009AA344 /* PBXTextBookmark */ = A291BFC40BCC412B009AA344 /* PBXTextBookmark */; 
    154                         A291BFC50BCC412B009AA344 /* PBXTextBookmark */ = A291BFC50BCC412B009AA344 /* PBXTextBookmark */; 
    155                         A291BFC70BCC4163009AA344 /* PBXTextBookmark */ = A291BFC70BCC4163009AA344 /* PBXTextBookmark */; 
    15690                        A29C72350BB4D039005E04BC /* PBXTextBookmark */ = A29C72350BB4D039005E04BC /* PBXTextBookmark */; 
    15791                        A29C72360BB4D039005E04BC /* PBXTextBookmark */ = A29C72360BB4D039005E04BC /* PBXTextBookmark */; 
     
    16296                        A29C74150BB4EA3B005E04BC /* PBXTextBookmark */ = A29C74150BB4EA3B005E04BC /* PBXTextBookmark */; 
    16397                        A29C741B0BB4EA3B005E04BC /* PBXTextBookmark */ = A29C741B0BB4EA3B005E04BC /* PBXTextBookmark */; 
     98                        A2AF4E360BCC5F41003E97F4 /* PBXTextBookmark */ = A2AF4E360BCC5F41003E97F4 /* PBXTextBookmark */; 
    16499                        A2CE69E50BADB5EB006E6F1A /* PBXTextBookmark */ = A2CE69E50BADB5EB006E6F1A /* PBXTextBookmark */; 
    165100                        A2CE69E60BADB5EB006E6F1A /* PBXTextBookmark */ = A2CE69E60BADB5EB006E6F1A /* PBXTextBookmark */; 
     
    167102                        A2CEC4D70BAF184600AAEDAE /* PBXTextBookmark */ = A2CEC4D70BAF184600AAEDAE /* PBXTextBookmark */; 
    168103                        A2DFD4DF0BBAE92100D4DA6C /* PBXTextBookmark */ = A2DFD4DF0BBAE92100D4DA6C /* PBXTextBookmark */; 
     104                        A2E7B2CA0BCC611D00E392CF /* PBXTextBookmark */ = A2E7B2CA0BCC611D00E392CF /* PBXTextBookmark */; 
     105                        A2E7B2DC0BCC614A00E392CF /* PBXTextBookmark */ = A2E7B2DC0BCC614A00E392CF /* PBXTextBookmark */; 
     106                        A2E7B2DD0BCC614A00E392CF /* PBXTextBookmark */ = A2E7B2DD0BCC614A00E392CF /* PBXTextBookmark */; 
     107                        A2E7B2DE0BCC614A00E392CF /* PBXTextBookmark */ = A2E7B2DE0BCC614A00E392CF /* PBXTextBookmark */; 
     108                        A2E7B2DF0BCC614A00E392CF /* PBXTextBookmark */ = A2E7B2DF0BCC614A00E392CF /* PBXTextBookmark */; 
     109                        A2E7B2E60BCC618300E392CF /* PBXTextBookmark */ = A2E7B2E60BCC618300E392CF /* PBXTextBookmark */; 
     110                        A2E7B2E70BCC618300E392CF /* PBXTextBookmark */ = A2E7B2E70BCC618300E392CF /* PBXTextBookmark */; 
     111                        A2E7B2E80BCC618300E392CF /* PBXTextBookmark */ = A2E7B2E80BCC618300E392CF /* PBXTextBookmark */; 
     112                        A2E7B2E90BCC618300E392CF /* PBXTextBookmark */ = A2E7B2E90BCC618300E392CF /* PBXTextBookmark */; 
     113                        A2E7B2EB0BCC618500E392CF /* PBXTextBookmark */ = A2E7B2EB0BCC618500E392CF /* PBXTextBookmark */; 
    169114                }; 
    170115                sourceControlManager = A2CE69950BADB0E1006E6F1A /* Source Control */; 
     
    370315                vrLoc = 989; 
    371316        }; 
    372         A24418080BCB453500C9C609 /* PBXTextBookmark */ = { 
    373                 isa = PBXTextBookmark; 
    374                 fRef = A2CE69990BADB345006E6F1A /* MWSVGImport.h */; 
    375                 name = "MWSVGImport.h: 25"; 
    376                 rLen = 0; 
    377                 rLoc = 522; 
    378                 rType = 0; 
    379                 vrLen = 555; 
    380                 vrLoc = 0; 
    381         }; 
    382317        A245CBAD0BB634B200990C8F /* XCBreakpointsBucket */ = { 
    383318                isa = XCBreakpointsBucket; 
     
    452387                vrLoc = 0; 
    453388        }; 
    454         A291BE5A0BCC2327009AA344 /* PBXTextBookmark */ = { 
    455                 isa = PBXTextBookmark; 
    456                 fRef = A2CE699A0BADB345006E6F1A /* MWSVGImport.m */; 
    457                 name = "MWSVGImport.m: 25"; 
    458                 rLen = 0; 
    459                 rLoc = 536; 
    460                 rType = 0; 
    461                 vrLen = 1107; 
    462                 vrLoc = 2258; 
    463         }; 
    464         A291BE5B0BCC2327009AA344 /* PBXTextBookmark */ = { 
    465                 isa = PBXTextBookmark; 
    466                 fRef = A29C72410BB4D6D4005E04BC /* MWBezier.m */; 
    467                 name = "MWBezier.m: 46"; 
    468                 rLen = 0; 
    469                 rLoc = 1131; 
    470                 rType = 0; 
    471                 vrLen = 1091; 
    472                 vrLoc = 472; 
    473         }; 
    474         A291BE5C0BCC2327009AA344 /* PBXTextBookmark */ = { 
    475                 isa = PBXTextBookmark; 
    476                 fRef = A23265280BAE35E900E09297 /* LZPoint.m */; 
    477                 name = "LZPoint.m: 28"; 
    478                 rLen = 0; 
    479                 rLoc = 555; 
    480                 rType = 0; 
    481                 vrLen = 630; 
    482                 vrLoc = 635; 
    483         }; 
    484         A291BE5D0BCC2327009AA344 /* PBXTextBookmark */ = { 
    485                 isa = PBXTextBookmark; 
    486                 fRef = A23265270BAE35E900E09297 /* LZPoint.h */; 
    487                 name = "LZPoint.h: color"; 
    488                 rLen = 0; 
    489                 rLoc = 699; 
    490                 rType = 0; 
    491                 vrLen = 709; 
    492                 vrLoc = 0; 
    493         }; 
    494         A291BE600BCC2327009AA344 /* PBXTextBookmark */ = { 
    495                 isa = PBXTextBookmark; 
    496                 fRef = A23265270BAE35E900E09297 /* LZPoint.h */; 
    497                 name = "LZPoint.h: color"; 
    498                 rLen = 0; 
    499                 rLoc = 699; 
    500                 rType = 0; 
    501                 vrLen = 709; 
    502                 vrLoc = 0; 
    503         }; 
    504         A291BE610BCC2327009AA344 /* PBXTextBookmark */ = { 
    505                 isa = PBXTextBookmark; 
    506                 fRef = A29C72410BB4D6D4005E04BC /* MWBezier.m */; 
    507                 name = "MWBezier.m: 46"; 
    508                 rLen = 0; 
    509                 rLoc = 1131; 
    510                 rType = 0; 
    511                 vrLen = 1121; 
    512                 vrLoc = 472; 
    513         }; 
    514         A291BE620BCC2327009AA344 /* PBXTextBookmark */ = { 
    515                 isa =