         gradientType = "linear"
         
         shader = linearGradientShader(colors: colors, locations: locations, startPoint: startPoint, endPoint: endPoint, blended: blended, keepShape: keepShape)
+        shader?.uniforms = uniforms
     }
        
     

    :returns: An SKShader that will produce a sweep gradient. Note: the current implementation simply uses the GLSL mix function, which is a linear interpolation. For colors near to each other on the spectrum the results are fine; for very different colors the results can be pretty ugly. If you need a gradient between very different colors then you can simply add more clors in between to narrow the relative distances.
    
    */
    func sweepGradientShader(#colors: [UIColor], locations: [CGFloat]?, center: CGPoint?, startAngle: Float?, blended: Bool, keepShape: Bool) -> SKShader {
        
        
        // Sanitization

            y = min(max(center!.y, 0.0), 1.0)
        }
        
        // startAngle
        if startAngle != nil {
            self.startAngle = startAngle!
        }
        uniforms.append(u_startAngle)
        
        
        // Shader Creation
        
        
        var gamutGradientShader = "vec3 hsv2rgb(vec3 c) { vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); } float M_PI = 3.1415926535897932384626433832795; void main() { vec2 coord = v_tex_coord.xy; float angle = atan(coord.y, coord.x); angle = mod(angle / (2.0 * M_PI) - u_startAngle, 1.0); float distanceFromCenter = length(coord); vec3 color = hsv2rgb(vec3(angle, distanceFromCenter, 1.0)); gl_FragColor = vec4(color, 1.0); }"
        
        var stringRange : NSRange
        var string = ""
