Fix build and freeze
This commit is contained in:
parent
cfb428a70e
commit
8643826810
@ -177,9 +177,11 @@ executable Test
|
||||
base >=4.6,
|
||||
bytestring >= 0.10.4.0,
|
||||
containers >= 0.5.0.0,
|
||||
dequeue >= 0.1.12,
|
||||
diagrams-lib >=1.3,
|
||||
diagrams-cairo >=1.3,
|
||||
diagrams-contrib >= 1.3.0.0,
|
||||
JuicyPixels >= 3.1.7.1,
|
||||
QuickCheck >= 2.4.2,
|
||||
safe >= 0.3.8
|
||||
|
||||
|
@ -57,23 +57,24 @@ instance Def DiagProp where
|
||||
def = diagDefaultProp
|
||||
|
||||
|
||||
instance Monoid Diag where
|
||||
mempty = EmptyDiag mempty
|
||||
mappend d1@(Diag {}) d2@(Diag {}) = Diag g
|
||||
instance Semigroup Diag where
|
||||
d1@(Diag {}) <> d2@(Diag {}) = Diag g
|
||||
where
|
||||
g p obj = mkDiag d1 p obj <> mkDiag d2 p obj
|
||||
mappend d1@(GifDiag {}) d2@(Diag {}) = GifDiag g
|
||||
d1@(GifDiag {}) <> d2@(Diag {}) = GifDiag g
|
||||
where
|
||||
g p col f vt = mkGifDiag d1 p col f vt ++ [mkDiag d2 p [vt]]
|
||||
mappend d1@(Diag {}) d2@(GifDiag {}) = GifDiag g
|
||||
d1@(Diag {}) <> d2@(GifDiag {}) = GifDiag g
|
||||
where
|
||||
g p col f vt = mkDiag d2 p [vt] : mkGifDiag d1 p col f vt
|
||||
mappend d1@(GifDiag {}) d2@(GifDiag {}) = GifDiag g
|
||||
d1@(GifDiag {}) <> d2@(GifDiag {}) = GifDiag g
|
||||
where
|
||||
g p col f vt = mkGifDiag d1 p col f vt ++ mkGifDiag d2 p col f vt
|
||||
mappend (EmptyDiag _) g = g
|
||||
mappend g (EmptyDiag _) = g
|
||||
(EmptyDiag _) <> g = g
|
||||
g <> (EmptyDiag _) = g
|
||||
|
||||
instance Monoid Diag where
|
||||
mempty = EmptyDiag mempty
|
||||
mconcat = foldr mappend mempty
|
||||
|
||||
|
||||
|
@ -63,7 +63,7 @@ diagS p mesh =
|
||||
diag p diagAlgos
|
||||
. fmap (filterValidPT p)
|
||||
. (\x -> if null x then [meshToArr mesh] else x)
|
||||
. facesToArr
|
||||
. parseObj
|
||||
$ mesh
|
||||
|
||||
|
||||
@ -74,6 +74,6 @@ diagTreeS p mesh =
|
||||
diag p diagTreAlgos
|
||||
. fmap (filterValidPT p)
|
||||
. (\x -> if null x then [meshToArr mesh] else x)
|
||||
. facesToArr
|
||||
. parseObj
|
||||
$ mesh
|
||||
|
||||
|
@ -29,6 +29,7 @@ import Control.Monad
|
||||
import qualified Data.ByteString.Char8 as B
|
||||
import qualified Data.IntMap.Lazy as Map
|
||||
import Data.Maybe
|
||||
import Diagrams.TwoD.Types
|
||||
import Parser.Meshparser
|
||||
import Safe
|
||||
|
||||
@ -231,10 +232,10 @@ buildHeEdge pts fs
|
||||
|
||||
-- |Build the HeEdge data structure from the .obj mesh file contents.
|
||||
buildHeEdgeFromStr :: B.ByteString -- ^ contents of an .obj mesh file
|
||||
-> HeEdge PT
|
||||
-> HeEdge (P2 Double)
|
||||
buildHeEdgeFromStr bmesh =
|
||||
let pts = meshVertices bmesh
|
||||
faces' = indirectHeFaces . meshFaces $ bmesh
|
||||
let pts = meshToArr bmesh
|
||||
faces' = indirectHeFaces . facesToArr $ bmesh
|
||||
edges = indirectHeEdges faces'
|
||||
verts = indirectHeVerts edges
|
||||
in indirectToDirect pts edges faces' verts
|
||||
|
@ -1,6 +1,6 @@
|
||||
{-# OPTIONS_HADDOCK ignore-exports #-}
|
||||
|
||||
module Parser.Meshparser (meshToArr, facesToArr) where
|
||||
module Parser.Meshparser (meshToArr, facesToArr, parseObj) where
|
||||
|
||||
import Control.Applicative
|
||||
import Data.Attoparsec.ByteString.Char8
|
||||
@ -9,13 +9,8 @@ import qualified Data.ByteString.Char8 as B
|
||||
import Diagrams.TwoD.Types
|
||||
|
||||
|
||||
-- |Convert a text String with multiple vertices and faces into
|
||||
-- a list of vertices, ordered by the faces specification.
|
||||
facesToArr :: B.ByteString -> [[P2 Double]]
|
||||
facesToArr str = fmap (fmap (\y -> meshToArr str !! (fromIntegral y - 1)))
|
||||
(faces str)
|
||||
where
|
||||
faces = rights . fmap (parseOnly parseFace) . B.lines
|
||||
facesToArr :: B.ByteString -> [[Int]]
|
||||
facesToArr = rights . fmap (parseOnly parseFace) . B.lines
|
||||
|
||||
|
||||
-- |Convert a text String with multiple vertices into
|
||||
@ -37,5 +32,14 @@ parseVertice =
|
||||
<*> (many' space *> double)
|
||||
|
||||
|
||||
parseFace :: Parser [Integer]
|
||||
parseFace :: Parser [Int]
|
||||
parseFace = char 'f' *> many1' (many' space *> decimal)
|
||||
|
||||
|
||||
-- |Convert a text String with multiple vertices and faces into
|
||||
-- a list of vertices, ordered by the faces specification.
|
||||
parseObj :: B.ByteString -> [[P2 Double]]
|
||||
parseObj str = fmap (fmap (\y -> meshToArr str !! (fromIntegral y - 1)))
|
||||
(faces str)
|
||||
where
|
||||
faces = rights . fmap (parseOnly parseFace) . B.lines
|
||||
|
3
cabal.project
Normal file
3
cabal.project
Normal file
@ -0,0 +1,3 @@
|
||||
with-compiler: ghc-8.6.5
|
||||
|
||||
packages: *.cabal
|
169
cabal.project.freeze
Normal file
169
cabal.project.freeze
Normal file
@ -0,0 +1,169 @@
|
||||
constraints: any.Boolean ==0.2.4,
|
||||
any.Cabal ==2.4.0.1,
|
||||
any.JuicyPixels ==3.3.4,
|
||||
JuicyPixels -mmap,
|
||||
any.MemoTrie ==0.6.10,
|
||||
MemoTrie -examples,
|
||||
any.MonadRandom ==0.5.1.1,
|
||||
any.NumInstances ==1.4,
|
||||
any.QuickCheck ==2.13.2,
|
||||
QuickCheck +templatehaskell,
|
||||
any.StateVar ==1.2,
|
||||
any.active ==0.2.0.14,
|
||||
any.adjunctions ==4.4,
|
||||
any.alex ==3.2.5,
|
||||
alex +small_base,
|
||||
any.ansi-terminal ==0.10.2,
|
||||
ansi-terminal -example,
|
||||
any.ansi-wl-pprint ==0.6.9,
|
||||
ansi-wl-pprint -example,
|
||||
any.array ==0.5.3.0,
|
||||
any.async ==2.2.2,
|
||||
async -bench,
|
||||
any.attoparsec ==0.13.2.3,
|
||||
attoparsec -developer,
|
||||
any.base ==4.12.0.0,
|
||||
any.base-orphans ==0.8.1,
|
||||
any.bifunctors ==5.5.6,
|
||||
bifunctors +semigroups +tagged,
|
||||
any.binary ==0.8.6.0,
|
||||
any.binary-orphans ==1.0.1,
|
||||
any.bytes ==0.16,
|
||||
bytes +test-doctests,
|
||||
any.bytestring ==0.10.8.2,
|
||||
any.cabal-doctest ==1.0.8,
|
||||
any.cairo ==0.13.6.1,
|
||||
cairo +cairo_pdf +cairo_ps +cairo_svg,
|
||||
any.call-stack ==0.2.0,
|
||||
any.cereal ==0.5.8.1,
|
||||
cereal -bytestring-builder,
|
||||
any.circle-packing ==0.1.0.6,
|
||||
any.colour ==2.3.5,
|
||||
any.comonad ==5.0.6,
|
||||
comonad +containers +distributive +test-doctests,
|
||||
any.constraints ==0.11.2,
|
||||
any.containers ==0.6.0.1,
|
||||
any.contravariant ==1.5.2,
|
||||
contravariant +semigroups +statevar +tagged,
|
||||
any.cubicbezier ==0.6.0.6,
|
||||
cubicbezier -debug,
|
||||
any.data-default ==0.7.1.1,
|
||||
any.data-default-class ==0.1.2.0,
|
||||
any.data-default-instances-containers ==0.0.1,
|
||||
any.data-default-instances-dlist ==0.0.1,
|
||||
any.data-default-instances-old-locale ==0.0.1,
|
||||
any.deepseq ==1.4.4.0,
|
||||
any.dequeue ==0.1.12,
|
||||
any.diagrams-cairo ==1.4.1,
|
||||
any.diagrams-contrib ==1.4.4,
|
||||
any.diagrams-core ==1.4.2,
|
||||
any.diagrams-lib ==1.4.3,
|
||||
any.diagrams-solve ==0.1.1,
|
||||
any.directory ==1.3.3.0,
|
||||
any.distributive ==0.6.1,
|
||||
distributive +semigroups +tagged,
|
||||
any.dlist ==0.8.0.7,
|
||||
any.dual-tree ==0.2.2.1,
|
||||
any.enclosed-exceptions ==1.0.3,
|
||||
any.exceptions ==0.10.3,
|
||||
any.fast-math ==1.0.2,
|
||||
any.filepath ==1.4.2.1,
|
||||
any.fingertree ==0.1.4.2,
|
||||
any.force-layout ==0.4.0.6,
|
||||
any.free ==5.1.3,
|
||||
any.fsnotify ==0.3.0.1,
|
||||
any.ghc-boot-th ==8.6.5,
|
||||
any.ghc-prim ==0.5.3,
|
||||
any.gio ==0.13.6.1,
|
||||
any.glib ==0.13.7.1,
|
||||
glib +closure_signals,
|
||||
any.groups ==0.4.1.0,
|
||||
any.gtk ==0.15.3,
|
||||
gtk +deprecated +fmode-binary +have-gio -have-quartz-gtk,
|
||||
any.gtk2hs-buildtools ==0.13.5.4,
|
||||
gtk2hs-buildtools +closuresignals,
|
||||
any.happy ==1.19.12,
|
||||
happy +small_base,
|
||||
any.hashable ==1.2.7.0,
|
||||
hashable -examples +integer-gmp +sse2 -sse41,
|
||||
any.hashtables ==1.2.3.4,
|
||||
hashtables -bounds-checking -debug -detailed-profiling -portable -sse42 +unsafe-tricks,
|
||||
any.hinotify ==0.4,
|
||||
any.integer-gmp ==1.0.2.0,
|
||||
any.integer-logarithms ==1.0.3,
|
||||
integer-logarithms -check-bounds +integer-gmp,
|
||||
any.integration ==0.2.1,
|
||||
any.intervals ==0.9,
|
||||
intervals -herbie +test-doctests,
|
||||
any.invariant ==0.5.3,
|
||||
any.kan-extensions ==5.2,
|
||||
any.lens ==4.17.1,
|
||||
lens -benchmark-uniplate -dump-splices +inlining -j -old-inline-pragmas -safe +test-doctests +test-hunit +test-properties +test-templates +trustworthy,
|
||||
any.lifted-async ==0.10.0.4,
|
||||
any.lifted-base ==0.2.3.12,
|
||||
any.linear ==1.20.9,
|
||||
linear -herbie +template-haskell,
|
||||
any.matrices ==0.5.0,
|
||||
any.mfsolve ==0.3.2.0,
|
||||
any.microlens ==0.4.11.2,
|
||||
any.microlens-mtl ==0.2.0.1,
|
||||
any.microlens-th ==0.4.3.2,
|
||||
any.monad-control ==1.0.2.3,
|
||||
any.monoid-extras ==0.5.1,
|
||||
any.mtl ==2.2.2,
|
||||
any.mtl-compat ==0.2.2,
|
||||
mtl-compat -two-point-one -two-point-two,
|
||||
any.newtype-generics ==0.5.4,
|
||||
any.old-locale ==1.0.0.7,
|
||||
any.optparse-applicative ==0.14.3.0,
|
||||
any.pango ==0.13.6.1,
|
||||
pango +new-exception,
|
||||
any.parallel ==3.2.2.0,
|
||||
any.parsec ==3.1.13.0,
|
||||
any.pretty ==1.1.3.6,
|
||||
any.primitive ==0.7.0.0,
|
||||
any.process ==1.6.5.0,
|
||||
any.profunctors ==5.5.1,
|
||||
any.random ==1.1,
|
||||
any.reflection ==2.1.5,
|
||||
reflection -slow +template-haskell,
|
||||
any.rts ==1.0,
|
||||
any.safe ==0.3.17,
|
||||
any.scientific ==0.3.6.2,
|
||||
scientific -bytestring-builder -integer-simple,
|
||||
any.semigroupoids ==5.3.4,
|
||||
semigroupoids +comonad +containers +contravariant +distributive +doctests +tagged +unordered-containers,
|
||||
any.semigroups ==0.19.1,
|
||||
semigroups +binary +bytestring -bytestring-builder +containers +deepseq +hashable +tagged +template-haskell +text +transformers +unordered-containers,
|
||||
any.shelly ==1.9.0,
|
||||
shelly -build-examples -lifted,
|
||||
any.split ==0.2.3.3,
|
||||
any.splitmix ==0.0.3,
|
||||
splitmix -optimised-mixer +random,
|
||||
any.statestack ==0.2.0.5,
|
||||
any.stm ==2.5.0.0,
|
||||
any.tagged ==0.8.6,
|
||||
tagged +deepseq +transformers,
|
||||
any.template-haskell ==2.14.0.0,
|
||||
any.text ==1.2.3.1,
|
||||
any.th-abstraction ==0.3.1.0,
|
||||
any.time ==1.8.0.2,
|
||||
any.transformers ==0.5.6.2,
|
||||
any.transformers-base ==0.4.5.2,
|
||||
transformers-base +orphaninstances,
|
||||
any.transformers-compat ==0.6.5,
|
||||
transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
|
||||
any.type-equality ==1,
|
||||
any.unix ==2.7.2.2,
|
||||
any.unix-compat ==0.5.2,
|
||||
unix-compat -old-time,
|
||||
any.unordered-containers ==0.2.10.0,
|
||||
unordered-containers -debug,
|
||||
any.utf8-string ==1.0.1.1,
|
||||
any.vector ==0.12.0.3,
|
||||
vector +boundschecks -internalchecks -unsafechecks -wall,
|
||||
any.vector-space ==0.16,
|
||||
any.void ==0.7.3,
|
||||
void -safe,
|
||||
any.zlib ==0.6.2.1,
|
||||
zlib -non-blocking-ffi -pkg-config
|
96
stack.yaml
96
stack.yaml
@ -1,96 +0,0 @@
|
||||
flags:
|
||||
text:
|
||||
integer-simple: false
|
||||
QuickCheck:
|
||||
base4point8: false
|
||||
packages:
|
||||
- '.'
|
||||
extra-deps:
|
||||
- GLURaw-1.4.0.2
|
||||
- GLUT-2.5.1.1
|
||||
- JuicyPixels-3.2.6.1
|
||||
- MonadRandom-0.4
|
||||
- OpenGL-2.9.2.0
|
||||
- OpenGLRaw-1.5.0.1
|
||||
- QuickCheck-2.8.1
|
||||
- StateVar-1.1.0.1
|
||||
- active-0.2.0.4
|
||||
- adjunctions-4.2.1
|
||||
- ansi-terminal-0.6.2.2
|
||||
- ansi-wl-pprint-0.6.7.3
|
||||
- async-2.0.2
|
||||
- attoparsec-0.13.0.1
|
||||
- base-orphans-0.4.4
|
||||
- bifunctors-5
|
||||
- bmp-1.2.5.2
|
||||
- bytes-0.15.0.1
|
||||
- cairo-0.12.5.3
|
||||
- cereal-0.4.1.1
|
||||
- circle-packing-0.1.0.4
|
||||
- colour-2.3.3
|
||||
- comonad-4.2.7.2
|
||||
- contravariant-1.3.3
|
||||
- data-default-0.5.3
|
||||
- data-default-class-0.0.1
|
||||
- data-default-instances-base-0.0.1
|
||||
- data-default-instances-containers-0.0.1
|
||||
- data-default-instances-dlist-0.0.1
|
||||
- data-default-instances-old-locale-0.0.1
|
||||
- dequeue-0.1.12
|
||||
- diagrams-cairo-1.3.0.3
|
||||
- diagrams-contrib-1.3.0.5
|
||||
- diagrams-core-1.3.0.2
|
||||
- diagrams-lib-1.3.0.3
|
||||
- diagrams-solve-0.1
|
||||
- distributive-0.4.4
|
||||
- dlist-0.7.1.2
|
||||
- dual-tree-0.2.0.6
|
||||
- exceptions-0.8.0.2
|
||||
- fingertree-0.1.1.0
|
||||
- force-layout-0.4.0.2
|
||||
- free-4.12.1
|
||||
- fsnotify-0.2.1
|
||||
- gio-0.12.5.3
|
||||
- glade-0.12.5.0
|
||||
- glib-0.12.5.4
|
||||
- gloss-1.9.2.1
|
||||
- gloss-rendering-1.9.2.1
|
||||
- groups-0.4.0.0
|
||||
- gtk-0.12.5.7
|
||||
- hashable-1.2.3.3
|
||||
- hinotify-0.3.8.1
|
||||
- intervals-0.7.1
|
||||
- kan-extensions-4.2.2
|
||||
- lens-4.12.3
|
||||
- linear-1.19.1.3
|
||||
- monoid-extras-0.4.0.1
|
||||
- mtl-2.2.1
|
||||
- nats-1
|
||||
- newtype-0.2
|
||||
- optparse-applicative-0.11.0.2
|
||||
- pango-0.12.5.3
|
||||
- parallel-3.2.0.6
|
||||
- parsec-3.1.9
|
||||
- prelude-extras-0.4
|
||||
- primitive-0.6
|
||||
- profunctors-5.1.1
|
||||
- random-1.1
|
||||
- reflection-2
|
||||
- safe-0.3.9
|
||||
- scientific-0.3.3.8
|
||||
- semigroupoids-5.0.0.4
|
||||
- semigroups-0.16.2.2
|
||||
- split-0.2.2
|
||||
- statestack-0.2.0.4
|
||||
- stm-2.4.4
|
||||
- tagged-0.8.1
|
||||
- text-1.2.1.3
|
||||
- tf-random-0.5
|
||||
- transformers-compat-0.4.0.4
|
||||
- unix-compat-0.4.1.4
|
||||
- unordered-containers-0.2.5.1
|
||||
- utf8-string-0.3.8
|
||||
- vector-0.11.0.0
|
||||
- void-0.7
|
||||
- zlib-0.6.1.1
|
||||
resolver: ghc-7.8
|
Loading…
Reference in New Issue
Block a user