diff options
Diffstat (limited to 'LoadMesh.hs')
-rw-r--r-- | LoadMesh.hs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/LoadMesh.hs b/LoadMesh.hs index bb0f5b0..423630f 100644 --- a/LoadMesh.hs +++ b/LoadMesh.hs | |||
@@ -12,15 +12,12 @@ import MtlParser | |||
12 | 12 | ||
13 | import Control.Arrow | 13 | import Control.Arrow |
14 | import Control.Monad | 14 | import Control.Monad |
15 | import Data.Functor | ||
16 | import Data.Int | ||
17 | import Data.List as List | 15 | import Data.List as List |
18 | import Data.Maybe | 16 | import Data.Maybe |
19 | import Data.Map (Map) | 17 | import Data.Map (Map) |
20 | import qualified Data.Map as Map | 18 | import qualified Data.Map as Map |
21 | import qualified Data.Vector as V | 19 | import qualified Data.Vector as V |
22 | import qualified Data.Vector.Storable as StorableV | 20 | import qualified Data.Vector.Storable as StorableV |
23 | import qualified Data.ByteString as SB | ||
24 | import qualified Data.ByteString.Lazy.Char8 as L | 21 | import qualified Data.ByteString.Lazy.Char8 as L |
25 | import Data.Text (unpack,Text,pack) | 22 | import Data.Text (unpack,Text,pack) |
26 | import Data.List (groupBy,nub) | 23 | import Data.List (groupBy,nub) |
@@ -30,7 +27,6 @@ import System.FilePath | |||
30 | import Codec.Picture as Juicy | 27 | import Codec.Picture as Juicy |
31 | import Wavefront | 28 | import Wavefront |
32 | import Wavefront.Types | 29 | import Wavefront.Types |
33 | import Data.Aeson | ||
34 | import Mask | 30 | import Mask |
35 | 31 | ||
36 | data MaterialMesh m = MaterialMesh | 32 | data MaterialMesh m = MaterialMesh |
@@ -251,8 +247,10 @@ elementIndices els = (spans,map snd ts) | |||
251 | ts = map ((elGroups &&& elValue) . fmap triangulate) els | 247 | ts = map ((elGroups &&& elValue) . fmap triangulate) els |
252 | rs = List.scanl' go ((0,0),[]) ts -- scanl :: (b -> a -> b) -> b -> [a] -> [b] | 248 | rs = List.scanl' go ((0,0),[]) ts -- scanl :: (b -> a -> b) -> b -> [a] -> [b] |
253 | go ((start,len),_) (gs,vs) = ((start+len,length vs),gs) | 249 | go ((start,len),_) (gs,vs) = ((start+len,length vs),gs) |
254 | spans = fmap (Mask . map (fromIntegral***fromIntegral)) | 250 | spans = fmap (foldr (maskPlus . Mask . (:[])) (Mask []) |
251 | . map (fromIntegral***fromIntegral)) | ||
255 | $ foldr (Map.unionWith (++)) Map.empty $ map singletonSpan rs | 252 | $ foldr (Map.unionWith (++)) Map.empty $ map singletonSpan rs |
253 | |||
256 | singletonSpan (span,gnames) = Map.fromList $ map (, [span]) gnames | 254 | singletonSpan (span,gnames) = Map.fromList $ map (, [span]) gnames |
257 | 255 | ||
258 | 256 | ||