moduleData.Glome.Scene(Scene(Scene),Light(Light),Camera(Camera),scene,camera,light,sld,lits,cam,dtex,bground,primcount_scene,moduleData.Glome.Clr,moduleData.Glome.Vec,moduleData.Glome.Solid,moduleData.Glome.Sphere,moduleData.Glome.Triangle,moduleData.Glome.Bih,moduleData.Glome.Csg,moduleData.Glome.Plane,moduleData.Glome.Box,moduleData.Glome.Bound,moduleData.Glome.Cone,moduleData.Glome.Tex)whereimportData.Glome.ClrimportData.Glome.VecimportData.Glome.SolidimportData.Glome.SphereimportData.Glome.TriangleimportData.Glome.BihimportData.Glome.CsgimportData.Glome.PlaneimportData.Glome.BoximportData.Glome.BoundimportData.Glome.ConeimportData.Glome.Tex-- This is the module to import if you want to have-- access to all the Solid constructors and scene-- defininition code.--LIGHTS--dataLight=Light{litpos::!Vec,litcol::!Color}derivingShow-- | Construct a light given a center location and a color.light::Vec->Color->Lightlightposclr=Lightposclr-- CAMERA --dataCamera=Camera{campos,fwd,up,right::!Vec}derivingShow-- | Construct a camera pointing in some default direction.default_cam=(Camera(vec0.00.0(-3.0))(vec0.00.01.0)(vec0.01.00.0)(vec1.00.00.0))-- | Construct a camera, given a position, a forward vector, -- a point that the camera should be pointed towards, an up vector,-- and a right vector. The up and right vectors don't have to be-- normalized or perfectly orthogonal.camera::Vec->Vec->Vec->Flt->Cameracameraposatupangle=letfwd=vnorm$vsubatposright=vnorm$vcrossupfwdup_=vnorm$vcrossfwdrightcam_scale=tan((pi/180)*(angle/2))inCameraposfwd(vscaleup_cam_scale)(vscalerightcam_scale)--SCENE--dataScene=Scene{sld::SolidItem,lits::[Light],cam::Camera,dtex::Texture,bground::Color}derivingShow-- | Create a scene from an item (which can be a composite item, such -- as a bih or group), a list of lights, a camera, a default texture,-- and a default background color.scene::SolidItem->[Light]->Camera->Texture->Color->Scenesceneslcamtclr=Sceneslcamtclr-- | Count the primitives in the scene. See docs for primcount -- in Solid.hs.primcount_scene::Scene->Pcountprimcount_scene(Scenesld____)=primcountsld{-
default_scene = (Scene (sphere (vec 0.0 0.0 0.0) 1.0)
[] default_cam t_white c_white)
-}