{-# LINE 1 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}

-- | <http://gts.sourceforge.net/reference/gts-vertex-split.html>

module Bindings.Gts.ProgressiveAndHierarchicalSurfaces.VertexSplit 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/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}

foreign import ccall "inline_GTS_SPLIT_CLASS" c'GTS_SPLIT_CLASS
  :: Ptr a -> Ptr C'GtsSplitClass

{-# LINE 11 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}
foreign import ccall "inline_GTS_SPLIT" c'GTS_SPLIT
  :: Ptr a -> Ptr C'GtsSplit

{-# LINE 12 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}
foreign import ccall "inline_GTS_IS_SPLIT" c'GTS_IS_SPLIT
  :: Ptr a -> Ptr C'gboolean

{-# LINE 13 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}

foreign import ccall "inline_GTS_SPLIT_V1" c'GTS_SPLIT_V1
  :: Ptr C'GtsSplit -> IO (Ptr C'GtsObject)

{-# LINE 15 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}
foreign import ccall "inline_GTS_SPLIT_V2" c'GTS_SPLIT_V2
  :: Ptr C'GtsSplit -> IO (Ptr C'GtsObject)

{-# LINE 16 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}

foreign import ccall "gts_split_class" c'gts_split_class
  :: IO (Ptr C'GtsSplitClass)
foreign import ccall "&gts_split_class" p'gts_split_class
  :: FunPtr (IO (Ptr C'GtsSplitClass))

{-# LINE 18 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}
foreign import ccall "gts_split_new" c'gts_split_new
  :: Ptr C'GtsSplitClass -> Ptr C'GtsVertex -> Ptr C'GtsObject -> Ptr C'GtsObject -> IO (Ptr C'GtsSplit)
foreign import ccall "&gts_split_new" p'gts_split_new
  :: FunPtr (Ptr C'GtsSplitClass -> Ptr C'GtsVertex -> Ptr C'GtsObject -> Ptr C'GtsObject -> IO (Ptr C'GtsSplit))

{-# LINE 19 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}
foreign import ccall "gts_split_collapse" c'gts_split_collapse
  :: Ptr C'GtsSplit -> Ptr C'GtsEdgeClass -> Ptr C'GtsEHeap -> IO ()
foreign import ccall "&gts_split_collapse" p'gts_split_collapse
  :: FunPtr (Ptr C'GtsSplit -> Ptr C'GtsEdgeClass -> Ptr C'GtsEHeap -> IO ())

{-# LINE 20 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}
foreign import ccall "gts_split_expand" c'gts_split_expand
  :: Ptr C'GtsSplit -> Ptr C'GtsSurface -> Ptr C'GtsEdgeClass -> IO ()
foreign import ccall "&gts_split_expand" p'gts_split_expand
  :: FunPtr (Ptr C'GtsSplit -> Ptr C'GtsSurface -> Ptr C'GtsEdgeClass -> IO ())

{-# LINE 21 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}
foreign import ccall "gts_split_height" c'gts_split_height
  :: Ptr C'GtsSplit -> IO C'guint
foreign import ccall "&gts_split_height" p'gts_split_height
  :: FunPtr (Ptr C'GtsSplit -> IO C'guint)

{-# LINE 22 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}

foreign import ccall "gts_split_traverse" c'gts_split_traverse
  :: Ptr C'GtsSplit -> C'GTraverseType -> C'gint -> C'GtsSplitTraverseFunc -> C'gpointer -> IO ()
foreign import ccall "&gts_split_traverse" p'gts_split_traverse
  :: FunPtr (Ptr C'GtsSplit -> C'GTraverseType -> C'gint -> C'GtsSplitTraverseFunc -> C'gpointer -> IO ())

{-# LINE 24 "src/Bindings/Gts/ProgressiveAndHierarchicalSurfaces/VertexSplit.hsc" #-}