packages feed

hgg-3d-0.1.0.0: hgg-3d.cabal

cabal-version:      3.0
name:               hgg-3d
version:            0.1.0.0
extra-doc-files:    CHANGELOG.md
synopsis:           3D plot (CPU projection) for hgg; works with all 2D backends
description:
  A 3D plotting library for hgg, comparable to matplotlib's mplot3d.
  CPU-based projection plus the painter's algorithm let the existing hgg
  2D backends (SVG / PDF / Rasterific) render 3D scatter / line /
  wireframe / surface plots as-is.
  .
  No WebGL required — pure Haskell end to end. Interactive 3D (camera
  rotation etc.) in web environments is handled by a separate
  PureScript / WebGL frontend outside this package, connected through the
  pre-bundled @data/webgl-spec.js@.
license:            BSD-3-Clause
homepage:           https://github.com/frenzieddoll/hgg
license-file:       LICENSE
author:             Toshiaki Honda
maintainer:         frenzieddoll@gmail.com
copyright:          2026 Aelysce Project (Toshiaki Honda)
category:           Graphics
build-type:         Simple
data-files:         data/webgl-spec.js

common warnings
  ghc-options:        -Wall -Wcompat -Widentities -Wincomplete-record-updates
                      -Wincomplete-uni-patterns -Wpartial-fields
                      -Wredundant-constraints

library
  import:           warnings
  exposed-modules:  Graphics.Hgg.ThreeD
                    Graphics.Hgg.ThreeD.Bound
                    Graphics.Hgg.ThreeD.Types
                    Graphics.Hgg.ThreeD.Projection
                    Graphics.Hgg.ThreeD.Axes
                    Graphics.Hgg.ThreeD.Scatter
                    Graphics.Hgg.ThreeD.Line
                    Graphics.Hgg.ThreeD.Surface
                    Graphics.Hgg.ThreeD.Delaunay
                    Graphics.Hgg.ThreeD.Bar
                    Graphics.Hgg.ThreeD.Spec
                    Graphics.Hgg.ThreeD.Browser
                    Graphics.Hgg.ThreeD.Easy
  other-modules:    Paths_hgg_3d
  autogen-modules:  Paths_hgg_3d
  hs-source-dirs:   src
  build-depends:    base                 >= 4.17 && < 5
                  , text                 >= 2.0  && < 2.2
                  , containers           >= 0.6  && < 0.8
                  , vector               >= 0.13 && < 0.14
                  , hgg-core        ^>= 0.1
                  , hgg-svg         ^>= 0.1
                  , hgg-pdf         ^>= 0.1
                  , hgg-rasterific  ^>= 0.1
                  , hgg-frame       ^>= 0.1
                  , aeson                >= 2.1  && < 2.3
                  , bytestring           >= 0.11 && < 0.13
                  , directory            >= 1.3  && < 1.4
                  , filepath             >= 1.4  && < 1.6
                  , process              >= 1.6  && < 1.7
  default-language: Haskell2010

executable plot3d-demo
  import:           warnings
  main-is:          Plot3DDemo.hs
  hs-source-dirs:   examples
  build-depends:    base
                  , text
                  , vector
                  , directory
                  , hgg-3d
                  , hgg-core
                  , hgg-svg
                  , hgg-frame
  default-language: Haskell2010

executable browser-3d-demo
  import:           warnings
  main-is:          Browser3DDemo.hs
  hs-source-dirs:   examples
  build-depends:    base
                  , hgg-3d
                  , hgg-core
  default-language: Haskell2010

executable plot3d-printjson
  import:           warnings
  main-is:          PrintJson.hs
  hs-source-dirs:   examples
  build-depends:    base
                  , aeson
                  , bytestring
                  , hgg-3d
                  , hgg-core
  default-language: Haskell2010

test-suite hgg-3d-tests
  import:           warnings
  type:             exitcode-stdio-1.0
  main-is:          Spec.hs
  hs-source-dirs:   test
  build-depends:    base
                  , text
                  , vector
                  , directory
                  , hgg-3d
                  , hgg-core
                  , hgg-frame
                  , hspec                >= 2.10 && < 2.12
  default-language: Haskell2010