X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTetrahedron.hs;h=9f68364042e7563a3b10d23f01e72f2845ba74af;hb=4d695b8d0b05a02d562bdee3d2a1b98ce6a5e747;hp=87332b94440afdb999b173c13f681095d48ac796;hpb=f3d720f107f74b07a5f9f96e6a7c9c7a9022aeb0;p=spline3.git diff --git a/src/Tetrahedron.hs b/src/Tetrahedron.hs index 87332b9..9f68364 100644 --- a/src/Tetrahedron.hs +++ b/src/Tetrahedron.hs @@ -8,7 +8,7 @@ import qualified Data.Vector as V ( ) import Numeric.LinearAlgebra hiding (i, scale) import Prelude hiding (LT) -import Test.QuickCheck (Arbitrary(..), Gen, choose) +import Test.QuickCheck (Arbitrary(..), Gen) import Cardinal import Comparisons (nearly_ge) @@ -24,12 +24,7 @@ data Tetrahedron = v1 :: Point, v2 :: Point, v3 :: Point, - precomputed_volume :: Double, - - -- | Between 0 and 23; used to quickly determine which - -- tetrahedron I am in the parent 'Cube' without - -- having to compare them all. - number :: Int + precomputed_volume :: Double } deriving (Eq) @@ -41,18 +36,16 @@ instance Arbitrary Tetrahedron where rnd_v2 <- arbitrary :: Gen Point rnd_v3 <- arbitrary :: Gen Point rnd_fv <- arbitrary :: Gen FunctionValues - rnd_no <- choose (0,23) -- We can't assign an incorrect precomputed volume, -- so we have to calculate the correct one here. - let t' = Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3 0 rnd_no + let t' = Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3 0 let vol = volume t' - return (Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3 vol rnd_no) + return (Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3 vol) instance Show Tetrahedron where show t = "Tetrahedron:\n" ++ - " no: " ++ (show (number t)) ++ "\n" ++ " fv: " ++ (show (fv t)) ++ "\n" ++ " v0: " ++ (show (v0 t)) ++ "\n" ++ " v1: " ++ (show (v1 t)) ++ "\n" ++ @@ -61,7 +54,7 @@ instance Show Tetrahedron where instance ThreeDimensional Tetrahedron where - center (Tetrahedron _ v0' v1' v2' v3' _ _) = + center (Tetrahedron _ v0' v1' v2' v3' _) = (v0' + v1' + v2' + v3') `scale` (1/4) contains_point t p =