From 4df03e59f5abfdf9dfb3853cf5bcef9290e35b8a Mon Sep 17 00:00:00 2001 From: justin Date: Fri, 29 Oct 2021 18:44:54 +0100 Subject: [PATCH] Make more point-free --- src/Shape.hs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Shape.hs b/src/Shape.hs index edb2b6e13..2d68d8051 100644 --- a/src/Shape.hs +++ b/src/Shape.hs @@ -90,15 +90,15 @@ colorSH = overCol . const overCol :: (Point4 -> Point4) -> Shape -> Shape {-# INLINE overCol #-} -overCol f = fmap $ overColObj f +overCol = fmap . overColObj -overPos :: (Point3 -> Point3) -> Shape -> Shape -{-# INLINE overPos #-} -overPos f = fmap $ overPosObj f +overPosSHI :: (Point3 -> Point3) -> Shape -> Shape +{-# INLINE overPosSHI #-} +overPosSHI = fmap . overPosObj translateSH :: Point3 -> Shape -> Shape {-# INLINE translateSH #-} -translateSH !p = overPos (+.+.+ p) +translateSH !p = overPosSHI (+.+.+ p) translateSHf :: Float -> Float -> Shape -> Shape {-# INLINE translateSHf #-} @@ -110,19 +110,19 @@ translateSHz !z = translateSH (V3 0 0 z) rotateSH :: Float -> Shape -> Shape {-# INLINE rotateSH #-} -rotateSH a = overPos (rotate3 a) +rotateSH = overPosSHI . rotate3 overPosSH :: (Point3 -> Point3) -> Shape -> Shape {-# INLINEABLE overPosSH #-} -overPosSH = overPos +overPosSH = overPosSHI rotateSHx :: Float -> Shape -> Shape {-# INLINE rotateSHx #-} -rotateSHx a = overPos (rotate3x a) +rotateSHx a = overPosSHI (rotate3x a) scaleSH :: Point3 -> Shape -> Shape {-# INLINE scaleSH #-} -scaleSH (V3 a b c) = overPos (\(V3 x y z) -> V3 (x*a) (y*b) (z*c)) +scaleSH (V3 a b c) = overPosSHI (\(V3 x y z) -> V3 (x*a) (y*b) (z*c)) overColObj :: (Point4 -> Point4) -> ShapeObj -> ShapeObj {-# INLINE overColObj #-}