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

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

-- Constructor

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

-- Property

alphaMap :: (TextureClass texture, FromJSVal texture) => Property PointsMaterial (Maybe texture)
alphaMap :: forall texture.
(TextureClass texture, FromJSVal texture) =>
Property PointsMaterial (Maybe texture)
alphaMap = MisoString -> Property PointsMaterial (Maybe texture)
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object (Maybe field)
optional MisoString
"alphaMap"

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

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

map :: (TextureClass texture, FromJSVal texture) => Property PointsMaterial (Maybe texture)
map :: forall texture.
(TextureClass texture, FromJSVal texture) =>
Property PointsMaterial (Maybe texture)
map = MisoString -> Property PointsMaterial (Maybe texture)
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object (Maybe field)
optional MisoString
"map"

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

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