module Text.GLTF.Loader.Internal.MonadAdapter
  ( Adapter(),
    AdaptEnv(..),
    getGltf,
    getBuffers,
    getImages
  ) where

import Text.GLTF.Loader.Internal.BufferAccessor

import RIO
import qualified Codec.GlTF as GlTF

type Adapter = Reader AdaptEnv

data AdaptEnv = AdaptEnv
  { AdaptEnv -> GlTF
asGltf :: GlTF.GlTF,
    AdaptEnv -> Vector GltfBuffer
asBuffers :: Vector GltfBuffer,
    AdaptEnv -> Vector GltfImageData
asImages :: Vector GltfImageData
  }

getGltf :: Reader AdaptEnv GlTF.GlTF
getGltf :: Reader AdaptEnv GlTF
getGltf = forall r (m :: * -> *) a. MonadReader r m => (r -> a) -> m a
asks AdaptEnv -> GlTF
asGltf

getBuffers :: Reader AdaptEnv (Vector GltfBuffer)
getBuffers :: Reader AdaptEnv (Vector GltfBuffer)
getBuffers = forall r (m :: * -> *) a. MonadReader r m => (r -> a) -> m a
asks AdaptEnv -> Vector GltfBuffer
asBuffers

getImages :: Reader AdaptEnv (Vector GltfImageData)
getImages :: Reader AdaptEnv (Vector GltfImageData)
getImages = forall r (m :: * -> *) a. MonadReader r m => (r -> a) -> m a
asks AdaptEnv -> Vector GltfImageData
asImages