{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE UndecidableInstances #-}
module THREE.Box3
(
Box3 (..)
, THREE.Box3.new
, isBox3
, THREE.Box3.min
, THREE.Box3.max
, THREE.Box3.applyMatrix4
, clampPoint
, THREE.Box3.clone
, containsBox
, containsPoint
, THREE.Box3.copy
, distanceToPoint
, equals
, expandByObject
, expandByPoint
, expandByScalar
, expandByVector
, getBoundingSphere
, getCenter
, getParameter
, getSize
, intersect
, intersectsBox
, intersectsPlane
, intersectsSphere
, intersectsTriangle
, isEmpty
, makeEmpty
, set
, setFromArray
, setFromBufferAttribute
, setFromCenterAndSize
, setFromObject
, setFromPoints
, translate
, union
) where
import Miso hiding (set)
import THREE.BufferAttribute
import THREE.Internal as THREE
import THREE.Matrix4
import THREE.Object3D
import THREE.Plane
import THREE.Sphere
import THREE.Triangle
import THREE.Vector3
newtype Box3
= Box3
{ Box3 -> JSVal
unBox3 :: JSVal
} deriving newtype (Box3 -> IO [JSVal]
(Box3 -> IO [JSVal]) -> ToArgs Box3
forall args. (args -> IO [JSVal]) -> ToArgs args
$ctoArgs :: Box3 -> IO [JSVal]
toArgs :: Box3 -> IO [JSVal]
ToArgs, Box3 -> IO Object
(Box3 -> IO Object) -> ToObject Box3
forall a. (a -> IO Object) -> ToObject a
$ctoObject :: Box3 -> IO Object
toObject :: Box3 -> IO Object
ToObject, Box3 -> IO JSVal
(Box3 -> IO JSVal) -> ToJSVal Box3
forall a. (a -> IO JSVal) -> ToJSVal a
$ctoJSVal :: Box3 -> IO JSVal
toJSVal :: Box3 -> IO JSVal
ToJSVal)
instance FromJSVal Box3 where
fromJSVal :: JSVal -> IO (Maybe Box3)
fromJSVal = Maybe Box3 -> IO (Maybe Box3)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Maybe Box3 -> IO (Maybe Box3))
-> (JSVal -> Maybe Box3) -> JSVal -> IO (Maybe Box3)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Box3 -> Maybe Box3
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Box3 -> Maybe Box3) -> (JSVal -> Box3) -> JSVal -> Maybe Box3
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSVal -> Box3
Box3
class Box3NewParams a
instance Box3NewParams ()
instance Box3NewParams Vector3
instance Box3NewParams (Vector3, Vector3)
new :: (Box3NewParams a, ToArgs a) => a -> THREE.Three Box3
new :: forall a. (Box3NewParams a, ToArgs a) => a -> IO Box3
new = (JSVal -> Box3) -> MisoString -> a -> IO Box3
forall args con.
ToArgs args =>
(JSVal -> con) -> MisoString -> args -> Three con
THREE.new JSVal -> Box3
Box3 MisoString
"Box3"
isBox3 :: ReadOnly Box3 Bool
isBox3 :: ReadOnly Box3 Bool
isBox3 = MisoString -> ReadOnly Box3 Bool
forall object return.
(FromJSVal return, ToObject object) =>
MisoString -> ReadOnly object return
readonly MisoString
"isBox3"
min :: Property Box3 Vector3
min :: Property Box3 Vector3
min = MisoString -> Property Box3 Vector3
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"min"
max :: Property Box3 Vector3
max :: Property Box3 Vector3
max = MisoString -> Property Box3 Vector3
forall object field.
(ToObject object, ToJSVal field, FromJSVal field) =>
MisoString -> Property object field
property MisoString
"max"
applyMatrix4 :: Method Box3 Matrix4 Box3
applyMatrix4 :: Method Box3 Matrix4 Box3
applyMatrix4 = MisoString -> Method Box3 Matrix4 Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"appluMatrix4"
clampPoint :: Method Box3 (Vector3, Vector3) Vector3
clampPoint :: Method Box3 (Vector3, Vector3) Vector3
clampPoint = MisoString -> Method Box3 (Vector3, Vector3) Vector3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"clampPoint"
clone :: Method Box3 () Box3
clone :: Method Box3 () Box3
clone = MisoString -> Method Box3 () Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"clone"
containsBox :: Method Box3 Box3 Bool
containsBox :: Method Box3 Box3 Bool
containsBox = MisoString -> Method Box3 Box3 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"containsBox"
containsPoint :: Method Box3 Vector3 Bool
containsPoint :: Method Box3 Vector3 Bool
containsPoint = MisoString -> Method Box3 Vector3 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"containsPoint"
copy :: Method Box3 Box3 Box3
copy :: Method Box3 Box3 Box3
copy = MisoString -> Method Box3 Box3 Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"copy"
distanceToPoint :: Method Box3 Vector3 Double
distanceToPoint :: Method Box3 Vector3 Double
distanceToPoint = MisoString -> Method Box3 Vector3 Double
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"distanceToPoint"
equals :: Method Box3 Box3 Bool
equals :: Method Box3 Box3 Bool
equals = MisoString -> Method Box3 Box3 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"equals"
class Box3ExpandByObjectParams a
instance Object3D a => Box3ExpandByObjectParams a
instance Object3D a => Box3ExpandByObjectParams (a, Bool)
expandByObject :: (Box3ExpandByObjectParams a, ToArgs a) => Method Box3 a Box3
expandByObject :: forall a.
(Box3ExpandByObjectParams a, ToArgs a) =>
Method Box3 a Box3
expandByObject = MisoString -> Method Box3 a Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"expandByObject"
expandByPoint :: Method Box3 Vector3 Box3
expandByPoint :: Method Box3 Vector3 Box3
expandByPoint = MisoString -> Method Box3 Vector3 Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"expandByPoint"
expandByScalar :: Method Box3 Double Box3
expandByScalar :: Method Box3 Double Box3
expandByScalar = MisoString -> Method Box3 Double Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"expandByScalar"
expandByVector :: Method Box3 Vector3 Box3
expandByVector :: Method Box3 Vector3 Box3
expandByVector = MisoString -> Method Box3 Vector3 Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"expandByVector"
getBoundingSphere :: Method Box3 Sphere Sphere
getBoundingSphere :: Method Box3 Sphere Sphere
getBoundingSphere = MisoString -> Method Box3 Sphere Sphere
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"getBoundingSphere"
getCenter :: Method Box3 Vector3 Vector3
getCenter :: Method Box3 Vector3 Vector3
getCenter = MisoString -> Method Box3 Vector3 Vector3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"getCenter"
getParameter :: Method Box3 (Vector3, Vector3) Vector3
getParameter :: Method Box3 (Vector3, Vector3) Vector3
getParameter = MisoString -> Method Box3 (Vector3, Vector3) Vector3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"getParameter"
getSize :: Method Box3 Vector3 Vector3
getSize :: Method Box3 Vector3 Vector3
getSize = MisoString -> Method Box3 Vector3 Vector3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"getSize"
intersect :: Method Box3 Box3 Box3
intersect :: Method Box3 Box3 Box3
intersect = MisoString -> Method Box3 Box3 Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"intersect"
intersectsBox :: Method Box3 Box3 Bool
intersectsBox :: Method Box3 Box3 Bool
intersectsBox = MisoString -> Method Box3 Box3 Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"intersectsBox"
intersectsPlane :: Method Box3 Plane Bool
intersectsPlane :: Method Box3 Plane Bool
intersectsPlane = MisoString -> Method Box3 Plane Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"intersectsPlane"
intersectsSphere :: Method Box3 Sphere Bool
intersectsSphere :: Method Box3 Sphere Bool
intersectsSphere = MisoString -> Method Box3 Sphere Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"intersectsSphere"
intersectsTriangle :: Method Box3 Triangle Bool
intersectsTriangle :: Method Box3 Triangle Bool
intersectsTriangle = MisoString -> Method Box3 Triangle Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"intersectsTriangle"
isEmpty :: Method Box3 () Bool
isEmpty :: Method Box3 () Bool
isEmpty = MisoString -> Method Box3 () Bool
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"isEmpty"
makeEmpty :: Method Box3 () Box3
makeEmpty :: Method Box3 () Box3
makeEmpty = MisoString -> Method Box3 () Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"makeEmpty"
set :: Method Box3 (Vector3, Vector3) Box3
set :: Method Box3 (Vector3, Vector3) Box3
set = MisoString -> Method Box3 (Vector3, Vector3) Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"set"
setFromArray :: Method Box3 [Double] Box3
setFromArray :: Method Box3 [Double] Box3
setFromArray = MisoString -> Method Box3 [Double] Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"setFromArray"
setFromBufferAttribute :: Method Box3 BufferAttribute Box3
setFromBufferAttribute :: Method Box3 BufferAttribute Box3
setFromBufferAttribute = MisoString -> Method Box3 BufferAttribute Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"setFromBufferAttribute"
setFromCenterAndSize :: Method Box3 (Vector3, Vector3) Box3
setFromCenterAndSize :: Method Box3 (Vector3, Vector3) Box3
setFromCenterAndSize = MisoString -> Method Box3 (Vector3, Vector3) Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"setFromCenterAndSize"
class Box3SetFromObjectParams a
instance Object3D a => Box3SetFromObjectParams a
instance Object3D a => Box3SetFromObjectParams (a, Bool)
setFromObject :: (Box3SetFromObjectParams a, ToArgs a) => Method Box3 a Box3
setFromObject :: forall a.
(Box3SetFromObjectParams a, ToArgs a) =>
Method Box3 a Box3
setFromObject = MisoString -> Method Box3 a Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"setFromObject"
setFromPoints :: Method Box3 [Vector3] Box3
setFromPoints :: Method Box3 [Vector3] Box3
setFromPoints = MisoString -> Method Box3 [Vector3] Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"setFromPoints"
translate :: Method Box3 Vector3 Box3
translate :: Method Box3 Vector3 Box3
translate = MisoString -> Method Box3 Vector3 Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"translate"
union :: Method Box3 Vector3 Box3
union :: Method Box3 Vector3 Box3
union = MisoString -> Method Box3 Vector3 Box3
forall object return args.
(FromJSVal return, ToArgs args, ToObject object) =>
MisoString -> Method object args return
method MisoString
"union"