geomancy-0.4.0.0: src/Geomancy/DTransform/Tree.hs
module Geomancy.DTransform.Tree
( Transformed
, apply
, node_
, leaf_
, collect_
, translate_
, translateV_
, rotateX_
, rotateY_
, rotateZ_
, rotateQ_
, scale_
, scaleX_
, scaleY_
, scaleZ_
, scaleXY_
, scale3_
) where
import Geomancy.DQuaternion (DQuaternion)
import Geomancy.DTransform (DTransform)
import Geomancy.Tree (Tree, apply, node_, leaf_, collect_)
import Geomancy.DVec3 (DVec3)
import qualified Geomancy.DTransform as DTransform
type Transformed a = Tree (DTransform, Maybe a)
{-# INLINE translate_ #-}
translate_
:: Double
-> Double
-> Double
-> [Transformed a]
-> Transformed a
translate_ x y z =
node_ (DTransform.translate x y z)
{-# INLINE translateV_ #-}
translateV_
:: DVec3
-> [Transformed a]
-> Transformed a
translateV_ xyz =
node_ (DTransform.translateV xyz)
{-# INLINE rotateX_ #-}
rotateX_
:: Double
-> [Transformed a]
-> Transformed a
rotateX_ rads =
node_ (DTransform.rotateX rads)
{-# INLINE rotateY_ #-}
rotateY_
:: Double
-> [Transformed a]
-> Transformed a
rotateY_ rads =
node_ (DTransform.rotateY rads)
{-# INLINE rotateZ_ #-}
rotateZ_
:: Double
-> [Transformed a]
-> Transformed a
rotateZ_ rads =
node_ (DTransform.rotateZ rads)
{-# INLINE rotateQ_ #-}
rotateQ_
:: DQuaternion
-> [Transformed a]
-> Transformed a
rotateQ_ rot =
node_ (DTransform.rotateQ rot)
{-# INLINE scale_ #-}
scale_
:: Double
-> [Transformed a]
-> Transformed a
scale_ x =
node_ (DTransform.scale x)
{-# INLINE scaleX_ #-}
scaleX_
:: Double
-> [Transformed a]
-> Transformed a
scaleX_ rads =
node_ (DTransform.scaleX rads)
{-# INLINE scaleY_ #-}
scaleY_
:: Double
-> [Transformed a]
-> Transformed a
scaleY_ rads =
node_ (DTransform.scaleY rads)
{-# INLINE scaleZ_ #-}
scaleZ_
:: Double
-> [Transformed a]
-> Transformed a
scaleZ_ rads =
node_ (DTransform.scaleZ rads)
{-# INLINE scaleXY_ #-}
scaleXY_
:: Double
-> Double
-> [Transformed a]
-> Transformed a
scaleXY_ x y =
node_ (DTransform.scaleXY x y)
{-# INLINE scale3_ #-}
scale3_
:: Double
-> Double
-> Double
-> [Transformed a]
-> Transformed a
scale3_ x y z =
node_ (DTransform.scale3 x y z)