module Quality
(Quality(..),
qualityToVertices,
qualityToFixed,
minorFixedQuality)
where
import RSAGL.Modeling
data Quality = Bad
| Poor
| Good
| Super
deriving (Eq,Enum,Ord,Show)
qualityToVertices :: Quality -> Integer
qualityToVertices Bad = 2^6
qualityToVertices Poor = 2^8
qualityToVertices Good = 2^10
qualityToVertices Super = 2^12
-- | Sets the fixed quality of of modeled surface using 'RSAGL.Model.fixed'.
-- Good for pieces that need to mesh together but don't for some reason.
qualityToFixed :: Quality -> ModelingM attr ()
qualityToFixed Bad = fixed (2^2,2^2)
qualityToFixed Poor = fixed (2^3,2^3)
qualityToFixed Good = fixed (2^4,2^4)
qualityToFixed Super = fixed (2^5,2^5)
-- | Sets the fixed quality of of modeled surface using 'RSAGL.Model.fixed'.
-- The quality here is very low.
minorFixedQuality :: Quality -> ModelingM attr ()
minorFixedQuality Bad = fixed (2^1,2^1)
minorFixedQuality Poor = fixed (2^1,2^1)
minorFixedQuality Good = fixed (2^2,2^2)
minorFixedQuality Super = fixed (2^3,2^3)