fwgl-0.1.0.3: FRP 2D/3D game engine

Safe HaskellNone
LanguageHaskell2010

FWGL.Geometry

Synopsis

Documentation

data AttrList is where Source

Constructors

AttrListNil :: AttrList [] 
AttrListCons :: (Hashable c, AttributeCPU c g) => g -> [c] -> AttrList gs -> AttrList (g : gs) 

Instances

data Geometry is Source

A set of attributes and indices.

Constructors

Geometry (AttrList is) [Word16] Int 

Instances

type Geometry2 = `[Position2, UV]` Source

A 2D geometry.

type Geometry3 = `[Position3, UV, Normal3]` Source

A 3D geometry.

mkGeometry :: GLES => AttrList is -> [Word16] -> Geometry is Source

Create a custom Geometry.

mkGeometry2 Source

Arguments

:: GLES 
=> [V2]

List of vertices.

-> [V2]

List of UV coordinates.

-> [Word16]

Triangles expressed as triples of indices to the two lists above.

-> Geometry Geometry2 

Create a 2D Geometry. The first two lists should have the same length.

mkGeometry3 Source

Arguments

:: GLES 
=> [V3]

List of vertices.

-> [V2]

List of UV coordinates.

-> [V3]

List of normals.

-> [Word16]

Triangles expressed as triples of indices to the three lists above.

-> Geometry Geometry3 

Create a 3D Geometry. The first three lists should have the same length.

facesToArrays :: Vector V3 -> Vector V2 -> Vector V3 -> [[(Int, Int, Int)]] -> [(V3, V2, V3)] Source

arraysToElements :: Foldable f => f (V3, V2, V3) -> ([V3], [V2], [V3], [Word16]) Source

triangulate :: [a] -> [(a, a, a)] Source