in Cyborg/VectorDrawableParser.swift [808:860]
func createElement(in viewportSize: CGSize) -> VectorDrawable.Gradient? {
switch type {
case .linear:
if let startX = startX,
let startY = startY,
let endX = endX,
let endY = endY {
let startXUnit = startX / viewportSize.width
let startYUnit = startY / viewportSize.height
let endXUnit = endX / viewportSize.width
let endYUnit = endY / viewportSize.height
return VectorDrawable.LinearGradient(startColor: startColor,
centerColor: centerColor,
endColor: endColor,
tileMode: tileMode,
startX: startXUnit,
startY: startYUnit,
endX: endXUnit,
endY: endYUnit,
offsets: offsets)
} else {
return nil
}
case .radial:
if let centerX = centerX,
let centerY = centerY,
let radius = radius {
return VectorDrawable.RadialGradient(startColor: startColor,
centerColor: centerColor,
endColor: endColor,
tileMode: tileMode,
centerX: centerX,
centerY: centerY,
radius: radius,
offsets: offsets)
} else {
return nil
}
case .sweep:
if let centerX = centerX,
let centerY = centerY {
return VectorDrawable.SweepGradient(startColor: startColor,
centerColor: centerColor,
endColor: endColor,
tileMode: tileMode,
centerX: centerX,
centerY: centerY,
offsets: offsets)
} else {
return nil
}
}
}