-----------------------------------------------------------------------------
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
module THREE.LineBasicMaterial
  ( -- * Types
    LineBasicMaterial (..)
  , LineBasicMaterialClass (..)
    -- * Constructors
  , THREE.LineBasicMaterial.new
    -- * Read-only Properties
    -- * Properties
    -- * Methods
  ) where
-----------------------------------------------------------------------------
import           Miso
-----------------------------------------------------------------------------
import           THREE.Color
import           THREE.Constants.Materials
import           THREE.EventDispatcher
import           THREE.Internal as THREE
import           THREE.Material
import           THREE.Texture
-----------------------------------------------------------------------------
-- | https://threejs.org/docs/#api/en/materials/LineBasicMaterial
class (Material material) => LineBasicMaterialClass material where

  -- ReadOnly

  -- Property

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

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

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

  linecap :: Property material Linecap
  linecap = MisoString -> Property material Linecap
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"linecap"

  linejoin :: Property material Linejoin
  linejoin = MisoString -> Property material Linejoin
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"linejoin"

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

  -- Method

instance LineBasicMaterialClass JSVal

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

newtype LineBasicMaterial
  = LineBasicMaterial
  { LineBasicMaterial -> JSVal
unLineBasicMaterial :: JSVal
  } deriving newtype (LineBasicMaterial -> IO [JSVal]
(LineBasicMaterial -> IO [JSVal]) -> ToArgs LineBasicMaterial
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: LineBasicMaterial -> IO [JSVal]
toArgs :: LineBasicMaterial -> IO [JSVal]
ToArgs, LineBasicMaterial -> IO Object
(LineBasicMaterial -> IO Object) -> ToObject LineBasicMaterial
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: LineBasicMaterial -> IO Object
toObject :: LineBasicMaterial -> IO Object
ToObject, LineBasicMaterial -> IO JSVal
(LineBasicMaterial -> IO JSVal) -> ToJSVal LineBasicMaterial
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: LineBasicMaterial -> IO JSVal
toJSVal :: LineBasicMaterial -> IO JSVal
ToJSVal)
    deriving anyclass (ToObject LineBasicMaterial
ToJSVal LineBasicMaterial
Property LineBasicMaterial Bool
Property LineBasicMaterial Double
Property LineBasicMaterial Int
Property LineBasicMaterial (Maybe [Plane])
Property LineBasicMaterial (Maybe MisoString)
Property LineBasicMaterial (Maybe Object)
Property LineBasicMaterial (Maybe BlendingEquations)
Property LineBasicMaterial (Maybe DestinationFactors)
Property LineBasicMaterial (Maybe SourceFactors)
Property LineBasicMaterial (Maybe BlendingMode)
Property LineBasicMaterial MisoString
Property LineBasicMaterial Object
Property LineBasicMaterial BlendingEquations
Property LineBasicMaterial SourceFactors
Property LineBasicMaterial DepthMode
Property LineBasicMaterial Side
Property LineBasicMaterial StencilFunctions
Property LineBasicMaterial StencilOperations
Property LineBasicMaterial Color
ReadOnly LineBasicMaterial Bool
ReadOnly LineBasicMaterial MisoString
EventDispatcher LineBasicMaterial
Method LineBasicMaterial () ()
Method LineBasicMaterial () MisoString
Method LineBasicMaterial Object ()
Method LineBasicMaterial Object Object
FromJSVal LineBasicMaterial =>
Method LineBasicMaterial () LineBasicMaterial
(FromJSVal LineBasicMaterial, ToArgs LineBasicMaterial) =>
Method LineBasicMaterial LineBasicMaterial LineBasicMaterial
(EventDispatcher LineBasicMaterial, ToJSVal LineBasicMaterial,
 ToObject LineBasicMaterial) =>
ReadOnly LineBasicMaterial MisoString
-> ReadOnly LineBasicMaterial MisoString
-> ReadOnly LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Double
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Double
-> Property LineBasicMaterial Color
-> Property LineBasicMaterial (Maybe DestinationFactors)
-> Property LineBasicMaterial (Maybe DestinationFactors)
-> Property LineBasicMaterial BlendingEquations
-> Property LineBasicMaterial (Maybe BlendingEquations)
-> Property LineBasicMaterial (Maybe BlendingMode)
-> Property LineBasicMaterial SourceFactors
-> Property LineBasicMaterial (Maybe SourceFactors)
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial (Maybe [Plane])
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial (Maybe Object)
-> Property LineBasicMaterial DepthMode
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Int
-> Property LineBasicMaterial StencilFunctions
-> Property LineBasicMaterial Int
-> Property LineBasicMaterial Int
-> Property LineBasicMaterial StencilOperations
-> Property LineBasicMaterial StencilOperations
-> Property LineBasicMaterial StencilOperations
-> Property LineBasicMaterial Int
-> Property LineBasicMaterial MisoString
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Double
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Int
-> Property LineBasicMaterial Int
-> Property LineBasicMaterial (Maybe MisoString)
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Side
-> Property LineBasicMaterial Side
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Int
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Object
-> (FromJSVal LineBasicMaterial =>
    Method LineBasicMaterial () LineBasicMaterial)
-> ((FromJSVal LineBasicMaterial, ToArgs LineBasicMaterial) =>
    Method LineBasicMaterial LineBasicMaterial LineBasicMaterial)
-> Method LineBasicMaterial () ()
-> Method LineBasicMaterial () MisoString
-> Method LineBasicMaterial Object ()
-> Method LineBasicMaterial Object Object
-> Material LineBasicMaterial
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 LineBasicMaterial MisoString
type_ :: ReadOnly LineBasicMaterial MisoString
$cuuid :: ReadOnly LineBasicMaterial MisoString
uuid :: ReadOnly LineBasicMaterial MisoString
$cisMaterial :: ReadOnly LineBasicMaterial Bool
isMaterial :: ReadOnly LineBasicMaterial Bool
$calphaHash :: Property LineBasicMaterial Bool
alphaHash :: Property LineBasicMaterial Bool
$calphaTest :: Property LineBasicMaterial Double
alphaTest :: Property LineBasicMaterial Double
$calphaToCoverage :: Property LineBasicMaterial Bool
alphaToCoverage :: Property LineBasicMaterial Bool
$cblendAlpha :: Property LineBasicMaterial Double
blendAlpha :: Property LineBasicMaterial Double
$cblendColor :: Property LineBasicMaterial Color
blendColor :: Property LineBasicMaterial Color
$cblendDst :: Property LineBasicMaterial (Maybe DestinationFactors)
blendDst :: Property LineBasicMaterial (Maybe DestinationFactors)
$cblendDstAlpha :: Property LineBasicMaterial (Maybe DestinationFactors)
blendDstAlpha :: Property LineBasicMaterial (Maybe DestinationFactors)
$cblendEquation :: Property LineBasicMaterial BlendingEquations
blendEquation :: Property LineBasicMaterial BlendingEquations
$cblendEquationAlpha :: Property LineBasicMaterial (Maybe BlendingEquations)
blendEquationAlpha :: Property LineBasicMaterial (Maybe BlendingEquations)
$cblending :: Property LineBasicMaterial (Maybe BlendingMode)
blending :: Property LineBasicMaterial (Maybe BlendingMode)
$cblendSrc :: Property LineBasicMaterial SourceFactors
blendSrc :: Property LineBasicMaterial SourceFactors
$cblendSrcAlpha :: Property LineBasicMaterial (Maybe SourceFactors)
blendSrcAlpha :: Property LineBasicMaterial (Maybe SourceFactors)
$cclipIntersection :: Property LineBasicMaterial Bool
clipIntersection :: Property LineBasicMaterial Bool
$cclippingPlanes :: Property LineBasicMaterial (Maybe [Plane])
clippingPlanes :: Property LineBasicMaterial (Maybe [Plane])
$cclipShadows :: Property LineBasicMaterial Bool
clipShadows :: Property LineBasicMaterial Bool
$ccolorWrite :: Property LineBasicMaterial Bool
colorWrite :: Property LineBasicMaterial Bool
$cdefines :: Property LineBasicMaterial (Maybe Object)
defines :: Property LineBasicMaterial (Maybe Object)
$cdepthFunc :: Property LineBasicMaterial DepthMode
depthFunc :: Property LineBasicMaterial DepthMode
$cdepthTest :: Property LineBasicMaterial Bool
depthTest :: Property LineBasicMaterial Bool
$cdepthWrite :: Property LineBasicMaterial Bool
depthWrite :: Property LineBasicMaterial Bool
$cforceSinglePass :: Property LineBasicMaterial Bool
forceSinglePass :: Property LineBasicMaterial Bool
$cstencilWrite :: Property LineBasicMaterial Bool
stencilWrite :: Property LineBasicMaterial Bool
$cstencilWriteMask :: Property LineBasicMaterial Int
stencilWriteMask :: Property LineBasicMaterial Int
$cstencilFunc :: Property LineBasicMaterial StencilFunctions
stencilFunc :: Property LineBasicMaterial StencilFunctions
$cstencilRef :: Property LineBasicMaterial Int
stencilRef :: Property LineBasicMaterial Int
$cstencilFuncMask :: Property LineBasicMaterial Int
stencilFuncMask :: Property LineBasicMaterial Int
$cstencilFail :: Property LineBasicMaterial StencilOperations
stencilFail :: Property LineBasicMaterial StencilOperations
$cstencilZFail :: Property LineBasicMaterial StencilOperations
stencilZFail :: Property LineBasicMaterial StencilOperations
$cstencilZPass :: Property LineBasicMaterial StencilOperations
stencilZPass :: Property LineBasicMaterial StencilOperations
$cid :: Property LineBasicMaterial Int
id :: Property LineBasicMaterial Int
$cname :: Property LineBasicMaterial MisoString
name :: Property LineBasicMaterial MisoString
$cneedsUpdate :: Property LineBasicMaterial Bool
needsUpdate :: Property LineBasicMaterial Bool
$copacity :: Property LineBasicMaterial Double
opacity :: Property LineBasicMaterial Double
$cpolygonOffset :: Property LineBasicMaterial Bool
polygonOffset :: Property LineBasicMaterial Bool
$cpolygonOffsetFactor :: Property LineBasicMaterial Int
polygonOffsetFactor :: Property LineBasicMaterial Int
$cpolygonOffsetUnits :: Property LineBasicMaterial Int
polygonOffsetUnits :: Property LineBasicMaterial Int
$cprecision :: Property LineBasicMaterial (Maybe MisoString)
precision :: Property LineBasicMaterial (Maybe MisoString)
$cpremultipliedAlpha :: Property LineBasicMaterial Bool
premultipliedAlpha :: Property LineBasicMaterial Bool
$cdithering :: Property LineBasicMaterial Bool
dithering :: Property LineBasicMaterial Bool
$cshadowSide :: Property LineBasicMaterial Side
shadowSide :: Property LineBasicMaterial Side
$cside :: Property LineBasicMaterial Side
side :: Property LineBasicMaterial Side
$ctoneMapped :: Property LineBasicMaterial Bool
toneMapped :: Property LineBasicMaterial Bool
$ctransparent :: Property LineBasicMaterial Bool
transparent :: Property LineBasicMaterial Bool
$cversion :: Property LineBasicMaterial Int
version :: Property LineBasicMaterial Int
$cvertexColors :: Property LineBasicMaterial Bool
vertexColors :: Property LineBasicMaterial Bool
$cvisible :: Property LineBasicMaterial Bool
visible :: Property LineBasicMaterial Bool
$cuserData :: Property LineBasicMaterial Object
userData :: Property LineBasicMaterial Object
$cclone :: FromJSVal LineBasicMaterial =>
Method LineBasicMaterial () LineBasicMaterial
clone :: FromJSVal LineBasicMaterial =>
Method LineBasicMaterial () LineBasicMaterial
$ccopy :: (FromJSVal LineBasicMaterial, ToArgs LineBasicMaterial) =>
Method LineBasicMaterial LineBasicMaterial LineBasicMaterial
copy :: (FromJSVal LineBasicMaterial, ToArgs LineBasicMaterial) =>
Method LineBasicMaterial LineBasicMaterial LineBasicMaterial
$cdispose :: Method LineBasicMaterial () ()
dispose :: Method LineBasicMaterial () ()
$ccustomProgramCacheKey :: Method LineBasicMaterial () MisoString
customProgramCacheKey :: Method LineBasicMaterial () MisoString
$csetValues :: Method LineBasicMaterial Object ()
setValues :: Method LineBasicMaterial Object ()
$ctoJSON :: Method LineBasicMaterial Object Object
toJSON :: Method LineBasicMaterial Object Object
Material, ToObject LineBasicMaterial
ToJSVal LineBasicMaterial
Method LineBasicMaterial (MisoString, Function) ()
Method LineBasicMaterial Object ()
(ToObject LineBasicMaterial, ToJSVal LineBasicMaterial) =>
Method LineBasicMaterial (MisoString, Function) ()
-> Method LineBasicMaterial (MisoString, Function) ()
-> Method LineBasicMaterial (MisoString, Function) ()
-> Method LineBasicMaterial Object ()
-> EventDispatcher LineBasicMaterial
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 LineBasicMaterial (MisoString, Function) ()
addEventListener :: Method LineBasicMaterial (MisoString, Function) ()
$chasEventListener :: Method LineBasicMaterial (MisoString, Function) ()
hasEventListener :: Method LineBasicMaterial (MisoString, Function) ()
$cremoveEventListener :: Method LineBasicMaterial (MisoString, Function) ()
removeEventListener :: Method LineBasicMaterial (MisoString, Function) ()
$cdispatchEvent :: Method LineBasicMaterial Object ()
dispatchEvent :: Method LineBasicMaterial Object ()
EventDispatcher, Property LineBasicMaterial Bool
Property LineBasicMaterial Double
Property LineBasicMaterial Linecap
Property LineBasicMaterial Linejoin
Property LineBasicMaterial Color
Material LineBasicMaterial
Material LineBasicMaterial =>
Property LineBasicMaterial Color
-> Property LineBasicMaterial Bool
-> Property LineBasicMaterial Double
-> Property LineBasicMaterial Linecap
-> Property LineBasicMaterial Linejoin
-> (forall texture.
    (TextureClass texture, FromJSVal texture) =>
    Property LineBasicMaterial (Maybe texture))
-> LineBasicMaterialClass LineBasicMaterial
forall material.
Material material =>
Property material Color
-> Property material Bool
-> Property material Double
-> Property material Linecap
-> Property material Linejoin
-> (forall texture.
    (TextureClass texture, FromJSVal texture) =>
    Property material (Maybe texture))
-> LineBasicMaterialClass material
forall texture.
(TextureClass texture, FromJSVal texture) =>
Property LineBasicMaterial (Maybe texture)
$ccolor :: Property LineBasicMaterial Color
color :: Property LineBasicMaterial Color
$cfog :: Property LineBasicMaterial Bool
fog :: Property LineBasicMaterial Bool
$clinewidth :: Property LineBasicMaterial Double
linewidth :: Property LineBasicMaterial Double
$clinecap :: Property LineBasicMaterial Linecap
linecap :: Property LineBasicMaterial Linecap
$clinejoin :: Property LineBasicMaterial Linejoin
linejoin :: Property LineBasicMaterial Linejoin
$cmap :: forall texture.
(TextureClass texture, FromJSVal texture) =>
Property LineBasicMaterial (Maybe texture)
map :: forall texture.
(TextureClass texture, FromJSVal texture) =>
Property LineBasicMaterial (Maybe texture)
LineBasicMaterialClass)

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

-- Constructor

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