module TextureObjects (TexObjs , TexObjsGroup , textureDetermine) where import Graphics.Rendering.OpenGL import Graphics.UI.GLUT import States type TexObjsGroup = [TexObjs] type TexObjs = [TextureObject] -----TexObjsGroupに含まれるTexObjsの長さの最大値を取る maxTexObjs :: TexObjsGroup -> Int maxTexObjs tOGp = maximum (map length tOGp) -----TexObjGroupの グループIDとIDを受け取ってTextureObjectを返す textureIndices :: Int -> Int -> TexObjsGroup -> TextureObject textureIndices i j tOGp= if ([] `elem` tOGp) then (tOGp !! 0 ) !! 0 else if ((length tOGp) >= i) && ((maxTexObjs tOGp) >= j) then (tOGp !! i ) !! j else (tOGp !! 0 ) !! 0 --- TexObjDataIDからTextureObjectを返す textureDetermine :: TexObjDataID -> TexObjsGroup-> TextureObject textureDetermine tOID tOGp = textureIndices (texGroup tOID) (texImageID tOID) tOGp