{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module THREE.Matrix4
(
Matrix4 (..)
, THREE.Matrix4.new
) where
import Miso
import qualified THREE.Internal as THREE
newtype Matrix4
= Matrix4
{ Matrix4 -> JSVal
unMatrix4Camera :: JSVal
} deriving (Matrix4 -> IO JSVal
(Matrix4 -> IO JSVal) -> ToJSVal Matrix4
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: Matrix4 -> IO JSVal
toJSVal :: Matrix4 -> IO JSVal
ToJSVal, Matrix4 -> IO Object
(Matrix4 -> IO Object) -> ToObject Matrix4
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: Matrix4 -> IO Object
toObject :: Matrix4 -> IO Object
ToObject, Matrix4 -> IO [JSVal]
(Matrix4 -> IO [JSVal]) -> ToArgs Matrix4
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: Matrix4 -> IO [JSVal]
toArgs :: Matrix4 -> IO [JSVal]
ToArgs)
instance FromJSVal Matrix4 where
fromJSVal :: JSVal -> IO (Maybe Matrix4)
fromJSVal = Maybe Matrix4 -> IO (Maybe Matrix4)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe Matrix4 -> IO (Maybe Matrix4))
-> (JSVal -> Maybe Matrix4) -> JSVal -> IO (Maybe Matrix4)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Matrix4 -> Maybe Matrix4
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Matrix4 -> Maybe Matrix4)
-> (JSVal -> Matrix4) -> JSVal -> Maybe Matrix4
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> Matrix4
Matrix4
new :: THREE.Three Matrix4
new :: IO Matrix4
new = (JSVal -> Matrix4) -> MisoString -> [MisoString] -> IO Matrix4
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> Matrix4
Matrix4 MisoString
"Matrix4" ([] :: [MisoString])