easytensor-0.3.1.0: src-ghcjs/Numeric/Matrix/Mat44d.hs
{-# LANGUAGE JavaScriptFFI #-}
{-# LANGUAGE DataKinds #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Numeric.Matrix.Mat44d () where
import Numeric.DataFrame.Type
import Numeric.Vector
import Numeric.Matrix.Class
instance HomTransform4 Double where
translate4 = js_translate
{-# INLINE translate4 #-}
translate3 = js_translate
{-# INLINE translate3 #-}
rotateX = js_rotateX
{-# INLINE rotateX #-}
rotateY = js_rotateY
{-# INLINE rotateY #-}
rotateZ = js_rotateZ
{-# INLINE rotateZ #-}
rotate = js_rotate
{-# INLINE rotate #-}
rotateEuler = js_rotateEuler
{-# INLINE rotateEuler #-}
lookAt = js_lookAt
{-# INLINE lookAt #-}
perspective = js_perspective
{-# INLINE perspective #-}
orthogonal = js_orthogonal
{-# INLINE orthogonal #-}
toHomPoint = js_toHomPoint
{-# INLINE toHomPoint #-}
toHomVector = js_toHomVector
{-# INLINE toHomVector #-}
fromHom = js_fromHom
{-# INLINE fromHom #-}
foreign import javascript unsafe "h$easytensor_m4translate($1)"
js_translate :: Vector Double n -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4rotateX($1))"
js_rotateX :: Double -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4rotateY($1))"
js_rotateY :: Double -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4rotateZ($1))"
js_rotateZ :: Double -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4rotate($1, $2))"
js_rotate :: Vector Double 3 -> Double -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4rotateEuler($1, $2, $3))"
js_rotateEuler :: Double -> Double -> Double -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4lookAt($1,$2,$3))"
js_lookAt :: Vector Double 3 -> Vector Double 3 -> Vector Double 3 -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4perspective($1, $2, $3, $4))"
js_perspective :: Double -> Double -> Double -> Double -> Matrix Double 4 4
foreign import javascript unsafe "new Float64Array(h$easytensor_m4orthogonal($1, $2, $3, $4))"
js_orthogonal :: Double -> Double -> Double -> Double -> Matrix Double 4 4
foreign import javascript unsafe "$r = new $1.constructor(4); $r.set($1); $r[3] = 1;"
js_toHomPoint :: Vector Double 3 -> Vector Double 4
foreign import javascript unsafe "$r = new $1.constructor(4); $r.set($1); $r[3] = 0;"
js_toHomVector :: Vector Double 3 -> Vector Double 4
foreign import javascript unsafe "h$easytensor_m4fromHom($1)"
js_fromHom :: Vector Double 4 -> Vector Double 3