X-Git-Url: https://gitweb.michael.orlitzky.com/?p=spline3.git;a=blobdiff_plain;f=src%2FCube.hs;h=8596b11846838b91f0b4db3667d130ac4152b7ed;hp=c793c1b7159000850b1365b8856f088f5f89e7e0;hb=83ef0aaeae074756e4ee90d72d3e27e74e136061;hpb=a499efdb0e215ac424fe7c38a52430daebefc22b diff --git a/src/Cube.hs b/src/Cube.hs index c793c1b..8596b11 100644 --- a/src/Cube.hs +++ b/src/Cube.hs @@ -18,13 +18,14 @@ import qualified Data.Vector as V ( import Prelude hiding ( LT ) import Test.Tasty ( TestTree, testGroup ) import Test.Tasty.QuickCheck ( - Arbitrary(..), + Arbitrary( arbitrary ), Gen, - Positive(..), + Positive( Positive ), choose, testProperty ) import Cardinal ( - Cardinal(..), + Cardinal(F, B, L, R, D, T, FL, FR, FD, FT, + BL, BR, BD, BT, LD, LT, RD, RT, I), ccwx, ccwy, ccwz, @@ -35,8 +36,12 @@ import Comparisons ( (~=), (~~=) ) import qualified Face ( Face(..), center ) import FunctionValues ( FunctionValues, eval, rotate ) import Misc ( all_equal, disjoint ) -import Point ( Point(..), dot ) -import Tetrahedron ( Tetrahedron(..), barycenter, c, volume ) +import Point ( Point( Point ), dot ) +import Tetrahedron ( + Tetrahedron(Tetrahedron, function_values, v0, v1, v2, v3), + barycenter, + c, + volume ) data Cube = Cube { i :: !Int, j :: !Int, @@ -59,7 +64,7 @@ instance Arbitrary Cube where -- these numbers don't overflow 64 bits. This number is not -- magic in any other sense than that it does not cause test -- failures, while 2^23 does. - coordmax = 4194304 -- 2^22 + coordmax = 4194304 :: Int -- 2^22 coordmin = -coordmax @@ -138,7 +143,7 @@ center cube = top_face :: Cube -> Face.Face top_face cube = Face.Face v0' v1' v2' v3' where - delta = 1/2 + delta = (1/2) :: Double cc = center cube v0' = cc + ( Point delta (-delta) delta ) v1' = cc + ( Point delta delta delta ) @@ -151,7 +156,7 @@ top_face cube = Face.Face v0' v1' v2' v3' back_face :: Cube -> Face.Face back_face cube = Face.Face v0' v1' v2' v3' where - delta = 1/2 + delta = (1/2) :: Double cc = center cube v0' = cc + ( Point delta (-delta) (-delta) ) v1' = cc + ( Point delta delta (-delta) ) @@ -163,7 +168,7 @@ back_face cube = Face.Face v0' v1' v2' v3' down_face :: Cube -> Face.Face down_face cube = Face.Face v0' v1' v2' v3' where - delta = 1/2 + delta = (1/2) :: Double cc = center cube v0' = cc + ( Point (-delta) (-delta) (-delta) ) v1' = cc + ( Point (-delta) delta (-delta) ) @@ -176,7 +181,7 @@ down_face cube = Face.Face v0' v1' v2' v3' front_face :: Cube -> Face.Face front_face cube = Face.Face v0' v1' v2' v3' where - delta = 1/2 + delta = (1/2) :: Double cc = center cube v0' = cc + ( Point (-delta) (-delta) delta ) v1' = cc + ( Point (-delta) delta delta ) @@ -187,7 +192,7 @@ front_face cube = Face.Face v0' v1' v2' v3' left_face :: Cube -> Face.Face left_face cube = Face.Face v0' v1' v2' v3' where - delta = 1/2 + delta = (1/2) :: Double cc = center cube v0' = cc + ( Point delta (-delta) delta ) v1' = cc + ( Point (-delta) (-delta) delta ) @@ -199,7 +204,7 @@ left_face cube = Face.Face v0' v1' v2' v3' right_face :: Cube -> Face.Face right_face cube = Face.Face v0' v1' v2' v3' where - delta = 1/2 + delta = (1/2) :: Double cc = center cube v0' = cc + ( Point (-delta) delta delta) v1' = cc + ( Point delta delta delta )