From a57a6b55532587a4d8ecc93bea21e5c85a986c1f Mon Sep 17 00:00:00 2001 From: Joe Crayne Date: Tue, 30 Jul 2019 20:21:03 -0400 Subject: Fixed interval masking. --- LoadMesh.hs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'LoadMesh.hs') diff --git a/LoadMesh.hs b/LoadMesh.hs index bb0f5b0..423630f 100644 --- a/LoadMesh.hs +++ b/LoadMesh.hs @@ -12,15 +12,12 @@ import MtlParser import Control.Arrow import Control.Monad -import Data.Functor -import Data.Int import Data.List as List import Data.Maybe import Data.Map (Map) import qualified Data.Map as Map import qualified Data.Vector as V import qualified Data.Vector.Storable as StorableV -import qualified Data.ByteString as SB import qualified Data.ByteString.Lazy.Char8 as L import Data.Text (unpack,Text,pack) import Data.List (groupBy,nub) @@ -30,7 +27,6 @@ import System.FilePath import Codec.Picture as Juicy import Wavefront import Wavefront.Types -import Data.Aeson import Mask data MaterialMesh m = MaterialMesh @@ -251,8 +247,10 @@ elementIndices els = (spans,map snd ts) ts = map ((elGroups &&& elValue) . fmap triangulate) els rs = List.scanl' go ((0,0),[]) ts -- scanl :: (b -> a -> b) -> b -> [a] -> [b] go ((start,len),_) (gs,vs) = ((start+len,length vs),gs) - spans = fmap (Mask . map (fromIntegral***fromIntegral)) + spans = fmap (foldr (maskPlus . Mask . (:[])) (Mask []) + . map (fromIntegral***fromIntegral)) $ foldr (Map.unionWith (++)) Map.empty $ map singletonSpan rs + singletonSpan (span,gnames) = Map.fromList $ map (, [span]) gnames -- cgit v1.2.3