module Codec.GlTF.PbrMetallicRoughness
( PbrMetallicRoughness(..)
) where
import Codec.GlTF.Prelude
import Codec.GlTF.TextureInfo (TextureInfo_)
data PbrMetallicRoughness = PbrMetallicRoughness
{ baseColorFactor :: (Float, Float, Float, Float)
, metallicFactor :: Float
, roughnessFactor :: Float
, metallicRoughnessTexture :: Maybe TextureInfo_
, baseColorTexture :: Maybe TextureInfo_
, extensions :: Maybe Object
, extras :: Maybe Value
} deriving (Eq, Show, Generic)
instance FromJSON PbrMetallicRoughness where
parseJSON = withObject "PbrMetallicRoughness" \o -> do
baseColorFactor <- o .:? "baseColorFactor" .!= (1.0, 1.0, 1.0, 1.0)
metallicFactor <- o .:? "metallicFactor" .!= 1.0
roughnessFactor <- o .:? "roughnessFactor" .!= 1.0
metallicRoughnessTexture <- o .:? "metallicRoughnessTexture"
baseColorTexture <- o .:? "baseColorTexture"
extensions <- o .:? "extensions"
extras <- o .:? "extras"
pure PbrMetallicRoughness{..}
instance ToJSON PbrMetallicRoughness