--
-- Example from before the fix:
--
--- > b0 (tetrahedron12 c) p
--- -2.168404344971019e-18
-- > b0 (tetrahedron15 c) p
-- -3.4694469519536365e-18
--
test_tetrahedra_collision_sensitivity :: Assertion
test_tetrahedra_collision_sensitivity =
- assertTrue "tetrahedron collision tests aren't too sensitive" $
- contains_point t12 p &&
+ assertTrue "tetrahedron collision tests isn't too sensitive" $
contains_point t15 p
where
- g = make_grid 1 trilinear
+ g = make_grid 1 naturals_1d
c = cube_at g 0 17 1
p = (0, 16.75, 0.5) :: Point
- t12 = tetrahedron12 c
t15 = tetrahedron15 c
import Test.QuickCheck (Arbitrary(..), Gen)
import Cardinal
+import Comparisons (nearly_ge)
import FunctionValues
import Misc (factorial)
import Point
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)