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