module Geometry.Hit ( Hit(..) ) where import RIO import Geomancy (Vec3) data Hit = Hit { Hit -> Float distance :: Float , Hit -> Float cosine :: Float , Hit -> Vec3 position :: Vec3 } deriving (Hit -> Hit -> Bool (Hit -> Hit -> Bool) -> (Hit -> Hit -> Bool) -> Eq Hit forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Hit -> Hit -> Bool $c/= :: Hit -> Hit -> Bool == :: Hit -> Hit -> Bool $c== :: Hit -> Hit -> Bool Eq, Eq Hit Eq Hit -> (Hit -> Hit -> Ordering) -> (Hit -> Hit -> Bool) -> (Hit -> Hit -> Bool) -> (Hit -> Hit -> Bool) -> (Hit -> Hit -> Bool) -> (Hit -> Hit -> Hit) -> (Hit -> Hit -> Hit) -> Ord Hit Hit -> Hit -> Bool Hit -> Hit -> Ordering Hit -> Hit -> Hit forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: Hit -> Hit -> Hit $cmin :: Hit -> Hit -> Hit max :: Hit -> Hit -> Hit $cmax :: Hit -> Hit -> Hit >= :: Hit -> Hit -> Bool $c>= :: Hit -> Hit -> Bool > :: Hit -> Hit -> Bool $c> :: Hit -> Hit -> Bool <= :: Hit -> Hit -> Bool $c<= :: Hit -> Hit -> Bool < :: Hit -> Hit -> Bool $c< :: Hit -> Hit -> Bool compare :: Hit -> Hit -> Ordering $ccompare :: Hit -> Hit -> Ordering Ord, Int -> Hit -> ShowS [Hit] -> ShowS Hit -> String (Int -> Hit -> ShowS) -> (Hit -> String) -> ([Hit] -> ShowS) -> Show Hit forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Hit] -> ShowS $cshowList :: [Hit] -> ShowS show :: Hit -> String $cshow :: Hit -> String showsPrec :: Int -> Hit -> ShowS $cshowsPrec :: Int -> Hit -> ShowS Show)