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

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

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

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

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

foreign import ccall "inline_GTS_VERTEX_CLASS" c'GTS_VERTEX_CLASS
  :: Ptr a -> Ptr C'GtsVertexClass

{-# LINE 12 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "inline_GTS_VERTEX" c'GTS_VERTEX
  :: Ptr a -> Ptr C'GtsVertex

{-# LINE 13 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "inline_GTS_IS_VERTEX" c'GTS_IS_VERTEX
  :: Ptr a -> Ptr C'gboolean

{-# LINE 14 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}

foreign import ccall "gts_vertex_class" c'gts_vertex_class
  :: IO (Ptr C'GtsVertexClass)
foreign import ccall "&gts_vertex_class" p'gts_vertex_class
  :: FunPtr (IO (Ptr C'GtsVertexClass))

{-# LINE 16 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_new" c'gts_vertex_new
  :: Ptr C'GtsVertexClass -> C'gdouble -> C'gdouble -> C'gdouble -> IO (Ptr C'GtsVertex)
foreign import ccall "&gts_vertex_new" p'gts_vertex_new
  :: FunPtr (Ptr C'GtsVertexClass -> C'gdouble -> C'gdouble -> C'gdouble -> IO (Ptr C'GtsVertex))

{-# LINE 17 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_is_unattached" c'gts_vertex_is_unattached
  :: Ptr C'GtsVertex -> IO C'gboolean
foreign import ccall "&gts_vertex_is_unattached" p'gts_vertex_is_unattached
  :: FunPtr (Ptr C'GtsVertex -> IO C'gboolean)

{-# LINE 18 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_is_boundary" c'gts_vertex_is_boundary
  :: Ptr C'GtsVertex -> Ptr C'GtsSurface -> IO C'gboolean
foreign import ccall "&gts_vertex_is_boundary" p'gts_vertex_is_boundary
  :: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsSurface -> IO C'gboolean)

{-# LINE 19 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_is_contact" c'gts_vertex_is_contact
  :: Ptr C'GtsVertex -> C'gboolean -> IO C'guint
foreign import ccall "&gts_vertex_is_contact" p'gts_vertex_is_contact
  :: FunPtr (Ptr C'GtsVertex -> C'gboolean -> IO C'guint)

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

{-# LINE 21 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_replace" c'gts_vertex_replace
  :: Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO ()
foreign import ccall "&gts_vertex_replace" p'gts_vertex_replace
  :: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO ())

{-# LINE 22 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_neighbors" c'gts_vertex_neighbors
  :: Ptr C'GtsVertex -> Ptr C'GSList -> Ptr C'GtsSurface -> IO (Ptr C'GSList)
foreign import ccall "&gts_vertex_neighbors" p'gts_vertex_neighbors
  :: FunPtr (Ptr C'GtsVertex -> Ptr C'GSList -> Ptr C'GtsSurface -> IO (Ptr C'GSList))

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

{-# LINE 24 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_faces" c'gts_vertex_faces
  :: Ptr C'GtsVertex -> Ptr C'GtsSurface -> Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&gts_vertex_faces" p'gts_vertex_faces
  :: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsSurface -> Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 25 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_fan_oriented" c'gts_vertex_fan_oriented
  :: Ptr C'GtsVertex -> Ptr C'GtsSurface -> IO (Ptr C'GSList)
foreign import ccall "&gts_vertex_fan_oriented" p'gts_vertex_fan_oriented
  :: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsSurface -> IO (Ptr C'GSList))

{-# LINE 26 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertex_encroaches_edge" c'gts_vertex_encroaches_edge
  :: Ptr C'GtsVertex -> Ptr C'GtsEdge -> IO C'gboolean
foreign import ccall "&gts_vertex_encroaches_edge" p'gts_vertex_encroaches_edge
  :: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsEdge -> IO C'gboolean)

{-# LINE 27 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertices_from_segments" c'gts_vertices_from_segments
  :: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&gts_vertices_from_segments" p'gts_vertices_from_segments
  :: FunPtr (Ptr C'GSList -> IO (Ptr C'GSList))

{-# LINE 28 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}
foreign import ccall "gts_vertices_merge" c'gts_vertices_merge
  :: Ptr C'GList -> C'gdouble -> FunPtr (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO C'gboolean) -> IO (Ptr C'GList)
foreign import ccall "&gts_vertices_merge" p'gts_vertices_merge
  :: FunPtr (Ptr C'GList -> C'gdouble -> FunPtr (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO C'gboolean) -> IO (Ptr C'GList))

{-# LINE 29 "src/Bindings/Gts/GeometricalObjectHierarchy/Vertices.hsc" #-}