Safe Haskell | None |
---|---|
Language | Haskell2010 |
- class (ConstructFrom' tuple hprim, Show tuple, Vec hprim) => ConstructFrom tuple hprim where
- exprFormFromTuple :: tuple -> hprim -> Expr
- type family ConstructFrom' tuple hprim :: Constraint
- class (Expressible v, Show v) => Vec v where
- class (Expressible a, Show a) => HasX a
- class HasX a => HasY a
- class HasY a => HasZ a
- class HasZ a => HasW a
- data Vec1 where
- Vec1 :: Float -> Vec1
- V1u :: String -> Vec1
- V1uop :: String -> Vec1 -> Vec1
- V1uoppre :: String -> Vec1 -> Vec1
- V1bop :: String -> Vec1 -> Vec1 -> Vec1
- V1boppre :: String -> Vec1 -> Vec1 -> Vec1
- V1select :: Booly -> Vec1 -> Vec1 -> Vec1
- Dot :: Vec a => a -> a -> Vec1
- X :: HasX a => a -> Vec1
- Y :: HasY a => a -> Vec1
- Z :: HasZ a => a -> Vec1
- W :: HasW a => a -> Vec1
- data Vec2 where
- data Vec3 where
- data Vec4 where
- Vec4 :: ConstructFrom tuple Vec4 => tuple -> Vec4
- V4u :: String -> Vec4
- V4uop :: String -> Vec4 -> Vec4
- V4uoppre :: String -> Vec4 -> Vec4
- V4bop :: String -> Vec4 -> Vec4 -> Vec4
- V4boppre :: String -> Vec4 -> Vec4 -> Vec4
- V4bops :: String -> Vec1 -> Vec4 -> Vec4
- V4select :: Booly -> Vec4 -> Vec4 -> Vec4
- Texture2D :: Texture -> Vec2 -> Vec4
- data Texture where
- data Booly where
- data GLSLType
- class Show a => Expressible a where
- data ExprForm
- data Tree a = Tree {
- getElem :: a
- getChildren :: [Tree a]
- type Expr = Tree (ExprForm, GLSLType, String)
Documentation
class (ConstructFrom' tuple hprim, Show tuple, Vec hprim) => ConstructFrom tuple hprim where Source
exprFormFromTuple :: tuple -> hprim -> Expr Source
ConstructFrom Float Vec1 Source | |
(~) * a Vec2 => ConstructFrom (a, Vec2) Vec4 Source | |
(~) * a Vec1 => ConstructFrom (a, Vec3) Vec4 Source | |
ConstructFrom (Vec3, Vec1) Vec4 Source | |
ConstructFrom (Vec2, Vec1) Vec3 Source | |
ConstructFrom (Vec1, Vec2) Vec3 Source | |
ConstructFrom (Vec1, Vec1) Vec2 Source | |
((~) * a Vec1, (~) * b Vec1) => ConstructFrom (a, b, Vec2) Vec4 Source | |
ConstructFrom (Vec2, Vec1, Vec1) Vec4 Source | |
ConstructFrom (Vec1, Vec2, Vec1) Vec4 Source | |
ConstructFrom (Vec1, Vec1, Vec1) Vec3 Source | |
ConstructFrom (Vec1, Vec1, Vec1, Vec1) Vec4 Source |
type family ConstructFrom' tuple hprim :: Constraint Source
ConstructFrom' a Vec1 = a ~ Float | |
ConstructFrom' (a, b) Vec2 = (a ~ Vec1, b ~ Vec1) | |
ConstructFrom' (a, b, c) Vec3 = (a ~ Vec1, b ~ Vec1, c ~ Vec1) | |
ConstructFrom' (Vec2, b) Vec3 = b ~ Vec1 | |
ConstructFrom' (a, Vec2) Vec3 = a ~ Vec1 | |
ConstructFrom' (a, b, c, d) Vec4 = (a ~ Vec1, b ~ Vec1, c ~ Vec1, d ~ Vec1) | |
ConstructFrom' (Vec3, b) Vec4 = b ~ Vec1 | |
ConstructFrom' (Vec2, b) Vec4 = b ~ Vec2 | |
ConstructFrom' (a, Vec3) Vec4 = a ~ Vec1 | |
ConstructFrom' (Vec2, b, c) Vec4 = (b ~ Vec1, c ~ Vec1) | |
ConstructFrom' (a, Vec2, c) Vec4 = (a ~ Vec1, c ~ Vec1) | |
ConstructFrom' (a, b, Vec2) Vec4 = (a ~ Vec1, b ~ Vec1) |
class (Expressible v, Show v) => Vec v where Source
Vec1 :: Float -> Vec1 | |
V1u :: String -> Vec1 | |
V1uop :: String -> Vec1 -> Vec1 | |
V1uoppre :: String -> Vec1 -> Vec1 | |
V1bop :: String -> Vec1 -> Vec1 -> Vec1 | |
V1boppre :: String -> Vec1 -> Vec1 -> Vec1 | |
V1select :: Booly -> Vec1 -> Vec1 -> Vec1 | |
Dot :: Vec a => a -> a -> Vec1 | |
X :: HasX a => a -> Vec1 | |
Y :: HasY a => a -> Vec1 | |
Z :: HasZ a => a -> Vec1 | |
W :: HasW a => a -> Vec1 |
Vec2:
Vec2 :: ConstructFrom tuple Vec2 => tuple -> Vec2 | |
V2u :: String -> Vec2 | |
V2uop :: String -> Vec2 -> Vec2 | |
V2uoppre :: String -> Vec2 -> Vec2 | |
V2bop :: String -> Vec2 -> Vec2 -> Vec2 | |
V2boppre :: String -> Vec2 -> Vec2 -> Vec2 | |
V2bops :: String -> Vec1 -> Vec2 -> Vec2 | |
V2select :: Booly -> Vec2 -> Vec2 -> Vec2 |
Floating Vec2 Source | |
Fractional Vec2 Source | |
Num Vec2 Source | |
Show Vec2 Source | |
VectorSpace Vec2 Source | |
InnerSpace Vec2 Source | |
AdditiveGroup Vec2 Source | |
Expressible Vec2 Source | |
HasY Vec2 Source | |
HasX Vec2 Source | |
Vec Vec2 Source | |
(~) * a Vec2 => ConstructFrom (a, Vec2) Vec4 Source | |
ConstructFrom (Vec2, Vec1) Vec3 Source | |
ConstructFrom (Vec1, Vec2) Vec3 Source | |
ConstructFrom (Vec1, Vec1) Vec2 Source | |
((~) * a Vec1, (~) * b Vec1) => ConstructFrom (a, b, Vec2) Vec4 Source | |
ConstructFrom (Vec2, Vec1, Vec1) Vec4 Source | |
ConstructFrom (Vec1, Vec2, Vec1) Vec4 Source | |
type Scalar Vec2 = Vec1 Source |
Vec3:
Vec3 :: ConstructFrom tuple Vec3 => tuple -> Vec3 | |
V3u :: String -> Vec3 | |
V3uop :: String -> Vec3 -> Vec3 | |
V3uoppre :: String -> Vec3 -> Vec3 | |
V3bop :: String -> Vec3 -> Vec3 -> Vec3 | |
V3boppre :: String -> Vec3 -> Vec3 -> Vec3 | |
V3bops :: String -> Vec1 -> Vec3 -> Vec3 | |
V3select :: Booly -> Vec3 -> Vec3 -> Vec3 |
Floating Vec3 Source | |
Fractional Vec3 Source | |
Num Vec3 Source | |
Show Vec3 Source | |
VectorSpace Vec3 Source | |
InnerSpace Vec3 Source | |
AdditiveGroup Vec3 Source | |
Expressible Vec3 Source | |
HasZ Vec3 Source | |
HasY Vec3 Source | |
HasX Vec3 Source | |
Vec Vec3 Source | |
(~) * a Vec1 => ConstructFrom (a, Vec3) Vec4 Source | |
ConstructFrom (Vec3, Vec1) Vec4 Source | |
ConstructFrom (Vec2, Vec1) Vec3 Source | |
ConstructFrom (Vec1, Vec2) Vec3 Source | |
ConstructFrom (Vec1, Vec1, Vec1) Vec3 Source | |
type Scalar Vec3 = Vec1 Source |
Vec4:
Vec4 :: ConstructFrom tuple Vec4 => tuple -> Vec4 | |
V4u :: String -> Vec4 | |
V4uop :: String -> Vec4 -> Vec4 | |
V4uoppre :: String -> Vec4 -> Vec4 | |
V4bop :: String -> Vec4 -> Vec4 -> Vec4 | |
V4boppre :: String -> Vec4 -> Vec4 -> Vec4 | |
V4bops :: String -> Vec1 -> Vec4 -> Vec4 | |
V4select :: Booly -> Vec4 -> Vec4 -> Vec4 | |
Texture2D :: Texture -> Vec2 -> Vec4 |
Floating Vec4 Source | |
Fractional Vec4 Source | |
Num Vec4 Source | |
Show Vec4 Source | |
VectorSpace Vec4 Source | |
InnerSpace Vec4 Source | |
AdditiveGroup Vec4 Source | |
Expressible Vec4 Source | |
HasW Vec4 Source | |
HasZ Vec4 Source | |
HasY Vec4 Source | |
HasX Vec4 Source | |
Vec Vec4 Source | |
(~) * a Vec2 => ConstructFrom (a, Vec2) Vec4 Source | |
(~) * a Vec1 => ConstructFrom (a, Vec3) Vec4 Source | |
ConstructFrom (Vec3, Vec1) Vec4 Source | |
((~) * a Vec1, (~) * b Vec1) => ConstructFrom (a, b, Vec2) Vec4 Source | |
ConstructFrom (Vec2, Vec1, Vec1) Vec4 Source | |
ConstructFrom (Vec1, Vec2, Vec1) Vec4 Source | |
ConstructFrom (Vec1, Vec1, Vec1, Vec1) Vec4 Source | |
type Scalar Vec4 = Vec1 Source |
We implement Bool as a Num
class Show a => Expressible a where Source