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