module Graphics.Rendering.Ombra.Shapes where
import Graphics.Rendering.Ombra.Geometry
import Graphics.Rendering.Ombra.Internal.GL (GLES)
import Graphics.Rendering.Ombra.Vector
rectGeometry :: GLES => Geometry Geometry2D
rectGeometry = buildGeometry $ do lb <- vertex2D (Vec2 (0.5) (0.5)) (Vec2 0 0)
rb <- vertex2D (Vec2 0.5 (0.5)) (Vec2 1 0)
rt <- vertex2D (Vec2 0.5 0.5 ) (Vec2 1 1)
lt <- vertex2D (Vec2 (0.5) 0.5 ) (Vec2 0 1)
triangle lb rb rt
triangle lb lt rt
cubeGeometry :: GLES => Geometry Geometry3D
cubeGeometry = buildGeometry $
do v0 <- vertex3D (Vec3 1 1 (1)) (Vec2 1 0) (Vec3 0 0 (1))
v1 <- vertex3D (Vec3 1 (1) (1)) (Vec2 1 1) (Vec3 0 0 (1))
v2 <- vertex3D (Vec3 (1) 1 (1)) (Vec2 0 0) (Vec3 0 0 (1))
v3 <- vertex3D (Vec3 (1) (1) 1) (Vec2 0 1) (Vec3 (1) 0 0)
v4 <- vertex3D (Vec3 (1) 1 1) (Vec2 0 0) (Vec3 (1) 0 0)
v5 <- vertex3D (Vec3 (1) (1) (1)) (Vec2 1 1) (Vec3 (1) 0 0)
v6 <- vertex3D (Vec3 (1) (1) 1) (Vec2 0 0) (Vec3 0 0 1)
v7 <- vertex3D (Vec3 1 (1) 1) (Vec2 1 0) (Vec3 0 0 1)
v8 <- vertex3D (Vec3 (1) 1 1) (Vec2 0 1) (Vec3 0 0 1)
v9 <- vertex3D (Vec3 1 (1) 1) (Vec2 0 0) (Vec3 1 0 0)
v10 <- vertex3D (Vec3 1 (1) (1)) (Vec2 1 0) (Vec3 1 0 0)
v11 <- vertex3D (Vec3 1 1 1) (Vec2 0 1) (Vec3 1 0 0)
v12 <- vertex3D (Vec3 1 1 (1)) (Vec2 1 1) (Vec3 0 1 0)
v13 <- vertex3D (Vec3 (1) 1 (1)) (Vec2 0 1) (Vec3 0 1 0)
v14 <- vertex3D (Vec3 1 1 1) (Vec2 1 0) (Vec3 0 1 0)
v15 <- vertex3D (Vec3 1 (1) (1)) (Vec2 1 1) (Vec3 0 (1) 0)
v16 <- vertex3D (Vec3 1 (1) 1) (Vec2 0 1) (Vec3 0 (1) 0)
v17 <- vertex3D (Vec3 (1) (1) (1)) (Vec2 1 0) (Vec3 0 (1) 0)
v18 <- vertex3D (Vec3 (1) (1) (1)) (Vec2 0 1) (Vec3 0 0 (1))
v19 <- vertex3D (Vec3 (1) 1 (1)) (Vec2 1 0) (Vec3 (1) 0 0)
v20 <- vertex3D (Vec3 1 1 1) (Vec2 1 1) (Vec3 0 0 1)
v21 <- vertex3D (Vec3 1 1 (1)) (Vec2 1 1) (Vec3 1 0 0)
v22 <- vertex3D (Vec3 (1) 1 1) (Vec2 0 0) (Vec3 0 1 0)
v23 <- vertex3D (Vec3 (1) (1) 1) (Vec2 0 0) (Vec3 0 (1) 0)
triangle v0 v1 v2
triangle v3 v4 v5
triangle v6 v7 v8
triangle v9 v10 v11
triangle v12 v13 v14
triangle v15 v16 v17
triangle v1 v18 v2
triangle v4 v19 v5
triangle v7 v20 v8
triangle v10 v21 v11
triangle v13 v22 v14
triangle v16 v23 v17