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