{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module THREE.OrbitControls
(
OrbitControls (..)
, THREE.OrbitControls.new
, update
) where
import qualified Miso as J
import Miso hiding (update)
import THREE.Camera as THREE
import THREE.Controls as THREE
import THREE.Internal as THREE
import THREE.EventDispatcher as THREE
newtype OrbitControls
= OrbitControls
{ OrbitControls -> JSVal
unOrbitControls :: JSVal
} deriving newtype (OrbitControls -> IO [JSVal]
(OrbitControls -> IO [JSVal]) -> ToArgs OrbitControls
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: OrbitControls -> IO [JSVal]
toArgs :: OrbitControls -> IO [JSVal]
ToArgs, OrbitControls -> IO Object
(OrbitControls -> IO Object) -> ToObject OrbitControls
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: OrbitControls -> IO Object
toObject :: OrbitControls -> IO Object
ToObject, OrbitControls -> IO JSVal
(OrbitControls -> IO JSVal) -> ToJSVal OrbitControls
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: OrbitControls -> IO JSVal
toJSVal :: OrbitControls -> IO JSVal
ToJSVal)
deriving anyclass (Property OrbitControls Bool
EventDispatcher OrbitControls
EventDispatcher OrbitControls =>
Property OrbitControls Bool -> Controls OrbitControls
forall controls.
EventDispatcher controls =>
Property controls Bool -> Controls controls
$cenabled :: Property OrbitControls Bool
enabled :: Property OrbitControls Bool
Controls, ToObject OrbitControls
ToJSVal OrbitControls
Method OrbitControls (MisoString, Function) ()
Method OrbitControls Object ()
(ToObject OrbitControls, ToJSVal OrbitControls) =>
Method OrbitControls (MisoString, Function) ()
-> Method OrbitControls (MisoString, Function) ()
-> Method OrbitControls (MisoString, Function) ()
-> Method OrbitControls Object ()
-> EventDispatcher OrbitControls
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 OrbitControls (MisoString, Function) ()
addEventListener :: Method OrbitControls (MisoString, Function) ()
$chasEventListener :: Method OrbitControls (MisoString, Function) ()
hasEventListener :: Method OrbitControls (MisoString, Function) ()
$cremoveEventListener :: Method OrbitControls (MisoString, Function) ()
removeEventListener :: Method OrbitControls (MisoString, Function) ()
$cdispatchEvent :: Method OrbitControls Object ()
dispatchEvent :: Method OrbitControls Object ()
EventDispatcher)
instance FromJSVal OrbitControls where
fromJSVal :: JSVal -> IO (Maybe OrbitControls)
fromJSVal = Maybe OrbitControls -> IO (Maybe OrbitControls)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe OrbitControls -> IO (Maybe OrbitControls))
-> (JSVal -> Maybe OrbitControls)
-> JSVal
-> IO (Maybe OrbitControls)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OrbitControls -> Maybe OrbitControls
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (OrbitControls -> Maybe OrbitControls)
-> (JSVal -> OrbitControls) -> JSVal -> Maybe OrbitControls
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> OrbitControls
OrbitControls
new
:: Camera camera
=> (camera, JSVal)
-> THREE.Three OrbitControls
new :: forall camera. Camera camera => (camera, JSVal) -> IO OrbitControls
new (camera
cam, JSVal
elt) = do
v <- MisoString -> IO JSVal
jsg (MisoString
"OrbitControls" :: MisoString)
OrbitControls <$> J.new v (cam, elt)
update :: Method OrbitControls () Bool
update :: Method OrbitControls () Bool
update = MisoString -> Method OrbitControls () Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"update"