module FWGL.Graphics.Shapes where import Data.Vect.Float import FWGL.Geometry import FWGL.Graphics.Types import FWGL.Internal.GL (GLES) rectGeometry :: GLES => Vec2 -> Geometry Geometry2D rectGeometry (Vec2 w h) = mkGeometry2D [ Vec2 (-hw) (-hh) , Vec2 hw (-hh) , Vec2 hw hh , Vec2 (-hw) hh ] [ Vec2 0 0 , Vec2 1 0 , Vec2 1 1 , Vec2 0 1 ] [ 0, 1, 2, 0, 3, 2 ] where (hw, hh) = (w / 2, h / 2) cubeGeometry :: GLES => Geometry Geometry3D cubeGeometry = mkGeometry3D [ Vec3 1.0 1.0 (-0.999999), Vec3 1.0 (-1.0) (-1.0), Vec3 (-1.0) 1.0 (-1.0), Vec3 (-1.0) (-1.0) 1.0, Vec3 (-1.0) 1.0 1.0, Vec3 (-1.0) (-1.0) (-1.0), Vec3 (-1.0) (-1.0) 1.0, Vec3 1.0 (-1.0) 1.0, Vec3 (-1.0) 1.0 1.0, Vec3 1.0 (-1.0) 1.0, Vec3 1.0 (-1.0) (-1.0), Vec3 0.999999 1.0 1.000001, Vec3 1.0 1.0 (-0.999999), Vec3 (-1.0) 1.0 (-1.0), Vec3 0.999999 1.0 1.000001, Vec3 1.0 (-1.0) (-1.0), Vec3 1.0 (-1.0) 1.0, Vec3 (-1.0) (-1.0) (-1.0), Vec3 (-1.0) (-1.0) (-1.0), Vec3 (-1.0) 1.0 (-1.0), Vec3 0.999999 1.0 1.000001, Vec3 1.0 1.0 (-0.999999), Vec3 (-1.0) 1.0 1.0, Vec3 (-1.0) (-1.0) 1.0 ] [ Vec2 0.9999 1.0e-4, Vec2 0.9999 0.9999, Vec2 1.0e-4 1.0e-4, Vec2 1.0e-4 0.9999, Vec2 1.0e-4 1.0e-4, Vec2 0.9999 0.9999, Vec2 1.0e-4 1.0e-4, Vec2 0.9999 1.0e-4, Vec2 1.0e-4 0.9999, Vec2 1.0e-4 1.0e-4, Vec2 0.9999 1.0e-4, Vec2 1.0e-4 0.9999, Vec2 0.9999 0.9999, Vec2 1.0e-4 0.9999, Vec2 0.9999 1.0e-4, Vec2 0.9999 0.9999, Vec2 1.0e-4 0.9999, Vec2 0.9999 1.0e-4, Vec2 1.0e-4 0.9999, Vec2 0.9999 1.0e-4, Vec2 0.9999 0.9999, Vec2 0.9999 0.9999, Vec2 1.0e-4 1.0e-4, Vec2 1.0e-4 1.0e-4 ] [ Vec3 0.0 0.0 (-1.0), Vec3 0.0 0.0 (-1.0), Vec3 0.0 0.0 (-1.0), Vec3 (-1.0) (-0.0) (-0.0), Vec3 (-1.0) (-0.0) (-0.0), Vec3 (-1.0) (-0.0) (-0.0), Vec3 (-0.0) (-0.0) 1.0, Vec3 (-0.0) (-0.0) 1.0, Vec3 (-0.0) (-0.0) 1.0, Vec3 1.0 (-0.0) 0.0, Vec3 1.0 (-0.0) 0.0, Vec3 1.0 (-0.0) 0.0, Vec3 0.0 1.0 0.0, Vec3 0.0 1.0 0.0, Vec3 0.0 1.0 0.0, Vec3 0.0 (-1.0) 0.0, Vec3 0.0 (-1.0) 0.0, Vec3 0.0 (-1.0) 0.0, Vec3 0.0 0.0 (-1.0), Vec3 (-1.0) (-0.0) (-0.0), Vec3 (-0.0) (-0.0) 1.0, Vec3 1.0 (-0.0) 0.0, Vec3 0.0 1.0 0.0, Vec3 0.0 (-1.0) 0.0 ] [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1, 18, 2, 4, 19, 5, 7, 20, 8, 10, 21, 11, 13, 22, 14, 16, 23, 17 ]