module Main where import Data.Array.Repa ( DIM3, Z(..), (:.)(..), ) import System.Environment (getArgs) import Cube (tetrahedron) import Grid (cube_at, make_grid, zoom) import PolynomialArray (make_polynomial_array) import Tetrahedron (polynomial) import Values (read_values_3d, write_values_1d) mri_shape :: DIM3 mri_shape = (Z :. 256 :. 256 :. 1) main :: IO () main = do args <- getArgs let color = head args let in_file = "./data/MRbrain.40." ++ color let out_file = "MRbrain.40." ++ color ++ ".out" mridata <- read_values_3d mri_shape in_file let g = make_grid 1 mridata let polynomials = make_polynomial_array (255,255,0,23) [ ((i,j,k,tet), polynomial t) | i <- [0..255], j <- [0..255], k <- [0], tet <- [0..23], let c = cube_at g i j k, let t = tetrahedron c tet ] let output = zoom g polynomials (8,8,1) write_values_1d output out_file