Skip to content

Commit b3d6b75

Browse files
committed
Merge pull request SVGKit#174 from andmar1x/1.x
Fixed "rotate" transform type.
2 parents 94da347 + 35deb8a commit b3d6b75

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

Source/DOM classes/Unported or Partial DOM/SVGElement.m

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -319,21 +319,26 @@ - (void)postProcessAttributesAddingErrorsTo:(SVGKParseResult *)parseResult {
319319
{
320320
CGFloat degrees = [[parameterStrings objectAtIndex:0] floatValue];
321321
CGFloat radians = degrees * M_PI / 180.0;
322-
323-
CGAffineTransform nt = CGAffineTransformMakeRotation(radians);
324-
selfTransformable.transform = CGAffineTransformConcat( nt, selfTransformable.transform ); // Apple's method appears to be backwards, and not doing what Apple's docs state
322+
323+
selfTransformable.transform = CGAffineTransformRotate(selfTransformable.transform, radians);
324+
// CGAffineTransform nt = CGAffineTransformMakeRotation(radians);
325+
// selfTransformable.transform = CGAffineTransformConcat( nt, selfTransformable.transform ); // Apple's method appears to be backwards, and not doing what Apple's docs state
325326
}
326327
else if( [parameterStrings count] == 3)
327328
{
328329
CGFloat degrees = [[parameterStrings objectAtIndex:0] floatValue];
329330
CGFloat radians = degrees * M_PI / 180.0;
330331
CGFloat centerX = [[parameterStrings objectAtIndex:1] floatValue];
331332
CGFloat centerY = [[parameterStrings objectAtIndex:2] floatValue];
332-
CGAffineTransform nt = CGAffineTransformIdentity;
333-
nt = CGAffineTransformConcat( nt, CGAffineTransformMakeTranslation(centerX, centerY) );
334-
nt = CGAffineTransformConcat( nt, CGAffineTransformMakeRotation(radians) );
335-
nt = CGAffineTransformConcat( nt, CGAffineTransformMakeTranslation(-1.0 * centerX, -1.0 * centerY) );
336-
selfTransformable.transform = CGAffineTransformConcat( nt, selfTransformable.transform ); // Apple's method appears to be backwards, and not doing what Apple's docs state
333+
334+
selfTransformable.transform = CGAffineTransformTranslate(selfTransformable.transform, centerX, centerY);
335+
selfTransformable.transform = CGAffineTransformRotate(selfTransformable.transform, radians);
336+
selfTransformable.transform = CGAffineTransformTranslate(selfTransformable.transform, -1.0 * centerX, -1.0 * centerY);
337+
// CGAffineTransform nt = CGAffineTransformIdentity;
338+
// nt = CGAffineTransformConcat( nt, CGAffineTransformMakeTranslation(centerX, centerY) );
339+
// nt = CGAffineTransformConcat( nt, CGAffineTransformMakeRotation(radians) );
340+
// nt = CGAffineTransformConcat( nt, CGAffineTransformMakeTranslation(-1.0 * centerX, -1.0 * centerY) );
341+
// selfTransformable.transform = CGAffineTransformConcat( nt, selfTransformable.transform ); // Apple's method appears to be backwards, and not doing what Apple's docs state
337342
} else
338343
{
339344
DDLogError(@"[%@] ERROR: input file is illegal, has an SVG matrix transform attribute without the required 1 or 3 parameters. Item = %@, transform attribute value = %@", [self class], transformString, value );

0 commit comments

Comments
 (0)