{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module THREE.Box2
(
Box2 (..)
, THREE.Box2.new
, isBox2
, THREE.Box2.min
, THREE.Box2.max
, clampPoint
, clone
, containsBox
, containsPoint
, copy
, distanceToPoint
, equals
, expandByPoint
, expandByScalar
, expandByVector
, getCenter
, getParameter
, getSize
, intersect
, intersectsBox
, isEmpty
, makeEmpty
, set
, setFromCenterAndSize
, setFromPoints
, translate
, union
) where
import Miso hiding (set)
import THREE.Internal as THREE
import THREE.Vector2
newtype Box2
= Box2
{ Box2 -> JSVal
unBox2 :: JSVal
} deriving newtype (Box2 -> IO [JSVal]
(Box2 -> IO [JSVal]) -> ToArgs Box2
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: Box2 -> IO [JSVal]
toArgs :: Box2 -> IO [JSVal]
ToArgs, Box2 -> IO Object
(Box2 -> IO Object) -> ToObject Box2
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: Box2 -> IO Object
toObject :: Box2 -> IO Object
ToObject, Box2 -> IO JSVal
(Box2 -> IO JSVal) -> ToJSVal Box2
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: Box2 -> IO JSVal
toJSVal :: Box2 -> IO JSVal
ToJSVal)
instance FromJSVal Box2 where
fromJSVal :: JSVal -> IO (Maybe Box2)
fromJSVal = Maybe Box2 -> IO (Maybe Box2)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe Box2 -> IO (Maybe Box2))
-> (JSVal -> Maybe Box2) -> JSVal -> IO (Maybe Box2)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Box2 -> Maybe Box2
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Box2 -> Maybe Box2) -> (JSVal -> Box2) -> JSVal -> Maybe Box2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> Box2
Box2
class Box2NewParams a
instance Box2NewParams ()
instance Box2NewParams Vector2
instance Box2NewParams (Vector2, Vector2)
new :: (Box2NewParams a, ToArgs a) => a -> THREE.Three Box2
new :: forall a. (Box2NewParams a, ToArgs a) => a -> IO Box2
new = (JSVal -> Box2) -> MisoString -> a -> IO Box2
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> Box2
Box2 MisoString
"Box2"
isBox2 :: ReadOnly Box2 Bool
isBox2 :: ReadOnly Box2 Bool
isBox2 = MisoString -> ReadOnly Box2 Bool
forall object return.
(FromJSVal return, ToObject object) =>
MisoString -> ReadOnly object return
readonly MisoString
"isBox2"
min :: Property Box2 Vector2
min :: Property Box2 Vector2
min = MisoString -> Property Box2 Vector2
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"min"
max :: Property Box2 Vector2
max :: Property Box2 Vector2
max = MisoString -> Property Box2 Vector2
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"max"
clampPoint :: Method Box2 (Vector2, Vector2) Vector2
clampPoint :: Method Box2 (Vector2, Vector2) Vector2
clampPoint = MisoString -> Method Box2 (Vector2, Vector2) Vector2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"clampPoint"
clone :: Method Box2 () Box2
clone :: Method Box2 () Box2
clone = MisoString -> Method Box2 () Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"clone"
containsBox :: Method Box2 Box2 Bool
containsBox :: Method Box2 Box2 Bool
containsBox = MisoString -> Method Box2 Box2 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"containsBox"
containsPoint :: Method Box2 Vector2 Bool
containsPoint :: Method Box2 Vector2 Bool
containsPoint = MisoString -> Method Box2 Vector2 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"containsPoint"
copy :: Method Box2 Box2 Box2
copy :: Method Box2 Box2 Box2
copy = MisoString -> Method Box2 Box2 Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"copy"
distanceToPoint :: Method Box2 Vector2 Double
distanceToPoint :: Method Box2 Vector2 Double
distanceToPoint = MisoString -> Method Box2 Vector2 Double
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"distanceToPoint"
equals :: Method Box2 Box2 Bool
equals :: Method Box2 Box2 Bool
equals = MisoString -> Method Box2 Box2 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"equals"
expandByPoint :: Method Box2 Vector2 Box2
expandByPoint :: Method Box2 Vector2 Box2
expandByPoint = MisoString -> Method Box2 Vector2 Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"expandByPoint"
expandByScalar :: Method Box2 Double Box2
expandByScalar :: Method Box2 Double Box2
expandByScalar = MisoString -> Method Box2 Double Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"expandByScalar"
expandByVector :: Method Box2 Vector2 Box2
expandByVector :: Method Box2 Vector2 Box2
expandByVector = MisoString -> Method Box2 Vector2 Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"expandByVector"
getCenter :: Method Box2 Vector2 Vector2
getCenter :: Method Box2 Vector2 Vector2
getCenter = MisoString -> Method Box2 Vector2 Vector2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"getCenter"
getParameter :: Method Box2 (Vector2, Vector2) Vector2
getParameter :: Method Box2 (Vector2, Vector2) Vector2
getParameter = MisoString -> Method Box2 (Vector2, Vector2) Vector2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"getParameter"
getSize :: Method Box2 Vector2 Vector2
getSize :: Method Box2 Vector2 Vector2
getSize = MisoString -> Method Box2 Vector2 Vector2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"getSize"
intersect :: Method Box2 Box2 Box2
intersect :: Method Box2 Box2 Box2
intersect = MisoString -> Method Box2 Box2 Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"intersect"
intersectsBox :: Method Box2 Box2 Bool
intersectsBox :: Method Box2 Box2 Bool
intersectsBox = MisoString -> Method Box2 Box2 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"intersectsBox"
isEmpty :: Method Box2 () Bool
isEmpty :: Method Box2 () Bool
isEmpty = MisoString -> Method Box2 () Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"isEmpty"
makeEmpty :: Method Box2 () Box2
makeEmpty :: Method Box2 () Box2
makeEmpty = MisoString -> Method Box2 () Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"makeEmpty"
set :: Method Box2 (Vector2, Vector2) Box2
set :: Method Box2 (Vector2, Vector2) Box2
set = MisoString -> Method Box2 (Vector2, Vector2) Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"set"
setFromCenterAndSize :: Method Box2 (Vector2, Vector2) Box2
setFromCenterAndSize :: Method Box2 (Vector2, Vector2) Box2
setFromCenterAndSize = MisoString -> Method Box2 (Vector2, Vector2) Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"setFromCenterAndSize"
setFromPoints :: Method Box2 [Vector2] Box2
setFromPoints :: Method Box2 [Vector2] Box2
setFromPoints = MisoString -> Method Box2 [Vector2] Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"setFromPoints"
translate :: Method Box2 Vector2 Box2
translate :: Method Box2 Vector2 Box2
translate = MisoString -> Method Box2 Vector2 Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"translate"
union :: Method Box2 Vector2 Box2
union :: Method Box2 Vector2 Box2
union = MisoString -> Method Box2 Vector2 Box2
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"union"