X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FTetrahedron.hs;h=6c13f4bbb429f2a185cdd1eaae3a541f1b147cb8;hb=c954154b379c5bd444d527298c33142fb150711b;hp=eefbe118274993c166001733e42fc196187d90d7;hpb=ecb77f944fcba8c8cfe60ca782bc5d9c8ab68cf9;p=spline3.git diff --git a/src/Tetrahedron.hs b/src/Tetrahedron.hs index eefbe11..6c13f4b 100644 --- a/src/Tetrahedron.hs +++ b/src/Tetrahedron.hs @@ -6,6 +6,7 @@ import Prelude hiding (LT) import Test.QuickCheck (Arbitrary(..), Gen) import Cardinal +import Comparisons (nearly_ge) import FunctionValues import Misc (factorial) import Point @@ -42,7 +43,10 @@ instance Show Tetrahedron where instance ThreeDimensional Tetrahedron where center t = ((v0 t) + (v1 t) + (v2 t) + (v3 t)) `scale` (1/4) contains_point t p = - (b0 t p) >= 0 && (b1 t p) >= 0 && (b2 t p) >= 0 && (b3 t p) >= 0 + (b0 t p) `nearly_ge` 0 && + (b1 t p) `nearly_ge` 0 && + (b2 t p) `nearly_ge` 0 && + (b3 t p) `nearly_ge` 0 polynomial :: Tetrahedron -> (RealFunction Point) @@ -223,18 +227,10 @@ vol_matrix t = (4><4) y1, y2, y3, y4, z1, z2, z3, z4 ] where - x1 = x_coord (v0 t) - x2 = x_coord (v1 t) - x3 = x_coord (v2 t) - x4 = x_coord (v3 t) - y1 = y_coord (v0 t) - y2 = y_coord (v1 t) - y3 = y_coord (v2 t) - y4 = y_coord (v3 t) - z1 = z_coord (v0 t) - z2 = z_coord (v1 t) - z3 = z_coord (v2 t) - z4 = z_coord (v3 t) + (x1, y1, z1) = v0 t + (x2, y2, z2) = v1 t + (x3, y3, z3) = v2 t + (x4, y4, z4) = v3 t -- | Computed using the formula from Lai & Schumaker, Definition 15.4, -- page 436.