{-# LINE 1 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}

{-# LINE 3 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}

-- | <http://gts.sourceforge.net/reference/gts-out-of-core-simplification.html>

module Bindings.Gts.SurfaceOperations.OutOfCoreSimplification 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 10 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}

foreign import ccall "inline_GTS_CLUSTER_CLASS" c'GTS_CLUSTER_CLASS
  :: Ptr a -> Ptr C'GtsClusterClass

{-# LINE 12 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "inline_GTS_CLUSTER" c'GTS_CLUSTER
  :: Ptr a -> Ptr C'GtsCluster

{-# LINE 13 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "inline_GTS_IS_CLUSTER" c'GTS_IS_CLUSTER
  :: Ptr a -> Ptr C'gboolean

{-# LINE 14 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}

foreign import ccall "gts_cluster_class" c'gts_cluster_class
  :: IO (Ptr C'GtsClusterClass)
foreign import ccall "&gts_cluster_class" p'gts_cluster_class
  :: FunPtr (IO (Ptr C'GtsClusterClass))

{-# LINE 16 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "gts_cluster_add" c'gts_cluster_add
  :: Ptr C'GtsCluster -> Ptr C'GtsPoint -> C'gpointer -> IO ()
foreign import ccall "&gts_cluster_add" p'gts_cluster_add
  :: FunPtr (Ptr C'GtsCluster -> Ptr C'GtsPoint -> C'gpointer -> IO ())

{-# LINE 17 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "gts_cluster_update" c'gts_cluster_update
  :: Ptr C'GtsCluster -> IO ()
foreign import ccall "&gts_cluster_update" p'gts_cluster_update
  :: FunPtr (Ptr C'GtsCluster -> IO ())

{-# LINE 18 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}

foreign import ccall "inline_GTS_CLUSTER_GRID_CLASS" c'GTS_CLUSTER_GRID_CLASS
  :: Ptr a -> Ptr C'GtsClusterGridClass

{-# LINE 20 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "inline_GTS_CLUSTER_GRID" c'GTS_CLUSTER_GRID
  :: Ptr a -> Ptr C'GtsClusterGrid

{-# LINE 21 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "inline_GTS_IS_CLUSTER_GRID" c'GTS_IS_CLUSTER_GRID
  :: Ptr a -> Ptr C'gboolean

{-# LINE 22 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}

foreign import ccall "gts_cluster_grid_class" c'gts_cluster_grid_class
  :: IO (Ptr C'GtsClusterGridClass)
foreign import ccall "&gts_cluster_grid_class" p'gts_cluster_grid_class
  :: FunPtr (IO (Ptr C'GtsClusterGridClass))

{-# LINE 24 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "gts_cluster_grid_new" c'gts_cluster_grid_new
  :: Ptr C'GtsClusterGridClass -> Ptr C'GtsClusterClass -> Ptr C'GtsSurface -> Ptr C'GtsBBox -> C'gdouble -> IO (Ptr C'GtsClusterGrid)
foreign import ccall "&gts_cluster_grid_new" p'gts_cluster_grid_new
  :: FunPtr (Ptr C'GtsClusterGridClass -> Ptr C'GtsClusterClass -> Ptr C'GtsSurface -> Ptr C'GtsBBox -> C'gdouble -> IO (Ptr C'GtsClusterGrid))

{-# LINE 25 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}
foreign import ccall "gts_cluster_grid_add_triangle" c'gts_cluster_grid_add_triangle
  :: Ptr C'GtsClusterGrid -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> C'gpointer -> IO ()
foreign import ccall "&gts_cluster_grid_add_triangle" p'gts_cluster_grid_add_triangle
  :: FunPtr (Ptr C'GtsClusterGrid -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> C'gpointer -> IO ())

{-# LINE 26 "src/Bindings/Gts/SurfaceOperations/OutOfCoreSimplification.hsc" #-}