X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FValues.hs;h=2efd80b6f8b167e58dde3efe1250cf48f9df79db;hb=c954154b379c5bd444d527298c33142fb150711b;hp=a33bbba56d3eef9da970d845de285af4c39ac39d;hpb=2a90a63d5fbc8fb57a97e97054e139f5284bf7b0;p=spline3.git diff --git a/src/Values.hs b/src/Values.hs index a33bbba..2efd80b 100644 --- a/src/Values.hs +++ b/src/Values.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeSynonymInstances #-} +{-# LANGUAGE FlexibleInstances #-} module Values where @@ -23,6 +23,9 @@ import System.FilePath () import Test.QuickCheck (Arbitrary(..), Gen) +import ScaleFactor + + type Values1D = Array DIM1 Double type Values2D = Array DIM2 Double type Values3D = Array DIM3 Double @@ -48,7 +51,7 @@ instance Arbitrary Values1D where read_values_1d :: FilePath -> IO Values1D -read_values_1d path = readVectorFromTextFile path +read_values_1d = readVectorFromTextFile read_values_3d :: DIM3 -> FilePath -> IO Values3D @@ -80,3 +83,13 @@ idx v3d i j k = where shape :: DIM3 shape = (Z :. i :. j :. k) + + +zoom_shape :: ScaleFactor -> DIM3 -> DIM3 +zoom_shape (sfx, sfy, sfz) sh = + let (Z :. x :. y :. z) = sh + x' = x * sfx + y' = y * sfy + z' = z * sfz + in + (Z :. x' :. y' :. z')