| Copyright | (C) 2015 Dimitri Sabadie |
|---|---|
| License | BSD3 |
| Maintainer | Dimitri Sabadie <dimitri.sabadie@gmail.com> |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Codec.Wavefront
Description
Currently, you can parse a file and get a WavefrontOBJ with the fromFile
function.
Synopsis
- data Location = Location {}
- data TexCoord = TexCoord {}
- data Normal = Normal {}
- data Point = Point {
- pointLocIndex :: !Int
- data Line = Line {}
- data LineIndex = LineIndex {
- lineLocIndex :: !Int
- lineTexCoordIndex :: !(Maybe Int)
- data Face = Face FaceIndex FaceIndex FaceIndex [FaceIndex]
- data FaceIndex = FaceIndex {
- faceLocIndex :: !Int
- faceTexCoordIndex :: !(Maybe Int)
- faceNorIndex :: !(Maybe Int)
- pattern Triangle :: FaceIndex -> FaceIndex -> FaceIndex -> Face
- pattern Quad :: FaceIndex -> FaceIndex -> FaceIndex -> FaceIndex -> Face
- type Element = ElementF (Maybe Material)
- data ElementF material a = Element {}
- type RawElement = ElementF (Maybe Text)
- type WavefrontOBJ = WavefrontOBJF MaterialLib (Maybe Material)
- data WavefrontOBJF mtlLib material = WavefrontOBJ {}
- type RawWavefrontOBJ = WavefrontOBJF FilePath (Maybe Text)
- data MaterialLib
- data Material = Material {
- materialName :: MaterialName
- ambientReflexivity :: Maybe Reflexivity
- diffuseReflexivity :: Maybe Reflexivity
- specularReflexivity :: Maybe Reflexivity
- emissiveReflexivity :: Maybe Reflexivity
- transmissionFilter :: Maybe Reflexivity
- iluminationModel :: Maybe IluminationModel
- disolveFactor :: Maybe Float
- specularExponent :: Maybe Float
- sharpness :: Maybe Float
- opticalDensity :: Maybe Float
- type MaterialName = Text
- data RGB = RGB !Float !Float !Float
- data CIEXYZ = CIEXYZ !Float !Float !Float
- data Reflexivity
- data IluminationModel
- module Codec.Wavefront.IO
Vertex location
A location is a 4-floating vector. You can access to its components by pattern matching on them:
let Location x y z w = Location 1 2 3 4
That type is strict and unboxed.
Instances
Vertex texture coordinates
A texture coordinate is a 3D-floating vector. You can access to its components by pattern matching on them:
let TexCoord r s t = TexCoord 0.1 0.2 0.3
That type is strict and unboxed.
Instances
| Generic TexCoord Source # | |||||
Defined in Codec.Wavefront.TexCoord Associated Types
| |||||
| Show TexCoord Source # | |||||
| Eq TexCoord Source # | |||||
| type Rep TexCoord Source # | |||||
Defined in Codec.Wavefront.TexCoord type Rep TexCoord = D1 ('MetaData "TexCoord" "Codec.Wavefront.TexCoord" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "TexCoord" 'PrefixI 'True) (S1 ('MetaSel ('Just "texcoordR") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float) :*: (S1 ('MetaSel ('Just "texcoordS") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float) :*: S1 ('MetaSel ('Just "texcoordT") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float)))) | |||||
Vertex normals
A normal is a 3-floating vector. You can access to its components by pattern matching on them:
let Normal nx ny nz = Normal 0.1 0.2 0.3
That type is strict and unboxed.
Points
A point is a single index that references the locations. It’s a canonical type that truly represents a polygonal point.
Constructors
| Point | |
Fields
| |
Lines
Constructors
| Line | |
Fields | |
Instances
| Generic Line Source # | |||||
Defined in Codec.Wavefront.Line Associated Types
| |||||
| Show Line Source # | |||||
| Eq Line Source # | |||||
| type Rep Line Source # | |||||
Defined in Codec.Wavefront.Line type Rep Line = D1 ('MetaData "Line" "Codec.Wavefront.Line" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "Line" 'PrefixI 'True) (S1 ('MetaSel ('Just "lineIndexA") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LineIndex) :*: S1 ('MetaSel ('Just "lineIndexB") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LineIndex))) | |||||
A line index is a pair of indices. . LineIndex vi vtivi references the locations and vti
indexes the texture coordinates. If vti == , then that NothingLineIndex doesn’t have
texture coordinates associated with.
Constructors
| LineIndex | |
Fields
| |
Instances
| Generic LineIndex Source # | |||||
Defined in Codec.Wavefront.Line Associated Types
| |||||
| Show LineIndex Source # | |||||
| Eq LineIndex Source # | |||||
| type Rep LineIndex Source # | |||||
Defined in Codec.Wavefront.Line type Rep LineIndex = D1 ('MetaData "LineIndex" "Codec.Wavefront.Line" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "LineIndex" 'PrefixI 'True) (S1 ('MetaSel ('Just "lineLocIndex") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Just "lineTexCoordIndex") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)))) | |||||
Faces
A face gathers several FaceIndex to build up faces. It has a least three vertices
Instances
| Generic Face Source # | |||||
Defined in Codec.Wavefront.Face Associated Types
| |||||
| Show Face Source # | |||||
| Eq Face Source # | |||||
| type Rep Face Source # | |||||
Defined in Codec.Wavefront.Face type Rep Face = D1 ('MetaData "Face" "Codec.Wavefront.Face" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "Face" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FaceIndex) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FaceIndex)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FaceIndex) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FaceIndex])))) | |||||
A face index is a triplet of indices. is a face that indexes the
locations with FaceIndex vi vti vnivi, the texture coordinates with vti and the normals with vni. An index set
to Nothing means no information. That is, if vni == , then that NothingFaceIndex
doesn’t have a normal associated with.
Constructors
| FaceIndex | |
Fields
| |
Instances
| Generic FaceIndex Source # | |||||
Defined in Codec.Wavefront.Face Associated Types
| |||||
| Show FaceIndex Source # | |||||
| Eq FaceIndex Source # | |||||
| type Rep FaceIndex Source # | |||||
Defined in Codec.Wavefront.Face type Rep FaceIndex = D1 ('MetaData "FaceIndex" "Codec.Wavefront.Face" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "FaceIndex" 'PrefixI 'True) (S1 ('MetaSel ('Just "faceLocIndex") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: (S1 ('MetaSel ('Just "faceTexCoordIndex") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "faceNorIndex") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Int))))) | |||||
Element
data ElementF material a Source #
An element holds a value along with the user-defined object’s name (if any), the associated groups, the used material and the smoothing group the element belongs to (if any). Those values can be used to sort the data per object or per group and to lookup materials.
Constructors
| Element | |
Instances
| Bifoldable ElementF Source # | |||||
Defined in Codec.Wavefront.Element | |||||
| Bifunctor ElementF Source # | |||||
| Bitraversable ElementF Source # | |||||
Defined in Codec.Wavefront.Element Methods bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> ElementF a b -> f (ElementF c d) Source # | |||||
| Functor (ElementF material) Source # | |||||
| Foldable (ElementF material) Source # | |||||
Defined in Codec.Wavefront.Element Methods fold :: Monoid m => ElementF material m -> m Source # foldMap :: Monoid m => (a -> m) -> ElementF material a -> m Source # foldMap' :: Monoid m => (a -> m) -> ElementF material a -> m Source # foldr :: (a -> b -> b) -> b -> ElementF material a -> b Source # foldr' :: (a -> b -> b) -> b -> ElementF material a -> b Source # foldl :: (b -> a -> b) -> b -> ElementF material a -> b Source # foldl' :: (b -> a -> b) -> b -> ElementF material a -> b Source # foldr1 :: (a -> a -> a) -> ElementF material a -> a Source # foldl1 :: (a -> a -> a) -> ElementF material a -> a Source # toList :: ElementF material a -> [a] Source # null :: ElementF material a -> Bool Source # length :: ElementF material a -> Int Source # elem :: Eq a => a -> ElementF material a -> Bool Source # maximum :: Ord a => ElementF material a -> a Source # minimum :: Ord a => ElementF material a -> a Source # | |||||
| Traversable (ElementF material) Source # | |||||
Defined in Codec.Wavefront.Element Methods traverse :: Applicative f => (a -> f b) -> ElementF material a -> f (ElementF material b) Source # sequenceA :: Applicative f => ElementF material (f a) -> f (ElementF material a) Source # mapM :: Monad m => (a -> m b) -> ElementF material a -> m (ElementF material b) Source # sequence :: Monad m => ElementF material (m a) -> m (ElementF material a) Source # | |||||
| Generic (ElementF material a) Source # | |||||
Defined in Codec.Wavefront.Element Associated Types
| |||||
| (Show material, Show a) => Show (ElementF material a) Source # | |||||
| (Eq material, Eq a) => Eq (ElementF material a) Source # | |||||
| type Rep (ElementF material a) Source # | |||||
Defined in Codec.Wavefront.Element type Rep (ElementF material a) = D1 ('MetaData "ElementF" "Codec.Wavefront.Element" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "Element" 'PrefixI 'True) ((S1 ('MetaSel ('Just "elObject") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "elGroups") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])) :*: (S1 ('MetaSel ('Just "elMtl") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 material) :*: (S1 ('MetaSel ('Just "elSmoothingGroup") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: S1 ('MetaSel ('Just "elValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))))) | |||||
type RawElement = ElementF (Maybe Text) Source #
An element whose material has not been dereferenced yet
Object
type WavefrontOBJ = WavefrontOBJF MaterialLib (Maybe Material) Source #
The content of a WavefrontOBJ file, in which the materials have been dereferenced.
data WavefrontOBJF mtlLib material Source #
Prototype result for a WaveFrontOBJ File
Note according to the OBJ-spec, locations are "1-indexed"; i.e. in the range [1..n] rather than [0..n-1]. Hence, the indices in the Points, Lines, and Faces all refer to these 1-indexed points.
Constructors
| WavefrontOBJ | |
Fields
| |
Instances
| Generic (WavefrontOBJF mtlLib material) Source # | |||||
Defined in Codec.Wavefront.Object Associated Types
Methods from :: WavefrontOBJF mtlLib material -> Rep (WavefrontOBJF mtlLib material) x Source # to :: Rep (WavefrontOBJF mtlLib material) x -> WavefrontOBJF mtlLib material Source # | |||||
| (Show material, Show mtlLib) => Show (WavefrontOBJF mtlLib material) Source # | |||||
Defined in Codec.Wavefront.Object | |||||
| (Eq material, Eq mtlLib) => Eq (WavefrontOBJF mtlLib material) Source # | |||||
Defined in Codec.Wavefront.Object Methods (==) :: WavefrontOBJF mtlLib material -> WavefrontOBJF mtlLib material -> Bool Source # (/=) :: WavefrontOBJF mtlLib material -> WavefrontOBJF mtlLib material -> Bool Source # | |||||
| type Rep (WavefrontOBJF mtlLib material) Source # | |||||
Defined in Codec.Wavefront.Object type Rep (WavefrontOBJF mtlLib material) = D1 ('MetaData "WavefrontOBJF" "Codec.Wavefront.Object" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "WavefrontOBJ" 'PrefixI 'True) ((S1 ('MetaSel ('Just "objLocations") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector Location)) :*: (S1 ('MetaSel ('Just "objTexCoords") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector TexCoord)) :*: S1 ('MetaSel ('Just "objNormals") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector Normal)))) :*: ((S1 ('MetaSel ('Just "objPoints") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector (ElementF material Point))) :*: S1 ('MetaSel ('Just "objLines") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector (ElementF material Line)))) :*: (S1 ('MetaSel ('Just "objFaces") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector (ElementF material Face))) :*: S1 ('MetaSel ('Just "objMtlLibs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector mtlLib)))))) | |||||
type RawWavefrontOBJ = WavefrontOBJF FilePath (Maybe Text) Source #
A wavefront object whose material has not been dereferenced yet
Material
data MaterialLib Source #
A MaterialLib
Instances
| Generic MaterialLib Source # | |||||
Defined in Codec.Wavefront.Material Associated Types
Methods from :: MaterialLib -> Rep MaterialLib x Source # to :: Rep MaterialLib x -> MaterialLib Source # | |||||
| Show MaterialLib Source # | |||||
Defined in Codec.Wavefront.Material | |||||
| Eq MaterialLib Source # | |||||
Defined in Codec.Wavefront.Material Methods (==) :: MaterialLib -> MaterialLib -> Bool Source # (/=) :: MaterialLib -> MaterialLib -> Bool Source # | |||||
| type Rep MaterialLib Source # | |||||
Defined in Codec.Wavefront.Material type Rep MaterialLib = D1 ('MetaData "MaterialLib" "Codec.Wavefront.Material" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "MaterialLib" 'PrefixI 'True) (S1 ('MetaSel ('Just "materialLibPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath) :*: S1 ('MetaSel ('Just "materials") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map MaterialName Material)))) | |||||
Specification of a Material
Constructors
| Material | |
Fields
| |
Instances
| Generic Material Source # | |||||
Defined in Codec.Wavefront.Material.Type Associated Types
| |||||
| Show Material Source # | |||||
| Eq Material Source # | |||||
| type Rep Material Source # | |||||
Defined in Codec.Wavefront.Material.Type type Rep Material = D1 ('MetaData "Material" "Codec.Wavefront.Material.Type" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "Material" 'PrefixI 'True) (((S1 ('MetaSel ('Just "materialName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MaterialName) :*: S1 ('MetaSel ('Just "ambientReflexivity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Reflexivity))) :*: (S1 ('MetaSel ('Just "diffuseReflexivity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Reflexivity)) :*: (S1 ('MetaSel ('Just "specularReflexivity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Reflexivity)) :*: S1 ('MetaSel ('Just "emissiveReflexivity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Reflexivity))))) :*: ((S1 ('MetaSel ('Just "transmissionFilter") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Reflexivity)) :*: (S1 ('MetaSel ('Just "iluminationModel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IluminationModel)) :*: S1 ('MetaSel ('Just "disolveFactor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Float)))) :*: (S1 ('MetaSel ('Just "specularExponent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Float)) :*: (S1 ('MetaSel ('Just "sharpness") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Float)) :*: S1 ('MetaSel ('Just "opticalDensity") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Float))))))) | |||||
Attributes of Materials
type MaterialName = Text Source #
Instances
| Generic RGB Source # | |||||
Defined in Codec.Wavefront.Material.Type Associated Types
| |||||
| Show RGB Source # | |||||
| Eq RGB Source # | |||||
| type Rep RGB Source # | |||||
Defined in Codec.Wavefront.Material.Type type Rep RGB = D1 ('MetaData "RGB" "Codec.Wavefront.Material.Type" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "RGB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float)))) | |||||
Instances
| Generic CIEXYZ Source # | |||||
Defined in Codec.Wavefront.Material.Type Associated Types
| |||||
| Show CIEXYZ Source # | |||||
| Eq CIEXYZ Source # | |||||
| type Rep CIEXYZ Source # | |||||
Defined in Codec.Wavefront.Material.Type type Rep CIEXYZ = D1 ('MetaData "CIEXYZ" "Codec.Wavefront.Material.Type" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "CIEXYZ" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Float)))) | |||||
data Reflexivity Source #
Constructors
| ReflexicityRGB !RGB | |
| ReflexivitySpectral FilePath (Maybe Float) | |
| ReflexivityCIE !CIEXYZ |
Instances
| Generic Reflexivity Source # | |||||
Defined in Codec.Wavefront.Material.Type Associated Types
Methods from :: Reflexivity -> Rep Reflexivity x Source # to :: Rep Reflexivity x -> Reflexivity Source # | |||||
| Show Reflexivity Source # | |||||
Defined in Codec.Wavefront.Material.Type | |||||
| Eq Reflexivity Source # | |||||
Defined in Codec.Wavefront.Material.Type Methods (==) :: Reflexivity -> Reflexivity -> Bool Source # (/=) :: Reflexivity -> Reflexivity -> Bool Source # | |||||
| type Rep Reflexivity Source # | |||||
Defined in Codec.Wavefront.Material.Type type Rep Reflexivity = D1 ('MetaData "Reflexivity" "Codec.Wavefront.Material.Type" "wavefront-0.7.1.5-inplace" 'False) (C1 ('MetaCons "ReflexicityRGB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 RGB)) :+: (C1 ('MetaCons "ReflexivitySpectral" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Float))) :+: C1 ('MetaCons "ReflexivityCIE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 CIEXYZ)))) | |||||
data IluminationModel Source #
Constructors
| ColorOnly | |
| ColorAndAmbient | |
| Higlight | |
| ReflectionAndRayTrace | |
| GlassAndRayTrace | |
| FresnelAndRayTrace | |
| RefractionAndRayTrace | |
| RefactionFresnelAndRayTrace | |
| ReflectionOnly | |
| GlassOnly | |
| CastsShadows |
Instances
| Bounded IluminationModel Source # | |||||
Defined in Codec.Wavefront.Material.Type | |||||
| Enum IluminationModel Source # | |||||
Defined in Codec.Wavefront.Material.Type Methods succ :: IluminationModel -> IluminationModel Source # pred :: IluminationModel -> IluminationModel Source # toEnum :: Int -> IluminationModel Source # fromEnum :: IluminationModel -> Int Source # enumFrom :: IluminationModel -> [IluminationModel] Source # enumFromThen :: IluminationModel -> IluminationModel -> [IluminationModel] Source # enumFromTo :: IluminationModel -> IluminationModel -> [IluminationModel] Source # enumFromThenTo :: IluminationModel -> IluminationModel -> IluminationModel -> [IluminationModel] Source # | |||||
| Generic IluminationModel Source # | |||||
Defined in Codec.Wavefront.Material.Type Associated Types
Methods from :: IluminationModel -> Rep IluminationModel x Source # to :: Rep IluminationModel x -> IluminationModel Source # | |||||
| Show IluminationModel Source # | |||||
Defined in Codec.Wavefront.Material.Type | |||||
| Eq IluminationModel Source # | |||||
Defined in Codec.Wavefront.Material.Type Methods (==) :: IluminationModel -> IluminationModel -> Bool Source # (/=) :: IluminationModel -> IluminationModel -> Bool Source # | |||||
| type Rep IluminationModel Source # | |||||
Defined in Codec.Wavefront.Material.Type type Rep IluminationModel = D1 ('MetaData "IluminationModel" "Codec.Wavefront.Material.Type" "wavefront-0.7.1.5-inplace" 'False) (((C1 ('MetaCons "ColorOnly" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ColorAndAmbient" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Higlight" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ReflectionAndRayTrace" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "GlassAndRayTrace" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "FresnelAndRayTrace" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RefractionAndRayTrace" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RefactionFresnelAndRayTrace" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "ReflectionOnly" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "GlassOnly" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CastsShadows" 'PrefixI 'False) (U1 :: Type -> Type))))) | |||||
Re-exports
module Codec.Wavefront.IO