-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | STL 3D geometry format parsing and pretty-printing -- @package STL @version 0.3.0.1 module Graphics.Formats.STL.Types -- | A representation of an STL file, consisting of a (possibly empty) -- object name, and a list of triangles. data STL STL :: Text -> [Triangle] -> STL name :: STL -> Text triangles :: STL -> [Triangle] -- | A single triangle in STL is represented by a normal vector and three -- vertices. data Triangle Triangle :: Maybe Vector -> (Vector, Vector, Vector) -> Triangle normal :: Triangle -> Maybe Vector vertices :: Triangle -> (Vector, Vector, Vector) type Vector = (Float, Float, Float) triple :: a -> a -> a -> (a, a, a) instance Serialize STL instance Serialize Triangle module Graphics.Formats.STL.Parser -- | A parser from Text to the STL type. The parser should -- be fairly permissive about whitespace, but has not been tested enough -- against STL files in the wild. stlParser :: Parser STL nameParser :: Parser Text triangle :: Parser Triangle loop :: Parser (Vector, Vector, Vector) normalParser :: Parser (Maybe Vector) vertex :: Parser Vector v3 :: Parser Vector ss :: Parser a -> Parser a text :: Text -> Parser Text float :: Parser Float module Graphics.Formats.STL.Printer -- | Convert an STL value to a Builder, which can be -- converted to a ByteString with toLazyByteString textSTL :: STL -> Builder triangle :: Triangle -> Builder maybeNormal :: Maybe Vector -> Builder vertex :: Vector -> Builder v3 :: Vector -> Builder indent :: Int -> Builder -> Builder vcat :: [Builder] -> Builder module Graphics.Formats.STL -- | Convert an STL value to a Builder, which can be -- converted to a ByteString with toLazyByteString textSTL :: STL -> Builder -- | A parser from Text to the STL type. The parser should -- be fairly permissive about whitespace, but has not been tested enough -- against STL files in the wild. stlParser :: Parser STL -- | A representation of an STL file, consisting of a (possibly empty) -- object name, and a list of triangles. data STL STL :: Text -> [Triangle] -> STL name :: STL -> Text triangles :: STL -> [Triangle] -- | A single triangle in STL is represented by a normal vector and three -- vertices. data Triangle Triangle :: Maybe Vector -> (Vector, Vector, Vector) -> Triangle normal :: Triangle -> Maybe Vector vertices :: Triangle -> (Vector, Vector, Vector) type Vector = (Float, Float, Float)