Stability | experimental |
---|---|
Maintainer | conal@conal.net |
Data.Cross
Description
Cross products and normals
Documentation
class HasNormal v where
Thing with a normal vector (not necessarily normalized).
Methods
normalVec :: v -> v
Instances
(Num s, VectorSpace s, HasBasis s, HasTrie (Basis s), HasNormal (:> (Two s) (Three s))) => HasNormal (Three (:> (Two s) s)) | |
(Basis s ~ (), Num s, VectorSpace s, HasBasis s, HasTrie (Basis s)) => HasNormal (Two (:> (One s) s)) | |
(Basis s ~ (), Num s, HasTrie (Basis (s, s)), HasBasis s) => HasNormal (:> (Two s) (Three s)) | |
(Basis s ~ (), HasBasis s, HasTrie (Basis s)) => HasNormal (:> (One s) (Two s)) |
normal :: (HasNormal v, InnerSpace v, Floating (Scalar v)) => v -> v
Normalized normal vector. See also cross
.
type One s = s
Singleton
type Two s = (s, s)
Homogeneous pair
type Three s = (s, s, s)
Homogeneous triple