-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE TypeSynonymInstances #-}

-- This source file is part of HGamer3D
-- (A project to enable 3D game development in Haskell)
-- For the latest info, see http://www.althainz.de/HGamer3D.html
-- 

-- (c) 2011-2013 Peter Althainz
-- 
-- The files are part of HGamer3D (www.hgamer3d.org)
-- 
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
-- 
--     http://www.apache.org/licenses/LICENSE-2.0
-- 
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-- 


-- ClassLight.chs

-- 

module HGamer3D.Bindings.Ogre.ClassLight where

import Foreign
import Foreign.Ptr
import Foreign.C

import HGamer3D.Data.HG3DClass
import HGamer3D.Data.Vector
import HGamer3D.Data.Colour
import HGamer3D.Data.Angle

import HGamer3D.Bindings.Ogre.Utils
{-# LINE 42 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}
import HGamer3D.Bindings.Ogre.ClassPtr
{-# LINE 43 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}
import HGamer3D.Bindings.Ogre.StructHG3DClass
{-# LINE 44 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}
import HGamer3D.Bindings.Ogre.EnumLightType
{-# LINE 45 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}
import HGamer3D.Bindings.Ogre.StructColour
{-# LINE 46 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}
import HGamer3D.Bindings.Ogre.StructVec3
{-# LINE 47 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}
import HGamer3D.Bindings.Ogre.StructRadians
{-# LINE 48 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function Light2 -}
new :: String -> IO (HG3DClass)
new a1 =
  withCString a1 $ \a1' -> 
  alloca $ \a2' -> 
  new'_ a1' a2' >>= \res ->
  peek  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 54 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function ~Light -}
delete :: HG3DClass -> IO ()
delete a1 =
  withHG3DClass a1 $ \a1' -> 
  delete'_ a1' >>= \res ->
  return ()
{-# LINE 58 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setType -}
setType :: HG3DClass -> EnumLightType -> IO ()
setType a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = cIntFromEnum a2} in 
  setType'_ a1' a2' >>= \res ->
  return ()
{-# LINE 63 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getType -}
getType :: HG3DClass -> IO (EnumLightType)
getType a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getType'_ a1' a2' >>= \res ->
  peekEnumUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 68 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setDiffuseColour -}
setDiffuseColour :: HG3DClass -> Float -> Float -> Float -> IO ()
setDiffuseColour a1 a2 a3 a4 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  setDiffuseColour'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 75 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setDiffuseColour2 -}
setDiffuseColour2 :: HG3DClass -> Colour -> IO ()
setDiffuseColour2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withColour a2 $ \a2' -> 
  setDiffuseColour2'_ a1' a2' >>= \res ->
  return ()
{-# LINE 80 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getDiffuseColour -}
getDiffuseColour :: HG3DClass -> IO (Colour)
getDiffuseColour a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getDiffuseColour'_ a1' a2' >>= \res ->
  peekColour  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 85 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setSpecularColour -}
setSpecularColour :: HG3DClass -> Float -> Float -> Float -> IO ()
setSpecularColour a1 a2 a3 a4 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  setSpecularColour'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 92 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setSpecularColour2 -}
setSpecularColour2 :: HG3DClass -> Colour -> IO ()
setSpecularColour2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withColour a2 $ \a2' -> 
  setSpecularColour2'_ a1' a2' >>= \res ->
  return ()
{-# LINE 97 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getSpecularColour -}
getSpecularColour :: HG3DClass -> IO (Colour)
getSpecularColour a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSpecularColour'_ a1' a2' >>= \res ->
  peekColour  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 102 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setAttenuation -}
setAttenuation :: HG3DClass -> Float -> Float -> Float -> Float -> IO ()
setAttenuation a1 a2 a3 a4 a5 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  let {a5' = realToFrac a5} in 
  setAttenuation'_ a1' a2' a3' a4' a5' >>= \res ->
  return ()
{-# LINE 110 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getAttenuationRange -}
getAttenuationRange :: HG3DClass -> IO (Float)
getAttenuationRange a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getAttenuationRange'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 115 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getAttenuationConstant -}
getAttenuationConstant :: HG3DClass -> IO (Float)
getAttenuationConstant a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getAttenuationConstant'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 120 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getAttenuationLinear -}
getAttenuationLinear :: HG3DClass -> IO (Float)
getAttenuationLinear a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getAttenuationLinear'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 125 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getAttenuationQuadric -}
getAttenuationQuadric :: HG3DClass -> IO (Float)
getAttenuationQuadric a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getAttenuationQuadric'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 130 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setPosition -}
setPosition :: HG3DClass -> Float -> Float -> Float -> IO ()
setPosition a1 a2 a3 a4 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  setPosition'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 137 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setPosition2 -}
setPosition2 :: HG3DClass -> Vec3 -> IO ()
setPosition2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  setPosition2'_ a1' a2' >>= \res ->
  return ()
{-# LINE 142 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getPosition -}
getPosition :: HG3DClass -> IO (Vec3)
getPosition a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getPosition'_ a1' a2' >>= \res ->
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 147 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setDirection -}
setDirection :: HG3DClass -> Float -> Float -> Float -> IO ()
setDirection a1 a2 a3 a4 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  setDirection'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 154 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setDirection2 -}
setDirection2 :: HG3DClass -> Vec3 -> IO ()
setDirection2 a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withVec3 a2 $ \a2' -> 
  setDirection2'_ a1' a2' >>= \res ->
  return ()
{-# LINE 159 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getDirection -}
getDirection :: HG3DClass -> IO (Vec3)
getDirection a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getDirection'_ a1' a2' >>= \res ->
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 164 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setSpotlightRange -}
setSpotlightRange :: HG3DClass -> Radians -> Radians -> Float -> IO ()
setSpotlightRange a1 a2 a3 a4 =
  withHG3DClass a1 $ \a1' -> 
  withRadians a2 $ \a2' -> 
  withRadians a3 $ \a3' -> 
  let {a4' = realToFrac a4} in 
  setSpotlightRange'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 171 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getSpotlightInnerAngle -}
getSpotlightInnerAngle :: HG3DClass -> IO (Radians)
getSpotlightInnerAngle a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSpotlightInnerAngle'_ a1' a2' >>= \res ->
  peekRadians  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 176 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getSpotlightOuterAngle -}
getSpotlightOuterAngle :: HG3DClass -> IO (Radians)
getSpotlightOuterAngle a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSpotlightOuterAngle'_ a1' a2' >>= \res ->
  peekRadians  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 181 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getSpotlightFalloff -}
getSpotlightFalloff :: HG3DClass -> IO (Float)
getSpotlightFalloff a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSpotlightFalloff'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 186 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setSpotlightInnerAngle -}
setSpotlightInnerAngle :: HG3DClass -> Radians -> IO ()
setSpotlightInnerAngle a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withRadians a2 $ \a2' -> 
  setSpotlightInnerAngle'_ a1' a2' >>= \res ->
  return ()
{-# LINE 191 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setSpotlightOuterAngle -}
setSpotlightOuterAngle :: HG3DClass -> Radians -> IO ()
setSpotlightOuterAngle a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withRadians a2 $ \a2' -> 
  setSpotlightOuterAngle'_ a1' a2' >>= \res ->
  return ()
{-# LINE 196 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setSpotlightFalloff -}
setSpotlightFalloff :: HG3DClass -> Float -> IO ()
setSpotlightFalloff a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  setSpotlightFalloff'_ a1' a2' >>= \res ->
  return ()
{-# LINE 201 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setSpotlightNearClipDistance -}
setSpotlightNearClipDistance :: HG3DClass -> Float -> IO ()
setSpotlightNearClipDistance a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  setSpotlightNearClipDistance'_ a1' a2' >>= \res ->
  return ()
{-# LINE 206 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getSpotlightNearClipDistance -}
getSpotlightNearClipDistance :: HG3DClass -> IO (Float)
getSpotlightNearClipDistance a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getSpotlightNearClipDistance'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 211 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setPowerScale -}
setPowerScale :: HG3DClass -> Float -> IO ()
setPowerScale a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  setPowerScale'_ a1' a2' >>= \res ->
  return ()
{-# LINE 216 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getPowerScale -}
getPowerScale :: HG3DClass -> IO (Float)
getPowerScale a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getPowerScale'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 221 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getMovableType -}
getMovableType :: HG3DClass -> IO (String)
getMovableType a1 =
  withHG3DClass a1 $ \a1' -> 
  alloc64k $ \a2' -> 
  getMovableType'_ a1' a2' >>= \res ->
  peekCString  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 226 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getDerivedPosition -}
getDerivedPosition :: HG3DClass -> Bool -> IO (Vec3)
getDerivedPosition a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  alloca $ \a3' -> 
  getDerivedPosition'_ a1' a2' a3' >>= \res ->
  peekVec3  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 232 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getDerivedDirection -}
getDerivedDirection :: HG3DClass -> IO (Vec3)
getDerivedDirection a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getDerivedDirection'_ a1' a2' >>= \res ->
  peekVec3  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 237 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setVisible -}
setVisible :: HG3DClass -> Bool -> IO ()
setVisible a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setVisible'_ a1' a2' >>= \res ->
  return ()
{-# LINE 242 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getBoundingRadius -}
getBoundingRadius :: HG3DClass -> IO (Float)
getBoundingRadius a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getBoundingRadius'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 247 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getTypeFlags -}
getTypeFlags :: HG3DClass -> IO (Int)
getTypeFlags a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getTypeFlags'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 252 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function resetCustomShadowCameraSetup -}
resetCustomShadowCameraSetup :: HG3DClass -> IO ()
resetCustomShadowCameraSetup a1 =
  withHG3DClass a1 $ \a1' -> 
  resetCustomShadowCameraSetup'_ a1' >>= \res ->
  return ()
{-# LINE 256 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setShadowFarDistance -}
setShadowFarDistance :: HG3DClass -> Float -> IO ()
setShadowFarDistance a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  setShadowFarDistance'_ a1' a2' >>= \res ->
  return ()
{-# LINE 261 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function resetShadowFarDistance -}
resetShadowFarDistance :: HG3DClass -> IO ()
resetShadowFarDistance a1 =
  withHG3DClass a1 $ \a1' -> 
  resetShadowFarDistance'_ a1' >>= \res ->
  return ()
{-# LINE 265 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getShadowFarDistance -}
getShadowFarDistance :: HG3DClass -> IO (Float)
getShadowFarDistance a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getShadowFarDistance'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 270 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getShadowFarDistanceSquared -}
getShadowFarDistanceSquared :: HG3DClass -> IO (Float)
getShadowFarDistanceSquared a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getShadowFarDistanceSquared'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 275 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setShadowNearClipDistance -}
setShadowNearClipDistance :: HG3DClass -> Float -> IO ()
setShadowNearClipDistance a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  setShadowNearClipDistance'_ a1' a2' >>= \res ->
  return ()
{-# LINE 280 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getShadowNearClipDistance -}
getShadowNearClipDistance :: HG3DClass -> IO (Float)
getShadowNearClipDistance a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getShadowNearClipDistance'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 285 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function setShadowFarClipDistance -}
setShadowFarClipDistance :: HG3DClass -> Float -> IO ()
setShadowFarClipDistance a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  setShadowFarClipDistance'_ a1' a2' >>= \res ->
  return ()
{-# LINE 290 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}

{- function getShadowFarClipDistance -}
getShadowFarClipDistance :: HG3DClass -> IO (Float)
getShadowFarClipDistance a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getShadowFarClipDistance'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 295 ".\\HGamer3D\\Bindings\\Ogre\\ClassLight.chs" #-}


foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_construct"
  new'_ :: ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_destruct"
  delete'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setType"
  setType'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getType"
  getType'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setDiffuseColour"
  setDiffuseColour'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setDiffuseColour2"
  setDiffuseColour2'_ :: ((HG3DClassPtr) -> ((ColourPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getDiffuseColour"
  getDiffuseColour'_ :: ((HG3DClassPtr) -> ((ColourPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setSpecularColour"
  setSpecularColour'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setSpecularColour2"
  setSpecularColour2'_ :: ((HG3DClassPtr) -> ((ColourPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getSpecularColour"
  getSpecularColour'_ :: ((HG3DClassPtr) -> ((ColourPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setAttenuation"
  setAttenuation'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (CFloat -> (IO ()))))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getAttenuationRange"
  getAttenuationRange'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getAttenuationConstant"
  getAttenuationConstant'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getAttenuationLinear"
  getAttenuationLinear'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getAttenuationQuadric"
  getAttenuationQuadric'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setPosition"
  setPosition'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setPosition2"
  setPosition2'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getPosition"
  getPosition'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setDirection"
  setDirection'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setDirection2"
  setDirection2'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getDirection"
  getDirection'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setSpotlightRange"
  setSpotlightRange'_ :: ((HG3DClassPtr) -> ((RadiansPtr) -> ((RadiansPtr) -> (CFloat -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getSpotlightInnerAngle"
  getSpotlightInnerAngle'_ :: ((HG3DClassPtr) -> ((RadiansPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getSpotlightOuterAngle"
  getSpotlightOuterAngle'_ :: ((HG3DClassPtr) -> ((RadiansPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getSpotlightFalloff"
  getSpotlightFalloff'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setSpotlightInnerAngle"
  setSpotlightInnerAngle'_ :: ((HG3DClassPtr) -> ((RadiansPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setSpotlightOuterAngle"
  setSpotlightOuterAngle'_ :: ((HG3DClassPtr) -> ((RadiansPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setSpotlightFalloff"
  setSpotlightFalloff'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setSpotlightNearClipDistance"
  setSpotlightNearClipDistance'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getSpotlightNearClipDistance"
  getSpotlightNearClipDistance'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setPowerScale"
  setPowerScale'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getPowerScale"
  getPowerScale'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getMovableType"
  getMovableType'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getDerivedPosition"
  getDerivedPosition'_ :: ((HG3DClassPtr) -> (CInt -> ((Vec3Ptr) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getDerivedDirection"
  getDerivedDirection'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setVisible"
  setVisible'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getBoundingRadius"
  getBoundingRadius'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getTypeFlags"
  getTypeFlags'_ :: ((HG3DClassPtr) -> ((Ptr CUInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_resetCustomShadowCameraSetup"
  resetCustomShadowCameraSetup'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setShadowFarDistance"
  setShadowFarDistance'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_resetShadowFarDistance"
  resetShadowFarDistance'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getShadowFarDistance"
  getShadowFarDistance'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getShadowFarDistanceSquared"
  getShadowFarDistanceSquared'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setShadowNearClipDistance"
  setShadowNearClipDistance'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getShadowNearClipDistance"
  getShadowNearClipDistance'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_setShadowFarClipDistance"
  setShadowFarClipDistance'_ :: ((HG3DClassPtr) -> (CFloat -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassLight.chs.h ogre_lgt_getShadowFarClipDistance"
  getShadowFarClipDistance'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))