Skip to content

Instantly share code, notes, and snippets.

@austinbv
Created August 4, 2011 21:41
Show Gist options
  • Save austinbv/1126358 to your computer and use it in GitHub Desktop.
Save austinbv/1126358 to your computer and use it in GitHub Desktop.
do ($ = jQuery) ->
methods =
split_at_colon: (points) ->
points.split(":")
split_at_comma: (points) ->
if typeof points == "object"
for mini_array in points
for num in mini_array.split(",")
parseInt(num)
else
points.split(",")
process_points: (points) ->
level_one = methods.split_at_colon(points)
methods.split_at_comma(level_one)
draw: (points) ->
squiggle = methods.process_points(points)
for points, index in squiggle
if index == 0
@trigger({
type: 'mousedown'
clientX: points[0]
clientY: points[1]
});
else
@trigger({
type: 'mousemove'
clientX: points[0]
clientY: points[1]
})
@trigger('mouseup')
true
get_pixel_data: (points_string, obj) ->
jqobj = obj ? @
points = methods.split_at_comma(points_string)
canvas = jqobj.get(0).getContext('2d')
image_data = canvas.getImageData(points[0], points[1], 1, 1)
[image_data.data[0], image_data.data[1], image_data.data[2], image_data.data[3]]
color_is: (points_string, r, g, b, a) ->
pixel = methods.get_pixel_data(points_string, @)
(r is pixel[0] and b is pixel[1] and g is pixel[2] and a is pixel[3])
$.fn.test_draw = (method) ->
if methods[method]
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
else if typeof method == 'object'
return methods.draw.apply( this, arguments )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment