{-# LINE 1 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

{-# LINE 2 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

{-# LINE 3 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

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

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

foreign import ccall "&gts_allow_floating_vertices" p'gts_allow_floating_vertices
  :: Ptr (C'gboolean)

{-# LINE 12 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

foreign import ccall "inline_GTS_SEGMENT_CLASS" c'GTS_SEGMENT_CLASS
  :: Ptr a -> Ptr C'GtsSegmentClass

{-# LINE 14 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}
foreign import ccall "inline_GTS_SEGMENT" c'GTS_SEGMENT
  :: Ptr a -> Ptr C'GtsSegment

{-# LINE 15 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}
foreign import ccall "inline_GTS_IS_SEGMENT" c'GTS_IS_SEGMENT
  :: Ptr a -> Ptr C'gboolean

{-# LINE 16 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

foreign import ccall "gts_segment_class" c'gts_segment_class
  :: IO (Ptr C'GtsSegmentClass)
foreign import ccall "&gts_segment_class" p'gts_segment_class
  :: FunPtr (IO (Ptr C'GtsSegmentClass))

{-# LINE 18 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}
foreign import ccall "gts_segment_new" c'gts_segment_new
  :: Ptr C'GtsSegmentClass -> Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO (Ptr C'GtsSegment)
foreign import ccall "&gts_segment_new" p'gts_segment_new
  :: FunPtr (Ptr C'GtsSegmentClass -> Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO (Ptr C'GtsSegment))

{-# LINE 19 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

foreign import ccall "inline_gts_segments_are_identical" c'gts_segments_are_identical
  :: Ptr C'GtsSegment -> Ptr C'GtsSegment -> IO C'gboolean

{-# LINE 21 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

foreign import ccall "gts_segments_are_intersecting" c'gts_segments_are_intersecting
  :: Ptr C'GtsSegment -> Ptr C'GtsSegment -> IO C'GtsIntersect
foreign import ccall "&gts_segments_are_intersecting" p'gts_segments_are_intersecting
  :: FunPtr (Ptr C'GtsSegment -> Ptr C'GtsSegment -> IO C'GtsIntersect)

{-# LINE 23 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}
foreign import ccall "gts_segment_is_duplicate" c'gts_segment_is_duplicate
  :: Ptr C'GtsSegment -> IO (Ptr C'GtsSegment)
foreign import ccall "&gts_segment_is_duplicate" p'gts_segment_is_duplicate
  :: FunPtr (Ptr C'GtsSegment -> IO (Ptr C'GtsSegment))

{-# LINE 24 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}
foreign import ccall "gts_segment_is_ok" c'gts_segment_is_ok
  :: Ptr C'GtsSegment -> IO C'gboolean
foreign import ccall "&gts_segment_is_ok" p'gts_segment_is_ok
  :: FunPtr (Ptr C'GtsSegment -> IO C'gboolean)

{-# LINE 25 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

foreign import ccall "inline_gts_segment_connect" c'gts_segment_connect
  :: Ptr C'GtsSegment -> Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO C'gboolean

{-# LINE 27 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}
foreign import ccall "inline_gts_segments_touch" c'gts_segments_touch
  :: Ptr C'GtsSegment -> Ptr C'GtsSegment -> IO C'gboolean

{-# LINE 28 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}

foreign import ccall "gts_segments_from_vertices" c'gts_segments_from_vertices
  :: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&gts_segments_from_vertices" p'gts_segments_from_vertices
  :: FunPtr (Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 30 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}
foreign import ccall "gts_segment_midvertex" c'gts_segment_midvertex
  :: Ptr C'GtsSegment -> Ptr C'GtsVertexClass -> IO (Ptr C'GtsVertex)
foreign import ccall "&gts_segment_midvertex" p'gts_segment_midvertex
  :: FunPtr (Ptr C'GtsSegment -> Ptr C'GtsVertexClass -> IO (Ptr C'GtsVertex))

{-# LINE 31 "src/Bindings/Gts/GeometricalObjectHierarchy/Segments.hsc" #-}