geom2d-0.1.2.0: Geom2d/Distance.hs
{-# LANGUAGE MultiParamTypeClasses #-}
-- | This module provides a type class to modell distance between
-- geometric objects.
module Geom2d.Distance where
import Geom2d.Point.Internal
-- | The Distance between objects that have no volume, like points,
-- should satisfy the triangle inequality.
class Distance p q where
distance :: (Ord a, Floating a) => p a -> q a -> a
instance Distance Point' Point' where
distance (Point' (a1,a2)) (Point' (b1,b2)) =
sqrt $ (a1 - b1)^(2::Int) + (a2 - b2)^(2::Int)