qhull-0.1.0.1: src-exe/Delaunay/Main.hs
module Main
where
import Delaunay.Examples
import qualified Data.IntMap.Strict as IM
import Delaunay
import Delaunay.R
import System.IO
import Text.Show.Pretty
import Data.HashMap.Strict.InsOrd as H hiding (map)
tesseractVertices :: [[Double]]
tesseractVertices =
map (map (/2))
[ [-1,-1,-1,-1],
[-1,-1,-1, 1],
[-1,-1, 1,-1],
[-1,-1, 1, 1],
[-1, 1,-1,-1],
[-1, 1,-1, 1],
[-1, 1, 1,-1],
[-1, 1, 1, 1],
[ 1,-1,-1,-1],
[ 1,-1,-1, 1],
[ 1,-1, 1,-1],
[ 1,-1, 1, 1],
[ 1, 1,-1,-1],
[ 1, 1,-1, 1],
[ 1, 1, 1,-1],
[ 1, 1, 1, 1]
]
main :: IO ()
main = do
dtesseract <- delaunay tesseractVertices True False Nothing
let vertices = IM.elems $ _vertices dtesseract
let edges = Prelude.map fromPair $ H.keys $ _edges dtesseract
putStrLn "VERTICES:"
pPrint vertices
putStrLn "\nEDGES:"
pPrint edges
where
fromPair (Pair i j) = (i,j)
-- tess <- delaunay nonConvexPolyhedron False False Nothing
-- let code = delaunaySpheres tess
-- writeFile "rgl/delaunay_spheres_nonConvexPolyhedron.R" code
-- x <- [0,0,0] : randomOnSphere 100 3
-- tess <- delaunay x False False Nothing
-- let code = delaunay3rgl tess True False True True Nothing
-- writeFile "rgl/delaunay_sphere_interior.R" code
-- tess <- delaunay duoCylinder False False Nothing
-- let edges = H.elems $ _edges tess
-- let vertices = IM.elems $ _vertices tess
-- let edgesKeys = Prelude.map fromPair $ H.keys $ _edges tess
-- putStrLn "VERTICES:"
-- pPrint vertices
-- putStrLn "\nEDGES:"
-- pPrint edges
-- putStrLn "\nEDGES KEYS:"
-- pPrint edgesKeys
-- where
-- fromPair (Pair i j) = (i,j)