diff --git a/Macaw.xcodeproj/project.pbxproj b/Macaw.xcodeproj/project.pbxproj index 4ae70bc2..b9b14122 100644 --- a/Macaw.xcodeproj/project.pbxproj +++ b/Macaw.xcodeproj/project.pbxproj @@ -253,6 +253,7 @@ 57F1087C1F53CA7E00DC365B /* MDisplayLink_iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57F1087B1F53CA7E00DC365B /* MDisplayLink_iOS.swift */; }; 57FCD2771D76EA4600CC0FB6 /* Macaw.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57FCD26C1D76EA4600CC0FB6 /* Macaw.framework */; }; 57FCD27C1D76EA4600CC0FB6 /* MacawTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57FCD27B1D76EA4600CC0FB6 /* MacawTests.swift */; }; + 602C561D2081C984003AD452 /* rounded.svg in Resources */ = {isa = PBXBuildFile; fileRef = 602C561C2081C984003AD452 /* rounded.svg */; }; 5B1FFD7A207E083600716A46 /* SvgContentLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BAA56A7207C73FF0055BC5B /* SvgContentLayout.swift */; }; 5BAA56A8207C73FF0055BC5B /* SvgContentLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BAA56A7207C73FF0055BC5B /* SvgContentLayout.swift */; }; 5BAEA9C9206CEAA20049AAAE /* viewBox.svg in Resources */ = {isa = PBXBuildFile; fileRef = 5BAEA9C8206CEAA20049AAAE /* viewBox.svg */; }; @@ -453,6 +454,7 @@ 57FCD2761D76EA4600CC0FB6 /* MacawTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MacawTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 57FCD27B1D76EA4600CC0FB6 /* MacawTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MacawTests.swift; sourceTree = ""; }; 57FCD27D1D76EA4600CC0FB6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 602C561C2081C984003AD452 /* rounded.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = rounded.svg; sourceTree = ""; }; 5BAA56A7207C73FF0055BC5B /* SvgContentLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SvgContentLayout.swift; sourceTree = ""; }; 5BAEA9C8206CEAA20049AAAE /* viewBox.svg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = viewBox.svg; sourceTree = ""; }; 5BAEA9CA206CEB7D0049AAAE /* viewBox.reference */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = viewBox.reference; sourceTree = ""; }; @@ -563,6 +565,7 @@ 57CAB1241D7832E000FD8E47 /* svg */ = { isa = PBXGroup; children = ( + 602C561C2081C984003AD452 /* rounded.svg */, 5BAEA9C8206CEAA20049AAAE /* viewBox.svg */, C46E83541F94B20E00208037 /* transform.svg */, C43B064C1F9738EF00787A35 /* clip.svg */, @@ -1092,6 +1095,7 @@ 5BAEA9CB206CEB7D0049AAAE /* viewBox.reference in Resources */, 57CAB1311D7832E000FD8E47 /* line.svg in Resources */, 57B7A4DF1EE70D17009D78D7 /* logo.png in Resources */, + 602C561D2081C984003AD452 /* rounded.svg in Resources */, 57CAB1321D7832E000FD8E47 /* polygon.svg in Resources */, 57CAB12F1D7832E000FD8E47 /* ellipse.svg in Resources */, 57CAB1341D7832E000FD8E47 /* rect.svg in Resources */, diff --git a/MacawTests/svg/rounded.svg b/MacawTests/svg/rounded.svg new file mode 100644 index 00000000..2441657e --- /dev/null +++ b/MacawTests/svg/rounded.svg @@ -0,0 +1,7 @@ + + + + + diff --git a/Source/svg/SVGParser.swift b/Source/svg/SVGParser.swift index 0da716e3..1ded1e6b 100644 --- a/Source/svg/SVGParser.swift +++ b/Source/svg/SVGParser.swift @@ -632,8 +632,8 @@ open class SVGParser { let characterSet = NSCharacterSet.decimalDigits.union(NSCharacterSet.punctuationCharacters).inverted let digitsArray = strokeWidth.components(separatedBy: characterSet) let digits = digitsArray.joined() - if let value = NumberFormatter().number(from: digits) { - return value.doubleValue + if let value = Double(digits) { + return value } } return 1 @@ -643,6 +643,8 @@ open class SVGParser { var cap = LineCap.butt if let strokeCap = styleParts["stroke-linecap"] { switch strokeCap { + case "round": + cap = .round case "butt": cap = .butt case "square": @@ -658,6 +660,8 @@ open class SVGParser { var join = LineJoin.miter if let strokeJoin = styleParts["stroke-linejoin"] { switch strokeJoin { + case "round": + join = .round case "miter": join = .miter case "bevel":