 
     angle: ->
       Math.atan2(@y, @x)
+
+  """
+    abs
+    ceil
+    floor
+    truncate
+  """.split("\n").each (method) ->
+    Point::[method] = ->
+      Point
+        x: @x[method]()
+        y: @y[method]()
 
   ###*
   Compute the Euclidean distance between two points.

    @methodOf Point#
    @returns {Point} A new point, with x and y values each floored to the largest previous integer.
    ###
    floor: ->
      @copy().floor$()

    ###*
    Floor the x and y values, returning a modified point.

        point = Point(3.4, 5.8)
        point.floor$()

        point.x
        # => 3

        point.y
        # => 5

    @name floor$
    @methodOf Point#
    @returns {Point} A modified point, with x and y values each floored to the largest previous integer.
    ###
    floor$: ->
      @x = @x.floor()
      @y = @y.floor()

      return this

    ###*
    Determine whether this point is equal to another point.


  (exports ? this)["Point"] = Point
)()
