-----------------------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-----------------------------------------------------------------------------
module THREE.Matrix4
  ( -- * Types
    Matrix4 (..)
    -- * Methods
  , THREE.Matrix4.new
    -- * Properties
  ) where
-----------------------------------------------------------------------------
import           Miso
-----------------------------------------------------------------------------
import qualified THREE.Internal as THREE
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/scenes/Matrix4
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
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/cameras/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])
-----------------------------------------------------------------------------