     return rotationMatrix
 
   ###*
-   * Returns a matrix that corresponds to scaling by factors of sx, sy along
-   * the x and y axis respectively.
-   * If only one parameter is given the matrix is scaled uniformly along both axis.
-   * If the optional aboutPoint parameter is given the scaling takes place
-   * about the given point.
-   * @see Matrix#scale
-   *
-   * @param {Number} sx The amount to scale by along the x axis or uniformly if no sy is given.
-   * @param {Number} [sy] The amount to scale by along the y axis.
-   * @param {Point} [aboutPoint] The point about which the scaling occurs. Defaults to (0,0).
-   * @returns A matrix transformation representing scaling by sx and sy.
-   * @type Matrix
+  Returns a matrix that corresponds to scaling by factors of sx, sy along
+  the x and y axis respectively.
+  If only one parameter is given the matrix is scaled uniformly along both axis.
+  If the optional aboutPoint parameter is given the scaling takes place
+  about the given point.
+  @see Matrix#scale
+
+  @param {Number} sx The amount to scale by along the x axis or uniformly if no sy is given.
+  @param {Number} [sy] The amount to scale by along the y axis.
+  @param {Point} [aboutPoint] The point about which the scaling occurs. Defaults to (0,0).
+  @returns A matrix transformation representing scaling by sx and sy.
+  @type Matrix
   ###
   Matrix.scale = (sx, sy, aboutPoint) ->
     sy = sy || sx

      )

    ###*
     * Returns a new matrix that corresponds this matrix multiplied by a
     * a rotation matrix.
     * @name rotate
     * @methodOf Matrix#
     * @see Matrix.rotation
     *
     * @param {Number} theta Amount to rotate in radians.
     * @param {Point} [aboutPoint] The point about which this rotation occurs. Defaults to (0,0).
     * @returns A new matrix, rotated by the specified amount.
     * @type Matrix
    ###
    rotate: (theta, aboutPoint) ->
      this.concat(Matrix.rotation(theta, aboutPoint))

    ###*
     * Returns a new matrix that corresponds this matrix multiplied by a
     * a scaling matrix.
     * @name scale
     * @methodOf Matrix#
     * @see Matrix.scale
     *
     * @param {Number} sx
     * @param {Number} [sy]
     * @param {Point} [aboutPoint] The point that remains fixed during the scaling
     * @type Matrix
    ###
    scale: (sx, sy, aboutPoint) ->
      this.concat(Matrix.scale(sx, sy, aboutPoint))

    ###*
     * Returns the result of applying the geometric transformation represented by the 
     * Matrix object to the specified point.
     * @name transformPoint
     * @methodOf Matrix#
     * @see #deltaTransformPoint
     *
     * @returns A new point with the transformation applied.
     * @type Point
    ###
    transformPoint: (point) ->
      Point(

    return scaleMatrix

  ###*
  Returns a matrix that corresponds to a translation of tx, ty.
  @see Matrix#translate

  @param {Number} tx The amount to translate in the x direction.
  @param {Number} ty The amount to translate in the y direction.
  @return A matrix transformation representing a translation by tx and ty.
  @type Matrix
  ###
  Matrix.translate = Matrix.translation = (tx, ty) ->
    Matrix(1, 0, 0, 1, tx, ty)

  ###*
  A constant representing the identity matrix.
  @name IDENTITY
  @fieldOf Matrix
  ###
  Matrix.IDENTITY = Matrix()

  ###*
  A constant representing the horizontal flip transformation matrix.
  @name HORIZONTAL_FLIP
  @fieldOf Matrix
  ###
  Matrix.HORIZONTAL_FLIP = Matrix(-1, 0, 0, 1)

  ###*
  A constant representing the vertical flip transformation matrix.
  @name VERTICAL_FLIP
  @fieldOf Matrix
  ###
  Matrix.VERTICAL_FLIP = Matrix(1, 0, 0, -1)

