{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE DeriveAnyClass #-}
module Data.VRML.Nodes where
import Data.VRML.Types
import GHC.Generics
import Data.Int
data Anchor = Anchor
{ children :: [Node]
, description :: String
, parameter :: [String]
, url :: [String]
, bboxCenter :: (Float,Float,Float)
, bboxSize :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data Appearance = Appearance
{ material :: Maybe Node
, texture :: Maybe Node
, textureTransform :: Maybe Node
} deriving (Generic,Show,Eq,ToNode)
data AudioClip = AudioClip
{ description :: String
, loop :: Bool
, pitch :: Float
, startTime :: Time
, stopTime :: Time
, url :: [String]
} deriving (Generic,Show,Eq,ToNode)
data Billboard = Billboard
{ axisOfRotation :: (Float,Float,Float)
, children :: [Node]
, bboxCenter :: (Float,Float,Float)
, bboxSize :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data Box = Box
{ size :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data Collision = Collision
{ children :: [Node]
, collide :: Bool
, bboxCenter :: (Float,Float,Float)
, bboxSize :: (Float,Float,Float)
, proxy :: Maybe Node
} deriving (Generic,Show,Eq,ToNode)
data ColorInterpolator = ColorInterpolator
{ key :: [Float]
, keyValue :: [Color]
} deriving (Generic,Show,Eq,ToNode)
data Cone = Cone
{ bottomRadius :: Float
, height :: Float
, side :: Bool
, bottom :: Bool
} deriving (Generic,Show,Eq,ToNode)
data Coordinate = Coordinate
{ point :: [(Float,Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data CoordinateInterpolator = CoordinateInterpolator
{ key :: [Float]
, keyValue :: [(Float,Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data Cylinder = Cylinder
{ bottom :: Bool
, height :: Float
, radius :: Float
, side :: Bool
, top :: Bool
} deriving (Generic,Show,Eq,ToNode)
data CylinderSensor = CylinderSensor
{ autoOffset :: Bool
, diskAngle :: Float
, enabled :: Bool
, maxAngle :: Float
, minAngle :: Float
, offset :: Float
} deriving (Generic,Show,Eq,ToNode)
data DirectionalLight = DirectionalLight
{ ambientIntensity :: Float
, color :: Color
, direction :: (Float,Float,Float)
, intensity :: Float
, on :: Bool
} deriving (Generic,Show,Eq,ToNode)
data ElevationGrid = ElevationGrid
{ color :: Maybe Node
, normal :: Maybe Node
, texCoord :: Maybe Node
, height :: [Float]
, ccw :: Bool
, colorPerVertex :: Bool
, creaseAngle :: Float
, normalPerVertex :: Bool
, solid :: Bool
, xDimension :: Int32
, xSpacing :: Float
, zDimension :: Int32
, zSpacing :: Float
} deriving (Generic,Show,Eq,ToNode)
data Extrusion = Extrusion
{ beginCap :: Bool
, ccw :: Bool
, convex :: Bool
, creaseAngle :: Float
, crossSection :: [(Float,Float)]
, endCap :: Bool
, orientation :: [(Float,Float,Float,Float)]
, scale :: [(Float,Float)]
, solid :: Bool
, spine :: [(Float,Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data Fog = Fog
{ color :: Color
, fogType :: String
, visibilityRange :: Float
} deriving (Generic,Show,Eq,ToNode)
data FontStyle = FontStyle
{ family :: String
, horizontal :: Bool
, justify :: [String]
, language :: String
, leftToRight :: Bool
, size :: Float
, spacing :: Float
, style :: String
, topToBottom :: Bool
} deriving (Generic,Show,Eq,ToNode)
data Group = Group
{ children :: [Node]
, bboxCenter :: (Float,Float,Float)
, bboxSize :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data ImageTexture = ImageTexture
{ url :: [String]
, repeatS :: Bool
, repeatT :: Bool
} deriving (Generic,Show,Eq,ToNode)
data IndexedFaceSet = IndexedFaceSet
{ color :: Maybe Node
, coord :: Maybe Node
, normal :: Maybe Node
, texCoord :: Maybe Node
, ccw :: Bool
, colorIndex :: [Int32]
, colorPerVertex :: Bool
, convex :: Bool
, coordIndex :: [Int32]
, creaseAngle :: Float
, normalIndex :: [Int32]
, normalPerVertex :: Bool
, solid :: Bool
, texCoordIndex :: [Int32]
} deriving (Generic,Show,Eq,ToNode)
data IndexedLineSet = IndexedLineSet
{ color :: Maybe Node
, coord :: Maybe Node
, colorIndex :: [Int32]
, colorPerVertex :: Bool
, coordIndex :: [Int32]
} deriving (Generic,Show,Eq,ToNode)
data Inline = Inline
{ url :: [String]
, bboxCenter :: (Float,Float,Float)
, bboxSize :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data LOD = LOD
{ level :: [Node]
, center :: (Float,Float,Float)
, range :: [Float]
} deriving (Generic,Show,Eq,ToNode)
data Material = Material
{ ambientIntensity :: Float
, diffuseColor :: Color
, emissiveColor :: Color
, shininess :: Float
, specularColor :: Color
, transparency :: Float
} deriving (Generic,Show,Eq,ToNode)
data MovieTexture = MovieTexture
{ loop :: Bool
, speed :: Float
, startTime :: Time
, stopTime :: Time
, url :: [String]
, repeatS :: Bool
, repeatT :: Bool
} deriving (Generic,Show,Eq,ToNode)
data NavigationInfo = NavigationInfo
{ avatarSize :: [Float]
, headlight :: Bool
, speed :: Float
, visibilityLimit :: Float
} deriving (Generic,Show,Eq,ToNode)
data Normal = Normal
{ vector :: [(Float,Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data NormalInterpolator = NormalInterpolator
{ key :: [Float]
, keyValue :: [(Float,Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data OrientationInterpolator = OrientationInterpolator
{ key :: [Float]
, keyValue :: [(Float,Float,Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data PixelTexture = PixelTexture
{ image :: [Int32]
, repeatS :: Bool
, repeatT :: Bool
} deriving (Generic,Show,Eq,ToNode)
data PlaneSensor = PlaneSensor
{ autoOffset :: Bool
, enabled :: Bool
, maxPosition :: (Float,Float)
, minPosition :: (Float,Float)
, offset :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data PointLight = PointLight
{ ambientIntensity :: Float
, attenuation :: (Float,Float,Float)
, color :: Color
, intensity :: Float
, location :: (Float,Float,Float)
, on :: Bool
, radius :: Float
} deriving (Generic,Show,Eq,ToNode)
data PointSet = PointSet
{ color :: Maybe Node
, coord :: Maybe Node
} deriving (Generic,Show,Eq,ToNode)
data PositionInterpolator = PositionInterpolator
{ key :: [Float]
, keyValue :: [(Float,Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data ProximitySensor = ProximitySensor
{ center :: (Float,Float,Float)
, size :: (Float,Float,Float)
, enabled :: Bool
} deriving (Generic,Show,Eq,ToNode)
data ScalarInterpolator = ScalarInterpolator
{ key :: [Float]
, keyValue :: [Float]
} deriving (Generic,Show,Eq,ToNode)
data Shape = Shape
{ appearance :: Maybe Node
, geometry :: Maybe Node
} deriving (Generic,Show,Eq,ToNode)
data Sound = Sound
{ direction :: (Float,Float,Float)
, intensity :: Float
, location :: (Float,Float,Float)
, maxBack :: Float
, maxFront :: Float
, minBack :: Float
, minFront :: Float
, priority :: Float
, source :: Maybe Node
, spatialize :: Bool
} deriving (Generic,Show,Eq,ToNode)
data Sphere = Sphere
{ radius :: Float
} deriving (Generic,Show,Eq,ToNode)
data SphereSensor = SphereSensor
{ autoOffset :: Bool
, enabled :: Bool
, offset :: (Float,Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data SpotLight = SpotLight
{ ambientIntensity :: Float
, attenuation :: (Float,Float,Float)
, beamWidth :: Float
, color :: Color
, cutOffAngle :: Float
, direction :: (Float,Float,Float)
, intensity :: Float
, location :: (Float,Float,Float)
, on :: Bool
, radius :: Float
} deriving (Generic,Show,Eq,ToNode)
data Switch = Switch
{ choice :: [Node]
, whichChoice :: Int32
} deriving (Generic,Show,Eq,ToNode)
data Text = Text
{ string :: [String]
, fontStyle :: Maybe Node
, length :: [Float]
, maxExtent :: Float
} deriving (Generic,Show,Eq,ToNode)
data TextureCoordinate = TextureCoordinate
{ point :: [(Float,Float)]
} deriving (Generic,Show,Eq,ToNode)
data TextureTransform = TextureTransform
{ center :: (Float,Float)
, rotation :: Float
, scale :: (Float,Float)
, translation :: (Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data TimeSensor = TimeSensor
{ cycleInterval :: Time
, enabled :: Bool
, loop :: Bool
, startTime :: Time
, stopTime :: Time
} deriving (Generic,Show,Eq,ToNode)
data TouchSensor = TouchSensor
{ enabled :: Bool
} deriving (Generic,Show,Eq,ToNode)
data Transform = Transform
{ center :: (Float,Float,Float)
, children :: [Node]
, rotation :: (Float,Float,Float,Float)
, scale :: (Float,Float,Float)
, scaleOrientation :: (Float,Float,Float,Float)
, translation :: (Float,Float,Float)
, bboxCenter :: (Float,Float,Float)
, bboxSize :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data Viewpoint = Viewpoint
{ fieldOfView :: Float
, jump :: Bool
, orientation :: (Float,Float,Float,Float)
, position :: (Float,Float,Float)
, description :: String
} deriving (Generic,Show,Eq,ToNode)
data VisibilitySensor = VisibilitySensor
{ center :: (Float,Float,Float)
, enabled :: Bool
, size :: (Float,Float,Float)
} deriving (Generic,Show,Eq,ToNode)
data WorldInfo = WorldInfo
{ info :: [String]
, title :: String
} deriving (Generic,Show,Eq,ToNode)