 			z: Math.sqrt(m.m31*m.m31 + m.m32*m.m32 + m.m33*m.m33)
 		
 		# http://blog.bwhiting.co.uk/?p=26
-		# Todo: There is still a bug here, where it sometimes rotates in reverse
+		# Todo: There is still a bug here, where it sometimes rotations in reverse
 		result.rotation =
 			x: -Math.atan2(m.m32/result.scale.z, m.m33/result.scale.z)
 			y: Math.asin(m.m31/result.scale.z)

		set: (value) -> @_scaleX = @_scaleY = value


	@define "rotateX",
		get: -> @_rotateX or 0
		set: (value) -> @_rotateX = value
	
	@define "rotateY",
		get: -> @_rotateY or 0
		set: (value) ->
			@_rotateY = value
	
	@define "rotateZ",
		get: -> @_rotateZ or 0
		set: (value) -> 
			@_rotateZ = value
	
	@define "rotate",
		get: -> @rotateZ
		set: (value) -> 
			@rotateZ = value

	decompose: (m) ->
		

		# result =
		# 	translation: d.translate
		# 	scale: d.scale
		# 	rotation: d.rotation
		# 
		# return result
		
