{- ORMOLU_DISABLE -}
-- Implicit CAD. Copyright (C) 2011, Christopher Olah (chris@colah.ca)
-- Copyright (C) 2016 Julia Longtin (julial@turinglace.com)
-- Released under the GNU AGPLV3+, see LICENSE

module Graphics.Implicit.Export.Symbolic.Rebound3 (rebound3) where

import Prelude ((-), (+))
import Graphics.Implicit.Definitions(BoxedObj3, ℝ3)
import Linear ((^/))

-- | Slightly stretch the bounding box of an object, in order to
--   ensure that during mesh generation, there are no problems because
--   values are right at the edge.
rebound3 :: BoxedObj3 -> BoxedObj3
rebound3 :: BoxedObj3 -> BoxedObj3
rebound3 (Obj3
obj, (V3 ℝ
a,V3 ℝ
b)) =
    let
        d :: ℝ3
        d :: V3 ℝ
d = (V3 ℝ
b forall a. Num a => a -> a -> a
- V3 ℝ
a) forall (f :: * -> *) a.
(Functor f, Fractional a) =>
f a -> a -> f a
^/ 10
    in
        (Obj3
obj, (V3 ℝ
a forall a. Num a => a -> a -> a
- V3 ℝ
d, V3 ℝ
b forall a. Num a => a -> a -> a
+ V3 ℝ
d))