hgg-3d-0.1.0.0: examples/PrintJson.hs
-- | 各 3D 型の JSON 出力を確認する (= Phase 5 A4 PS Argonaut codec 作成前の wire format 確定用)。
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.Aeson (encode)
import qualified Data.ByteString.Lazy.Char8 as BL
import Graphics.Hgg.ThreeD.Axes
import Graphics.Hgg.ThreeD.Line
import Graphics.Hgg.ThreeD.Scatter
import Graphics.Hgg.ThreeD.Spec
import Graphics.Hgg.Color (fromHex)
import Graphics.Hgg.ThreeD.Surface
import Graphics.Hgg.ThreeD.Types
main :: IO ()
main = do
putStrLn "-- Point3 --"
BL.putStrLn $ encode (Point3 1 2 3)
putStrLn "-- Vec3 --"
BL.putStrLn $ encode (Vec3 0 0 1)
putStrLn "-- Mat4 --"
BL.putStrLn $ encode (Mat4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1)
putStrLn "-- Camera3D --"
BL.putStrLn $ encode (defaultCameraZUp 3)
putStrLn "-- Projection3D (Perspective) --"
BL.putStrLn $ encode defaultPerspective
putStrLn "-- Projection3D (Orthographic) --"
BL.putStrLn $ encode (Orthographic 1 1 0.1 100)
putStrLn "-- Axes3D --"
BL.putStrLn $ encode defaultAxes3D
putStrLn "-- Scatter3D --"
BL.putStrLn $ encode (defaultScatter3D [Point3 0 0 0, Point3 1 1 1])
putStrLn "-- Line3D --"
BL.putStrLn $ encode (defaultLine3D [Point3 0 0 0, Point3 1 1 1])
putStrLn "-- Wireframe3D --"
BL.putStrLn $ encode (defaultWireframe3D [Point3 0 0 0, Point3 1 0 0] [(0,1)])
putStrLn "-- Surface3D --"
BL.putStrLn $ encode (defaultSurface3D [[0,1],[1,0]])
putStrLn "-- Mark3DKind --"
BL.putStrLn $ encode M3Scatter
putStrLn "-- Layer3D (scatter + color + size) --"
BL.putStrLn $ encode (scatter3DPoints [Point3 0 0 0] <> color3D (fromHex "#56B4E9") <> size3D 6)
putStrLn "-- VisualSpec3D --"
BL.putStrLn $ encode $
purePlot3D
<> layer3D (scatter3DPoints [Point3 0 0 0, Point3 1 1 1] <> color3D (fromHex "#56B4E9") <> size3D 6)
<> camera (defaultCameraZUp 3)
<> projection defaultPerspective
<> axes3D defaultAxes3D
<> title3D "demo"