Copyright | (C) 2015 Dimitri Sabadie |
---|---|

License | BSD3 |

Maintainer | Dimitri Sabadie <dimitri.sabadie@gmail.com> |

Stability | experimental |

Portability | portable |

Safe Haskell | None |

Language | Haskell2010 |

# Vertex components

data V n a :: k -> * -> *

FunctorWithIndex Int (V k n) | |

FoldableWithIndex Int (V k n) | |

TraversableWithIndex Int (V k n) | |

(Dim k n, Unbox a) => Vector Vector (V k n a) | |

Dim k n => Dim * (V k n a) | |

(Dim k n, Unbox a) => MVector MVector (V k n a) | |

(KnownNat n, Storable a, VertexAttribute * a) => Vertex * (V Nat n a) Source | |

Uniform [V Nat 2 Float] Source | |

Uniform [V Nat 2 Int32] Source | |

Uniform [V Nat 2 Word32] Source | |

Uniform [V Nat 3 Float] Source | |

Uniform [V Nat 3 Int32] Source | |

Uniform [V Nat 3 Word32] Source | |

Uniform [V Nat 4 Float] Source | |

Uniform [V Nat 4 Int32] Source | |

Uniform [V Nat 4 Word32] Source | |

Dim k n => Monad (V k n) | |

Functor (V k n) | |

Dim k n => MonadFix (V k n) | |

Dim k n => Applicative (V k n) | |

Foldable (V k n) | |

Traversable (V k n) | |

Generic1 (V k n) | |

Dim k n => Distributive (V k n) | |

Dim k n => Representable (V k n) | |

Dim k n => MonadZip (V k n) | |

Dim k n => Serial1 (V k n) | |

Dim k n => Metric (V k n) | |

Dim k n => Additive (V k n) | |

Apply (V k n) | |

Bind (V k n) | |

Dim k n => Eq1 (V k n) | |

Dim k n => Ord1 (V k n) | |

Dim k n => Read1 (V k n) | |

Dim k n => Show1 (V k n) | |

(Bounded a, Dim k n) => Bounded (V k n a) | |

Eq a => Eq (V k n a) | |

(Dim k n, Floating a) => Floating (V k n a) | |

(Dim k n, Fractional a) => Fractional (V k n a) | |

(Typeable (* -> *) (V k n), Typeable * (V k n a), Dim k n, Data a) => Data (V k n a) | |

(Dim k n, Num a) => Num (V k n a) | |

Ord a => Ord (V k n a) | |

Read a => Read (V k n a) | |

Show a => Show (V k n a) | |

Generic (V k n a) | |

(Dim k n, Storable a) => Storable (V k n a) | |

(Dim k n, Binary a) => Binary (V k n a) | |

(Dim k n, Serial a) => Serial (V k n a) | |

(Dim k n, Serialize a) => Serialize (V k n a) | |

NFData a => NFData (V k n a) | |

(Dim k n, Unbox a) => Unbox (V k n a) | |

Ixed (V k n a) | |

(Dim k n, Epsilon a) => Epsilon (V k n a) | |

Uniform (V Nat 2 Float) Source | |

Uniform (V Nat 2 Int32) Source | |

Uniform (V Nat 2 Word32) Source | |

Uniform (V Nat 3 Float) Source | |

Uniform (V Nat 3 Int32) Source | |

Uniform (V Nat 3 Word32) Source | |

Uniform (V Nat 4 Float) Source | |

Uniform (V Nat 4 Int32) Source | |

Uniform (V Nat 4 Word32) Source | |

Each (V k n a) (V k n b) a b | |

data MVector s (V k n a) = MV_VN !Int !(MVector s a) | |

type Rep1 (V k n) = D1 D1V (C1 C1_0V (S1 S1_0_0V (Rec1 Vector))) | |

type Rep (V k n) = Int | |

type Rep (V k n a) = D1 D1V (C1 C1_0V (S1 S1_0_0V (Rec0 (Vector a)))) | |

data Vector (V k n a) = V_VN !Int !(Vector a) | |

type Index (V k n a) = Int | |

type IxValue (V k n a) = a |

class VertexAttribute a Source

A vertex might have several attributes. The types of those attributes have to implement the
`VertexAttribute`

typeclass in order to be used as vertex attributes.

vertexGLType

# Vertex

A vertex has to implement `Vertex`

in order to be used as-is. That typeclass is closed, so you
you cannot add anymore instances. However, you shouldn’t need to since you can use the already
provided types to build up your vertex type.

setFormatV