--- | 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)
-
- -- | 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
+-- | Returns the center of the given face. Since a face is just
+-- square, we can average the four vertices to find its center. This
+-- is useful because the center of a face is always a vertex of a
+-- tetrahedron.
+center :: Face -> Point
+center (Face v0' v1' v2' v3') =
+ (v0' + v1' + v2' + v3') `scale` (1/4)