{-# LINE 1 "CV/Bindings/Iterators.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LINE 2 "CV/Bindings/Iterators.hsc" #-}
module CV.Bindings.Iterators where

import Foreign.Ptr
import CV.Bindings.Types
import CV.Image(BareImage)

import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 9 "CV/Bindings/Iterators.hsc" #-}


{-# LINE 11 "CV/Bindings/Iterators.hsc" #-}

{-# LINE 12 "CV/Bindings/Iterators.hsc" #-}


{-# LINE 14 "CV/Bindings/Iterators.hsc" #-}

{-# LINE 15 "CV/Bindings/Iterators.hsc" #-}
data C'F32_image_iterator = C'F32_image_iterator{
  c'F32_image_iterator'image_data :: Ptr Float
} deriving (Eq,Show)
p'F32_image_iterator'image_data p = plusPtr p 0
p'F32_image_iterator'image_data :: Ptr (C'F32_image_iterator) -> Ptr (Ptr Float)
instance Storable C'F32_image_iterator where
  sizeOf _ = 36
  alignment _ = 4
  peek p = do
    v0 <- peekByteOff p 0
    return $ C'F32_image_iterator v0
  poke p (C'F32_image_iterator v0) = do
    pokeByteOff p 0 v0
    return ()

{-# LINE 16 "CV/Bindings/Iterators.hsc" #-}

foreign import ccall "alloc_F32_image_iterator" c'alloc_F32_image_iterator
  :: IO (Ptr C'F32_image_iterator)
foreign import ccall "&alloc_F32_image_iterator" p'alloc_F32_image_iterator
  :: FunPtr (IO (Ptr C'F32_image_iterator))

{-# LINE 18 "CV/Bindings/Iterators.hsc" #-}
foreign import ccall "free_F32_image_iterator" c'free_F32_image_iterator
  :: Ptr C'F32_image_iterator -> IO ()
foreign import ccall "&free_F32_image_iterator" p'free_F32_image_iterator
  :: FunPtr (Ptr C'F32_image_iterator -> IO ())

{-# LINE 19 "CV/Bindings/Iterators.hsc" #-}
foreign import ccall "F32_create_rowwise_iterator" c'F32_create_rowwise_iterator
  :: Ptr C'F32_image_iterator -> Ptr BareImage -> IO ()
foreign import ccall "&F32_create_rowwise_iterator" p'F32_create_rowwise_iterator
  :: FunPtr (Ptr C'F32_image_iterator -> Ptr BareImage -> IO ())

{-# LINE 20 "CV/Bindings/Iterators.hsc" #-}
foreign import ccall "F32_next" c'F32_next
  :: Ptr C'F32_image_iterator -> IO (Ptr C'F32_image_iterator)
foreign import ccall "&F32_next" p'F32_next
  :: FunPtr (Ptr C'F32_image_iterator -> IO (Ptr C'F32_image_iterator))

{-# LINE 21 "CV/Bindings/Iterators.hsc" #-}
foreign import ccall "F32_val" c'F32_val
  :: Ptr C'F32_image_iterator -> Ptr CFloat
foreign import ccall "&F32_val" p'F32_val
  :: FunPtr (Ptr C'F32_image_iterator -> Ptr CFloat)

{-# LINE 22 "CV/Bindings/Iterators.hsc" #-}
foreign import ccall "F32_rowwise_pos" c'F32_rowwise_pos
  :: Ptr C'F32_image_iterator -> Ptr C'CvPoint
foreign import ccall "&F32_rowwise_pos" p'F32_rowwise_pos
  :: FunPtr (Ptr C'F32_image_iterator -> Ptr C'CvPoint)

{-# LINE 23 "CV/Bindings/Iterators.hsc" #-}