asMatrix :: T3 Double -> TransMatrix
asMatrix tr = ((c1^._x, c2^._x, c3^._x, t^._x),
               (c1^._y, c2^._y, c3^._y, t^._y),
               (c1^._z, c2^._z, c3^._z, t^._z),
               (0,0,0,1)
              ) where
  ([c1, c2, c3], t) = onBasis tr
asMatrix :: T3 Double -> TransMatrix
asMatrix tr = ((c1^._x, c2^._x, c3^._x, t^._x),
               (c1^._y, c2^._y, c3^._y, t^._y),
               (c1^._z, c2^._z, c3^._z, t^._z),
               (0,0,0,1)
              ) where
  ([c1, c2, c3], t) = onBasis tr
asMatrix tr = ((c1^._x, c2^._x, c3^._x, t^._x),
               (c1^._y, c2^._y, c3^._y, t^._y),
               (c1^._z, c2^._z, c3^._z, t^._z),
               (0,0,0,1)
              ) where
  ([c1, c2, c3], t) = onBasis tr