+-- | The Face module just contains the definition of the 'Face' data
+-- type and its two typeclass instances.
module Face
where
" v2: " ++ (show (v2 f)) ++ "\n" ++
" v3: " ++ (show (v3 f)) ++ "\n"
+-- | The 'Face' type is an instance of 'ThreeDimensional' so that we
+-- can call the 'center' function on it. This is useful because the
+-- center of a face is always a vertex of a tetrahedron.
instance ThreeDimensional Face where
+ -- | Since a face is square, we can just average the four vertices
+ -- to find the center.
center f = ((v0 f) + (v1 f) + (v2 f) + (v3 f)) `scale` (1/4)
- -- Too lazy to implement this right now.
+
+ -- | It's possible to implement this, but it hasn't been done
+ -- yet. A face will contain a point if the point lies in the same
+ -- plane as the vertices of the face, and if it falls on the
+ -- correct side of the four sides of the face.
contains_point _ _ = False