Copyright | (C) 2012-2014 Edward Kmett, |
---|---|

License | BSD-style (see the file LICENSE) |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Stability | experimental |

Portability | non-portable |

Safe Haskell | Safe-Inferred |

Language | Haskell98 |

Utility for working with Plücker coordinates for lines in 3d homogeneous space.

# Documentation

When lines are represented as Plücker coordinates, we have the
ability to check for both directed and undirected
equality. Undirected equality between `Line`

s (or a `Line`

and a
`Ray`

) checks that the two lines coincide in 3D space. Directed
equality, between two `Ray`

s, checks that two lines coincide in 3D,
and have the same direction. To accomodate these two notions of
equality, we use an `Eq`

instance on the `Coincides`

data type.

For example, to check the *directed* equality between two lines,
`p1`

and `p2`

, we write, `Ray p1 == Ray p2`

.