 
 DivSugar.Matrix.UNIT = new DivSugar.Matrix 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0
 
-DivSugar.Matrix._tmpVec1 = new DivSugar.Vector
-DivSugar.Matrix._tmpVec2 = new DivSugar.Vector
-DivSugar.Matrix._tmpVec3 = new DivSugar.Vector
-DivSugar.Matrix._tmpMat1 = new DivSugar.Matrix
+DivSugar.Matrix._tmpVec1 = new DivSugar.Vector()
+DivSugar.Matrix._tmpVec2 = new DivSugar.Vector()
+DivSugar.Matrix._tmpVec3 = new DivSugar.Vector()
+DivSugar.Matrix._tmpMat1 = new DivSugar.Matrix()
 # _tmpQuat1 and _tmpQuat2 are defined in Quaternion.js

  constructor: (mat) ->
    switch arguments.length
      when 0
        @xAxis = new DivSugar.Vector
        @yAxis = new DivSugar.Vector
        @zAxis = new DivSugar.Vector
        @trans = new DivSugar.Vector

      when 1
        @xAxis = new DivSugar.Vector mat.xAxis

    cos = Math.cos deg * DivSugar.DEG_TO_RAD
    mat = DivSugar.Matrix._tmpMat1

    mat.set(cos, sin, 0, -sin, cos, 0, 0, 0, 1, 0, 0, 0).toGlobal @
    @set mat

  scale: (scaleX, scaleY, scaleZ) ->
