| Copyright | (c) 2011 diagrams-core team (see LICENSE) |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | diagrams-discuss@googlegroups.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Diagrams.Core.Points
Contents
Description
A type for points (as distinct from vectors).
- newtype Point v :: * -> * = P v
- origin :: AdditiveGroup v => Point v
- (*.) :: VectorSpace v => Scalar v -> Point v -> Point v
Points
newtype Point v :: * -> *
Point is a newtype wrapper around vectors used to represent
points, so we don't get them mixed up. The distinction between
vectors and points is important: translations affect points, but
leave vectors unchanged. Points are instances of the
AffineSpace class from Data.AffineSpace.
Constructors
| P v |
Instances
| Functor Point | |
| Eq v => Eq (Point v) | |
| Data v => Data (Point v) | |
| Ord v => Ord (Point v) | |
| Read v => Read (Point v) | |
| Show v => Show (Point v) | |
| AdditiveGroup v => AffineSpace (Point v) | |
| VectorSpace v => HasOrigin (Point v) | |
| HasLinearMap v => Transformable (Point v) | |
| (Ord (Scalar v), VectorSpace v) => Traced (Point v) | The trace of a single point is the empty trace, i.e. the one which returns no intersection points for every query. Arguably it should return a single finite distance for vectors aimed directly at the given point, but due to floating-point inaccuracy this is problematic. Note that the envelope for a single point is not the empty envelope (see Diagrams.Core.Envelope). |
| (OrderedField (Scalar v), InnerSpace v) => Enveloped (Point v) | |
| Typeable (* -> *) Point | |
| type Diff (Point v) = v | |
| type V (Point v) = v |
origin :: AdditiveGroup v => Point v
The origin of the vector space v.
(*.) :: VectorSpace v => Scalar v -> Point v -> Point v
Scale a point by a scalar.