Files
loop/src/Shape/Data.hs
T

45 lines
970 B
Haskell

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralisedNewtypeDeriving #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -Wno-missing-signatures #-}
module Shape.Data where
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import Geometry.Data
{-# INLINE shVfromList #-}
shVfromList = id
{-# INLINE shEfromList #-}
shEfromList = id
data ShapeType = TopPrism { _prismSize :: Int }
-- | Surface { _surfaceSize :: Int}
deriving (Eq, Ord, Show, Read)
--deriving stock Generic
--deriving anyclass Flat
data Surface = Surface
{ _sfType :: ShapeType
, _sfVs :: [Point3]
, _sfColor :: Point4
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''Surface
makeLenses ''ShapeType
type Shape = [Surface]
nShapeVerxComp :: Int
nShapeVerxComp = 12
deriveJSON defaultOptions ''ShapeType
deriveJSON defaultOptions ''Surface