-----------------------------------------------------------------------------
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
module THREE.ShadowMaterial
  ( -- * Types
    ShadowMaterial (..)
    -- * Constructors
  , THREE.ShadowMaterial.new
    -- * Properties
  , color
  , fog
  ) where
-----------------------------------------------------------------------------
import           Miso
-----------------------------------------------------------------------------
import           THREE.Color
import           THREE.EventDispatcher
import           THREE.Internal as THREE
import           THREE.Material
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/materials/ShadowMaterial
newtype ShadowMaterial
  = ShadowMaterial
  { ShadowMaterial -> JSVal
unShadowMaterial :: JSVal
  } deriving newtype (ShadowMaterial -> IO [JSVal]
(ShadowMaterial -> IO [JSVal]) -> ToArgs ShadowMaterial
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: ShadowMaterial -> IO [JSVal]
toArgs :: ShadowMaterial -> IO [JSVal]
ToArgs, ShadowMaterial -> IO Object
(ShadowMaterial -> IO Object) -> ToObject ShadowMaterial
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: ShadowMaterial -> IO Object
toObject :: ShadowMaterial -> IO Object
ToObject, ShadowMaterial -> IO JSVal
(ShadowMaterial -> IO JSVal) -> ToJSVal ShadowMaterial
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: ShadowMaterial -> IO JSVal
toJSVal :: ShadowMaterial -> IO JSVal
ToJSVal)
    deriving anyclass (ToObject ShadowMaterial
ToJSVal ShadowMaterial
Property ShadowMaterial Bool
Property ShadowMaterial Double
Property ShadowMaterial Int
Property ShadowMaterial (Maybe [Plane])
Property ShadowMaterial (Maybe MisoString)
Property ShadowMaterial (Maybe Object)
Property ShadowMaterial (Maybe BlendingEquations)
Property ShadowMaterial (Maybe DestinationFactors)
Property ShadowMaterial (Maybe SourceFactors)
Property ShadowMaterial (Maybe BlendingMode)
Property ShadowMaterial MisoString
Property ShadowMaterial Object
Property ShadowMaterial BlendingEquations
Property ShadowMaterial SourceFactors
Property ShadowMaterial DepthMode
Property ShadowMaterial Side
Property ShadowMaterial StencilFunctions
Property ShadowMaterial StencilOperations
Property ShadowMaterial Color
ReadOnly ShadowMaterial Bool
ReadOnly ShadowMaterial MisoString
EventDispatcher ShadowMaterial
Method ShadowMaterial () ()
Method ShadowMaterial () MisoString
Method ShadowMaterial Object ()
Method ShadowMaterial Object Object
FromJSVal ShadowMaterial => Method ShadowMaterial () ShadowMaterial
(FromJSVal ShadowMaterial, ToArgs ShadowMaterial) =>
Method ShadowMaterial ShadowMaterial ShadowMaterial
(EventDispatcher ShadowMaterial, ToJSVal ShadowMaterial,
 ToObject ShadowMaterial) =>
ReadOnly ShadowMaterial MisoString
-> ReadOnly ShadowMaterial MisoString
-> ReadOnly ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Double
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Double
-> Property ShadowMaterial Color
-> Property ShadowMaterial (Maybe DestinationFactors)
-> Property ShadowMaterial (Maybe DestinationFactors)
-> Property ShadowMaterial BlendingEquations
-> Property ShadowMaterial (Maybe BlendingEquations)
-> Property ShadowMaterial (Maybe BlendingMode)
-> Property ShadowMaterial SourceFactors
-> Property ShadowMaterial (Maybe SourceFactors)
-> Property ShadowMaterial Bool
-> Property ShadowMaterial (Maybe [Plane])
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial (Maybe Object)
-> Property ShadowMaterial DepthMode
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Int
-> Property ShadowMaterial StencilFunctions
-> Property ShadowMaterial Int
-> Property ShadowMaterial Int
-> Property ShadowMaterial StencilOperations
-> Property ShadowMaterial StencilOperations
-> Property ShadowMaterial StencilOperations
-> Property ShadowMaterial Int
-> Property ShadowMaterial MisoString
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Double
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Int
-> Property ShadowMaterial Int
-> Property ShadowMaterial (Maybe MisoString)
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Side
-> Property ShadowMaterial Side
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Int
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Bool
-> Property ShadowMaterial Object
-> (FromJSVal ShadowMaterial =>
    Method ShadowMaterial () ShadowMaterial)
-> ((FromJSVal ShadowMaterial, ToArgs ShadowMaterial) =>
    Method ShadowMaterial ShadowMaterial ShadowMaterial)
-> Method ShadowMaterial () ()
-> Method ShadowMaterial () MisoString
-> Method ShadowMaterial Object ()
-> Method ShadowMaterial Object Object
-> Material ShadowMaterial
forall material.
(EventDispatcher material, ToJSVal material, ToObject material) =>
ReadOnly material MisoString
-> ReadOnly material MisoString
-> ReadOnly material Bool
-> Property material Bool
-> Property material Double
-> Property material Bool
-> Property material Double
-> Property material Color
-> Property material (Maybe DestinationFactors)
-> Property material (Maybe DestinationFactors)
-> Property material BlendingEquations
-> Property material (Maybe BlendingEquations)
-> Property material (Maybe BlendingMode)
-> Property material SourceFactors
-> Property material (Maybe SourceFactors)
-> Property material Bool
-> Property material (Maybe [Plane])
-> Property material Bool
-> Property material Bool
-> Property material (Maybe Object)
-> Property material DepthMode
-> Property material Bool
-> Property material Bool
-> Property material Bool
-> Property material Bool
-> Property material Int
-> Property material StencilFunctions
-> Property material Int
-> Property material Int
-> Property material StencilOperations
-> Property material StencilOperations
-> Property material StencilOperations
-> Property material Int
-> Property material MisoString
-> Property material Bool
-> Property material Double
-> Property material Bool
-> Property material Int
-> Property material Int
-> Property material (Maybe MisoString)
-> Property material Bool
-> Property material Bool
-> Property material Side
-> Property material Side
-> Property material Bool
-> Property material Bool
-> Property material Int
-> Property material Bool
-> Property material Bool
-> Property material Object
-> (FromJSVal material => Method material () material)
-> ((FromJSVal material, ToArgs material) =>
    Method material material material)
-> Method material () ()
-> Method material () MisoString
-> Method material Object ()
-> Method material Object Object
-> Material material
$ctype_ :: ReadOnly ShadowMaterial MisoString
type_ :: ReadOnly ShadowMaterial MisoString
$cuuid :: ReadOnly ShadowMaterial MisoString
uuid :: ReadOnly ShadowMaterial MisoString
$cisMaterial :: ReadOnly ShadowMaterial Bool
isMaterial :: ReadOnly ShadowMaterial Bool
$calphaHash :: Property ShadowMaterial Bool
alphaHash :: Property ShadowMaterial Bool
$calphaTest :: Property ShadowMaterial Double
alphaTest :: Property ShadowMaterial Double
$calphaToCoverage :: Property ShadowMaterial Bool
alphaToCoverage :: Property ShadowMaterial Bool
$cblendAlpha :: Property ShadowMaterial Double
blendAlpha :: Property ShadowMaterial Double
$cblendColor :: Property ShadowMaterial Color
blendColor :: Property ShadowMaterial Color
$cblendDst :: Property ShadowMaterial (Maybe DestinationFactors)
blendDst :: Property ShadowMaterial (Maybe DestinationFactors)
$cblendDstAlpha :: Property ShadowMaterial (Maybe DestinationFactors)
blendDstAlpha :: Property ShadowMaterial (Maybe DestinationFactors)
$cblendEquation :: Property ShadowMaterial BlendingEquations
blendEquation :: Property ShadowMaterial BlendingEquations
$cblendEquationAlpha :: Property ShadowMaterial (Maybe BlendingEquations)
blendEquationAlpha :: Property ShadowMaterial (Maybe BlendingEquations)
$cblending :: Property ShadowMaterial (Maybe BlendingMode)
blending :: Property ShadowMaterial (Maybe BlendingMode)
$cblendSrc :: Property ShadowMaterial SourceFactors
blendSrc :: Property ShadowMaterial SourceFactors
$cblendSrcAlpha :: Property ShadowMaterial (Maybe SourceFactors)
blendSrcAlpha :: Property ShadowMaterial (Maybe SourceFactors)
$cclipIntersection :: Property ShadowMaterial Bool
clipIntersection :: Property ShadowMaterial Bool
$cclippingPlanes :: Property ShadowMaterial (Maybe [Plane])
clippingPlanes :: Property ShadowMaterial (Maybe [Plane])
$cclipShadows :: Property ShadowMaterial Bool
clipShadows :: Property ShadowMaterial Bool
$ccolorWrite :: Property ShadowMaterial Bool
colorWrite :: Property ShadowMaterial Bool
$cdefines :: Property ShadowMaterial (Maybe Object)
defines :: Property ShadowMaterial (Maybe Object)
$cdepthFunc :: Property ShadowMaterial DepthMode
depthFunc :: Property ShadowMaterial DepthMode
$cdepthTest :: Property ShadowMaterial Bool
depthTest :: Property ShadowMaterial Bool
$cdepthWrite :: Property ShadowMaterial Bool
depthWrite :: Property ShadowMaterial Bool
$cforceSinglePass :: Property ShadowMaterial Bool
forceSinglePass :: Property ShadowMaterial Bool
$cstencilWrite :: Property ShadowMaterial Bool
stencilWrite :: Property ShadowMaterial Bool
$cstencilWriteMask :: Property ShadowMaterial Int
stencilWriteMask :: Property ShadowMaterial Int
$cstencilFunc :: Property ShadowMaterial StencilFunctions
stencilFunc :: Property ShadowMaterial StencilFunctions
$cstencilRef :: Property ShadowMaterial Int
stencilRef :: Property ShadowMaterial Int
$cstencilFuncMask :: Property ShadowMaterial Int
stencilFuncMask :: Property ShadowMaterial Int
$cstencilFail :: Property ShadowMaterial StencilOperations
stencilFail :: Property ShadowMaterial StencilOperations
$cstencilZFail :: Property ShadowMaterial StencilOperations
stencilZFail :: Property ShadowMaterial StencilOperations
$cstencilZPass :: Property ShadowMaterial StencilOperations
stencilZPass :: Property ShadowMaterial StencilOperations
$cid :: Property ShadowMaterial Int
id :: Property ShadowMaterial Int
$cname :: Property ShadowMaterial MisoString
name :: Property ShadowMaterial MisoString
$cneedsUpdate :: Property ShadowMaterial Bool
needsUpdate :: Property ShadowMaterial Bool
$copacity :: Property ShadowMaterial Double
opacity :: Property ShadowMaterial Double
$cpolygonOffset :: Property ShadowMaterial Bool
polygonOffset :: Property ShadowMaterial Bool
$cpolygonOffsetFactor :: Property ShadowMaterial Int
polygonOffsetFactor :: Property ShadowMaterial Int
$cpolygonOffsetUnits :: Property ShadowMaterial Int
polygonOffsetUnits :: Property ShadowMaterial Int
$cprecision :: Property ShadowMaterial (Maybe MisoString)
precision :: Property ShadowMaterial (Maybe MisoString)
$cpremultipliedAlpha :: Property ShadowMaterial Bool
premultipliedAlpha :: Property ShadowMaterial Bool
$cdithering :: Property ShadowMaterial Bool
dithering :: Property ShadowMaterial Bool
$cshadowSide :: Property ShadowMaterial Side
shadowSide :: Property ShadowMaterial Side
$cside :: Property ShadowMaterial Side
side :: Property ShadowMaterial Side
$ctoneMapped :: Property ShadowMaterial Bool
toneMapped :: Property ShadowMaterial Bool
$ctransparent :: Property ShadowMaterial Bool
transparent :: Property ShadowMaterial Bool
$cversion :: Property ShadowMaterial Int
version :: Property ShadowMaterial Int
$cvertexColors :: Property ShadowMaterial Bool
vertexColors :: Property ShadowMaterial Bool
$cvisible :: Property ShadowMaterial Bool
visible :: Property ShadowMaterial Bool
$cuserData :: Property ShadowMaterial Object
userData :: Property ShadowMaterial Object
$cclone :: FromJSVal ShadowMaterial => Method ShadowMaterial () ShadowMaterial
clone :: FromJSVal ShadowMaterial => Method ShadowMaterial () ShadowMaterial
$ccopy :: (FromJSVal ShadowMaterial, ToArgs ShadowMaterial) =>
Method ShadowMaterial ShadowMaterial ShadowMaterial
copy :: (FromJSVal ShadowMaterial, ToArgs ShadowMaterial) =>
Method ShadowMaterial ShadowMaterial ShadowMaterial
$cdispose :: Method ShadowMaterial () ()
dispose :: Method ShadowMaterial () ()
$ccustomProgramCacheKey :: Method ShadowMaterial () MisoString
customProgramCacheKey :: Method ShadowMaterial () MisoString
$csetValues :: Method ShadowMaterial Object ()
setValues :: Method ShadowMaterial Object ()
$ctoJSON :: Method ShadowMaterial Object Object
toJSON :: Method ShadowMaterial Object Object
Material, ToObject ShadowMaterial
ToJSVal ShadowMaterial
Method ShadowMaterial (MisoString, Function) ()
Method ShadowMaterial Object ()
(ToObject ShadowMaterial, ToJSVal ShadowMaterial) =>
Method ShadowMaterial (MisoString, Function) ()
-> Method ShadowMaterial (MisoString, Function) ()
-> Method ShadowMaterial (MisoString, Function) ()
-> Method ShadowMaterial Object ()
-> EventDispatcher ShadowMaterial
forall object.
(ToObject object, ToJSVal object) =>
Method object (MisoString, Function) ()
-> Method object (MisoString, Function) ()
-> Method object (MisoString, Function) ()
-> Method object Object ()
-> EventDispatcher object
$caddEventListener :: Method ShadowMaterial (MisoString, Function) ()
addEventListener :: Method ShadowMaterial (MisoString, Function) ()
$chasEventListener :: Method ShadowMaterial (MisoString, Function) ()
hasEventListener :: Method ShadowMaterial (MisoString, Function) ()
$cremoveEventListener :: Method ShadowMaterial (MisoString, Function) ()
removeEventListener :: Method ShadowMaterial (MisoString, Function) ()
$cdispatchEvent :: Method ShadowMaterial Object ()
dispatchEvent :: Method ShadowMaterial Object ()
EventDispatcher)

instance FromJSVal ShadowMaterial where
  fromJSVal :: JSVal -> IO (Maybe ShadowMaterial)
fromJSVal = Maybe ShadowMaterial -> IO (Maybe ShadowMaterial)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe ShadowMaterial -> IO (Maybe ShadowMaterial))
-> (JSVal -> Maybe ShadowMaterial)
-> JSVal
-> IO (Maybe ShadowMaterial)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShadowMaterial -> Maybe ShadowMaterial
forall a. a -> Maybe a
Just (ShadowMaterial -> Maybe ShadowMaterial)
-> (JSVal -> ShadowMaterial) -> JSVal -> Maybe ShadowMaterial
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> ShadowMaterial
ShadowMaterial

-- Constructor

new :: THREE.Three ShadowMaterial
new :: IO ShadowMaterial
new = (JSVal -> ShadowMaterial) -> MisoString -> () -> IO ShadowMaterial
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> ShadowMaterial
ShadowMaterial MisoString
"ShadowMaterial" ()

-- Property

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

fog :: Property ShadowMaterial Bool
fog :: Property ShadowMaterial Bool
fog = MisoString -> Property ShadowMaterial Bool
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"fog"