addded parse of mesh-line in sce.
This commit is contained in:
parent
a1157e2ec4
commit
ff38526158
@ -75,6 +75,7 @@ parseObject = do
|
||||
return $ OpL (Light p c i)
|
||||
"sphere" -> parseSphere
|
||||
"plane" -> parsePlane
|
||||
"mesh" -> parseMesh
|
||||
_ -> undefined
|
||||
|
||||
parseCamera :: Parser ObjectParser
|
||||
@ -111,8 +112,6 @@ parseCamera = do
|
||||
, xDir = xDir'
|
||||
, yDir = yDir'
|
||||
}
|
||||
where
|
||||
|
||||
|
||||
parsePlane :: Parser ObjectParser
|
||||
parsePlane = do
|
||||
@ -167,3 +166,20 @@ parseVector = do
|
||||
return $ V3 (f a) (f b) (f c)
|
||||
where
|
||||
f = fromRational . toRational --convert Double to Float
|
||||
|
||||
parseMesh :: Parser ObjectParser
|
||||
parseMesh = do
|
||||
name <- takeTill isSpace
|
||||
skipSpace
|
||||
shading <- string "FLAT" <|> string "PHONG"
|
||||
skipSpace
|
||||
mat <- parseMaterial
|
||||
let shading' = case shading of
|
||||
"FLAT" = Flat
|
||||
"PHONG" = Phong
|
||||
return $ OpM Mesh
|
||||
{ meshFilename = name
|
||||
, meshShading = shading'
|
||||
, material = mat
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user