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