-----------------------------------------------------------------------------
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
module THREE.FogExp2
  ( -- * Types
    FogExp2 (..)
    -- * Methods
  , THREE.FogExp2.new
    -- * Properties
  , isFogExp2
  , name
  , color
  , density
  ) where
-----------------------------------------------------------------------------
import           Miso
-----------------------------------------------------------------------------
import           THREE.Color
import           THREE.Internal as THREE
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/scenes/FogExp2
newtype FogExp2
  = FogExp2
  { FogExp2 -> JSVal
unFogExp2 :: JSVal
  } deriving newtype (FogExp2 -> IO [JSVal]
(FogExp2 -> IO [JSVal]) -> ToArgs FogExp2
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: FogExp2 -> IO [JSVal]
toArgs :: FogExp2 -> IO [JSVal]
ToArgs, FogExp2 -> IO Object
(FogExp2 -> IO Object) -> ToObject FogExp2
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: FogExp2 -> IO Object
toObject :: FogExp2 -> IO Object
ToObject, FogExp2 -> IO JSVal
(FogExp2 -> IO JSVal) -> ToJSVal FogExp2
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: FogExp2 -> IO JSVal
toJSVal :: FogExp2 -> IO JSVal
ToJSVal)
-----------------------------------------------------------------------------
instance FromJSVal FogExp2 where
  fromJSVal :: JSVal -> IO (Maybe FogExp2)
fromJSVal = Maybe FogExp2 -> IO (Maybe FogExp2)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe FogExp2 -> IO (Maybe FogExp2))
-> (JSVal -> Maybe FogExp2) -> JSVal -> IO (Maybe FogExp2)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. FogExp2 -> Maybe FogExp2
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (FogExp2 -> Maybe FogExp2)
-> (JSVal -> FogExp2) -> JSVal -> Maybe FogExp2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> FogExp2
FogExp2
-----------------------------------------------------------------------------
class FogNewParams a
instance FogNewParams Int
instance FogNewParams (Int, Double)
instance FogNewParams (Int, Double, Double)
new :: (FogNewParams a, ToArgs a) => a -> THREE.Three FogExp2
new :: forall a. (FogNewParams a, ToArgs a) => a -> IO FogExp2
new = (JSVal -> FogExp2) -> MisoString -> a -> IO FogExp2
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> FogExp2
FogExp2 MisoString
"FogExp2"
-----------------------------------------------------------------------------

isFogExp2 :: ReadOnly FogExp2 Bool
isFogExp2 :: ReadOnly FogExp2 Bool
isFogExp2 = MisoString -> ReadOnly FogExp2 Bool
forall object return.
(FromJSVal return, ToObject object) =>
MisoString -> ReadOnly object return
readonly MisoString
"isFogExp2" 

name :: Property FogExp2 MisoString
name :: Property FogExp2 MisoString
name = MisoString -> Property FogExp2 MisoString
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"name"

color :: Property FogExp2 Color
color :: Property FogExp2 Color
color = MisoString -> Property FogExp2 Color
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"color" 

density :: Property FogExp2 Double
density :: Property FogExp2 Double
density = MisoString -> Property FogExp2 Double
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"density" 

-----------------------------------------------------------------------------