{-# LINE 1 "src/Bindings/Gts/GeometricalDataStructures/KdTrees.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/GeometricalDataStructures/KdTrees.hsc" #-}

-- | <http://gts.sourceforge.net/reference/gts-kd-trees.html>

module Bindings.Gts.GeometricalDataStructures.KdTrees where
import Bindings.GLib
import Bindings.Gts.Types
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 "src/Bindings/Gts/GeometricalDataStructures/KdTrees.hsc" #-}

foreign import ccall "gts_kdtree_new" c'gts_kdtree_new
  :: Ptr C'GPtrArray -> FunPtr (Ptr a -> Ptr a -> IO CInt) -> IO (Ptr C'GNode)
foreign import ccall "&gts_kdtree_new" p'gts_kdtree_new
  :: FunPtr (Ptr C'GPtrArray -> FunPtr (Ptr a -> Ptr a -> IO CInt) -> IO (Ptr C'GNode))

{-# LINE 11 "src/Bindings/Gts/GeometricalDataStructures/KdTrees.hsc" #-}
foreign import ccall "gts_kdtree_range" c'gts_kdtree_range
  :: Ptr C'GNode -> Ptr C'GtsBBox -> FunPtr (Ptr a -> Ptr a -> IO CInt) -> IO (Ptr C'GSList)
foreign import ccall "&gts_kdtree_range" p'gts_kdtree_range
  :: FunPtr (Ptr C'GNode -> Ptr C'GtsBBox -> FunPtr (Ptr a -> Ptr a -> IO CInt) -> IO (Ptr C'GSList))

{-# LINE 12 "src/Bindings/Gts/GeometricalDataStructures/KdTrees.hsc" #-}

foreign import ccall "inline_gts_kdtree_destroy" c'gts_kdtree_destroy
  :: Ptr C'GNode -> IO ()

{-# LINE 14 "src/Bindings/Gts/GeometricalDataStructures/KdTrees.hsc" #-}