wavefront-obj-0.1.0.0: src/Data/WavefrontObj.hs
{-|
Module : Data.WavefrontObj
Description : Wavefront .obj 3D model loading microlibrary.
Copyright : (c) Alexis Williams 2016
License : BSD3
Maintainer : sasinestro@gmail.com
Stability : experimental
A (very) minimal microlibrary to load 3D geometry from Wavefront .obj files.
-}
module Data.WavefrontObj (
-- * Types
WavefrontVertex(..)
, WavefrontFace'(..), WavefrontFace
, WavefrontModel'(..), WavefrontModel
-- * Interface
, parseWavefrontObj, loadWavefrontObj
) where
import qualified Data.Text as T
import qualified Data.Text.IO as T
import Data.WavefrontObj.Parsers
import Data.WavefrontObj.Types
{-|
Takes a 'Text' and gives you either an error message or a 'WavefrontModel' containing the geometry data from the input.
-}
parseWavefrontObj :: T.Text -> (Either String WavefrontModel)
parseWavefrontObj = runWavefrontParser objFileParser
{-|
A convienence function for the common case of loading a model from a text file on disk.
-}
loadWavefrontObj :: FilePath -> IO (Either String WavefrontModel)
loadWavefrontObj = fmap parseWavefrontObj . T.readFile