packages feed

implicit-0.1.0: implicit.cabal

name:                implicit
version:             0.1.0
cabal-version:       >= 1.8
synopsis:            Math-inspired programmatic 2&3D CAD: CSG, bevels, and shells; gcode export..
description:         A math-inspired programmatic CAD library in haskell.
                     Build objects with constructive solid geometry, bevels,
                     shells and more in 2D & 3D. Then export to SVGs, STLs,
                     or produce gcode directly!
license:             AGPL-3
license-file:        LICENSE
author:              Christopher Olah
maintainer:          Julia Longtin <julial@turinglace.com>
homepage:            http://kalli1.faikvm.com/ImplicitCAD/Stable
build-type:          Simple
category:            Graphics

library

    build-depends:
        base >= 3 && < 5,
        filepath,
        directory,
        download,
        parsec,
        unordered-containers,
        parallel,
        containers,
        deepseq,
        vector-space,
        text,
        monads-tf,
        bytestring,
        blaze-builder,
        blaze-markup,
        blaze-svg,
        storable-endian,
        JuicyPixels,
        NumInstances,
        criterion,
        snap-core,
        snap-server,
        silently,
        transformers

    ghc-options:
        -Wall
-- for debugging only.
--        -Weverything
        -O2
        -optc-O3
-- cannot use, we use infinity in some calculations.
--        -optc-ffast-math

    extensions:
    exposed-modules:
        Graphics.Implicit
        Graphics.Implicit.Definitions
        Graphics.Implicit.Primitives
        Graphics.Implicit.Export
        Graphics.Implicit.MathUtil
        Graphics.Implicit.ExtOpenScad
        Graphics.Implicit.ObjectUtil
        -- Note that these modules are only temporarily exposed, to
        -- allow coding the unit tests against the current parser
        -- interface.
        Graphics.Implicit.ExtOpenScad.Parser.Statement
        Graphics.Implicit.ExtOpenScad.Parser.Expr
        Graphics.Implicit.ExtOpenScad.Definitions
        -- these are exported for Benchmark.
        Graphics.Implicit.Export.SymbolicObj2
        Graphics.Implicit.Export.SymbolicObj3
        -- these are exported for implicitsnap.
        Graphics.Implicit.Export.TriangleMeshFormats
        Graphics.Implicit.Export.PolylineFormats
        Graphics.Implicit.Export.DiscreteAproxable

    other-modules:
        Graphics.Implicit.ObjectUtil.GetBox2
        Graphics.Implicit.ObjectUtil.GetBox3
        Graphics.Implicit.ObjectUtil.GetImplicit2
        Graphics.Implicit.ObjectUtil.GetImplicit3
        Graphics.Implicit.ExtOpenScad.Default
        Graphics.Implicit.ExtOpenScad.Parser.Util
        Graphics.Implicit.ExtOpenScad.Primitives
        Graphics.Implicit.ExtOpenScad.Eval.Statement
        Graphics.Implicit.ExtOpenScad.Eval.Expr
        Graphics.Implicit.ExtOpenScad.Util.StateC
        Graphics.Implicit.ExtOpenScad.Util.ArgParser
        Graphics.Implicit.ExtOpenScad.Util.OVal
        Graphics.Implicit.Export.MarchingSquares
        Graphics.Implicit.Export.MarchingSquaresFill
        Graphics.Implicit.Export.RayTrace
        Graphics.Implicit.Export.NormedTriangleMeshFormats
        Graphics.Implicit.Export.SymbolicFormats
        Graphics.Implicit.Export.Util
        Graphics.Implicit.Export.TextBuilderUtils
        Graphics.Implicit.Export.Symbolic.Rebound2
        Graphics.Implicit.Export.Symbolic.Rebound3
        Graphics.Implicit.Export.Render
        Graphics.Implicit.Export.Render.Definitions
        Graphics.Implicit.Export.Render.GetLoops
        Graphics.Implicit.Export.Render.GetSegs
        Graphics.Implicit.Export.Render.HandleSquares
        Graphics.Implicit.Export.Render.Interpolate
        Graphics.Implicit.Export.Render.RefineSegs
        Graphics.Implicit.Export.Render.TesselateLoops
        Graphics.Implicit.Export.Render.HandlePolylines

executable extopenscad

   main-is: extopenscad.hs
   hs-source-dirs: programs
   build-depends:
                 base,
                 containers,
                 vector-space,
                 filepath,
                 parallel,
                 optparse-applicative >= 0.10.0,
                 implicit
   ghc-options:
        -threaded
        -rtsopts
        -Wall
        -O2
        -optc-O3
        -optc-ffast-math

-- FIXME: does not compile.
--Executable docgen

--   main-is: docgen.hs
--   build-depends:
--                 base,
--                 vector-space,
--                 text,
--                 JuicyPixels,
--                 blaze-builder,
--                 blaze-svg,
--                 blaze-markup,
--                 parallel,
--                 deepseq,
--                 vector-space,
--                 monads-tf,
--                 bytestring,
--                 storable-endian,
--                 parsec,
--                 directory,
--                 containers,
--                 filepath,
--                 snap-core,
--                 snap-server,
--                 silently,
--                 transformers
--   ghc-options:
--        -optc-O3
--        -threaded
--        -rtsopts
--        -funfolding-use-threshold=16
--       -fspec-constr-count=10
               
executable implicitsnap

   main-is: implicitsnap.hs
   hs-source-dirs: programs
   build-depends:
                 base,
                 vector-space,
                 text,
                 JuicyPixels,
                 blaze-builder,
                 blaze-svg,
                 blaze-markup,
                 parallel,
                 deepseq,
                 vector-space,
                 monads-tf,
                 bytestring,
                 storable-endian,
                 parsec,
                 directory,
                 containers,
                 filepath,
                 snap-core,
                 snap-server,
                 silently,
                 transformers,
                 implicit
   ghc-options:
        -threaded
        -rtsopts
        -Wall
        -O2
        -optc-O3
        -optc-ffast-math

executable Benchmark

   main-is: Benchmark.hs
   hs-source-dirs: programs
   build-depends:
                 base,
                 text,
                 JuicyPixels,
                 blaze-svg,
                 blaze-markup,
                 parallel,
                 deepseq,
                 vector-space,
                 monads-tf,
                 blaze-builder,
                 bytestring,
                 storable-endian,
                 parsec,
                 directory,
                 containers,
                 filepath,
                 criterion,
                 transformers,
                 implicit
   ghc-options:
        -threaded
        -rtsopts
        -Wall
        -O2
        -optc-O3
        -optc-ffast-math

test-suite test-implicit
    type: exitcode-stdio-1.0
    build-depends: base, mtl, containers, hspec, parsec, implicit
    main-is: Main.hs
    hs-source-dirs: tests

benchmark parser-bench
    type: exitcode-stdio-1.0
    hs-source-dirs: bench
    main-is: ParserBench.hs
    build-depends: base, criterion, random, parsec, implicit
    ghc-options:
        -Wall
        -O2 -optc-O3

source-repository head
    type:            git
    location:        https://github.com/colah/ImplicitCAD.git