-----------------------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-----------------------------------------------------------------------------
module THREE.AnimationClip
  ( -- * Types
    AnimationClip (..)
    -- * Methods
  , THREE.AnimationClip.new
    -- * Properties
  ) where
-----------------------------------------------------------------------------
import           Miso
-----------------------------------------------------------------------------
import qualified THREE.Internal as THREE
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/scenes/AnimationClip
newtype AnimationClip
  = AnimationClip
  { AnimationClip -> JSVal
unAnimationClipCamera :: JSVal
  } deriving (AnimationClip -> IO JSVal
(AnimationClip -> IO JSVal) -> ToJSVal AnimationClip
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: AnimationClip -> IO JSVal
toJSVal :: AnimationClip -> IO JSVal
ToJSVal, AnimationClip -> IO Object
(AnimationClip -> IO Object) -> ToObject AnimationClip
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: AnimationClip -> IO Object
toObject :: AnimationClip -> IO Object
ToObject)
-----------------------------------------------------------------------------
instance FromJSVal AnimationClip where
  fromJSVal :: JSVal -> IO (Maybe AnimationClip)
fromJSVal = Maybe AnimationClip -> IO (Maybe AnimationClip)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe AnimationClip -> IO (Maybe AnimationClip))
-> (JSVal -> Maybe AnimationClip)
-> JSVal
-> IO (Maybe AnimationClip)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AnimationClip -> Maybe AnimationClip
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (AnimationClip -> Maybe AnimationClip)
-> (JSVal -> AnimationClip) -> JSVal -> Maybe AnimationClip
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> AnimationClip
AnimationClip
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/cameras/AnimationClip
new :: THREE.Three AnimationClip
new :: IO AnimationClip
new = (JSVal -> AnimationClip)
-> MisoString -> [MisoString] -> IO AnimationClip
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> AnimationClip
AnimationClip MisoString
"AnimationClip" ([] :: [MisoString])
-----------------------------------------------------------------------------