module Bindings.GTS where
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
import Bindings.GLib.Fundamentals
import Bindings.GLib.Fundamentals.BasicTypes
c'GTS_1_OUT_2 = 0
c'GTS_1_OUT_2 :: (Num a) => a
c'GTS_1_IN_2 = 1
c'GTS_1_IN_2 :: (Num a) => a
c'GTS_2_OUT_1 = 2
c'GTS_2_OUT_1 :: (Num a) => a
c'GTS_2_IN_1 = 3
c'GTS_2_IN_1 :: (Num a) => a
foreign import ccall "inline_GTS_CHECK_VERSION" c'GTS_CHECK_VERSION
:: C'guint -> C'guint -> C'guint -> IO C'gboolean
foreign import ccall ">s_allow_floating_vertices" p'gts_allow_floating_vertices
:: Ptr (IO C'gboolean)
data C'GSList = C'GSList{
c'GSList'data :: C'gpointer
,
c'GSList'next :: Ptr C'GSList
} deriving (Eq,Show)
instance Storable C'GSList where
sizeOf _ = 8
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
return $ C'GSList v0 v1
poke p (C'GSList v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
return ()
data C'GList = C'GList{
} deriving (Eq,Show)
instance Storable C'GList where
sizeOf _ = 12
alignment = sizeOf
peek p = do
return $ C'GList
poke p (C'GList) = do
return ()
foreign import ccall "g_slist_alloc" c'g_slist_alloc
:: IO (Ptr C'GSList)
foreign import ccall "&g_slist_alloc" p'g_slist_alloc
:: FunPtr (IO (Ptr C'GSList))
foreign import ccall "g_slist_free" c'g_slist_free
:: Ptr C'GSList -> IO ()
foreign import ccall "&g_slist_free" p'g_slist_free
:: FunPtr (Ptr C'GSList -> IO ())
foreign import ccall "g_slist_free_1" c'g_slist_free_1
:: Ptr C'GSList -> IO ()
foreign import ccall "&g_slist_free_1" p'g_slist_free_1
:: FunPtr (Ptr C'GSList -> IO ())
foreign import ccall "inline_g_slist_next" c'g_slist_next
:: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "g_slist_last" c'g_slist_last
:: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_last" p'g_slist_last
:: FunPtr (Ptr C'GSList -> IO (Ptr C'GSList))
foreign import ccall "g_slist_length" c'g_slist_length
:: Ptr C'GSList -> IO C'guint
foreign import ccall "&g_slist_length" p'g_slist_length
:: FunPtr (Ptr C'GSList -> IO C'guint)
foreign import ccall "g_slist_nth" c'g_slist_nth
:: Ptr C'GSList -> C'guint -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_nth" p'g_slist_nth
:: FunPtr (Ptr C'GSList -> C'guint -> IO (Ptr C'GSList))
foreign import ccall "g_slist_append" c'g_slist_append
:: Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_append" p'g_slist_append
:: FunPtr (Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList))
foreign import ccall "g_slist_insert_before" c'g_slist_insert_before
:: Ptr C'GSList -> Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_insert_before" p'g_slist_insert_before
:: FunPtr (Ptr C'GSList -> Ptr C'GSList -> C'gpointer -> IO (Ptr C'GSList))
foreign import ccall "g_slist_insert" c'g_slist_insert
:: Ptr C'GSList -> C'gpointer -> C'gint -> IO (Ptr C'GSList)
foreign import ccall "&g_slist_insert" p'g_slist_insert
:: FunPtr (Ptr C'GSList -> C'gpointer -> C'gint -> IO (Ptr C'GSList))
type C'GtsObjectClassInitFunc = FunPtr (Ptr C'GtsObjectClass -> IO ())
foreign import ccall "wrapper" mk'GtsObjectClassInitFunc
:: (Ptr C'GtsObjectClass -> IO ()) -> IO C'GtsObjectClassInitFunc
foreign import ccall "dynamic" mK'GtsObjectClassInitFunc
:: C'GtsObjectClassInitFunc -> (Ptr C'GtsObjectClass -> IO ())
type C'GtsObjectInitFunc = FunPtr (Ptr C'GtsObject -> IO ())
foreign import ccall "wrapper" mk'GtsObjectInitFunc
:: (Ptr C'GtsObject -> IO ()) -> IO C'GtsObjectInitFunc
foreign import ccall "dynamic" mK'GtsObjectInitFunc
:: C'GtsObjectInitFunc -> (Ptr C'GtsObject -> IO ())
type C'GtsArgSetFunc = FunPtr (Ptr C'GtsObject -> IO ())
foreign import ccall "wrapper" mk'GtsArgSetFunc
:: (Ptr C'GtsObject -> IO ()) -> IO C'GtsArgSetFunc
foreign import ccall "dynamic" mK'GtsArgSetFunc
:: C'GtsArgSetFunc -> (Ptr C'GtsObject -> IO ())
type C'GtsArgGetFunc = FunPtr (Ptr C'GtsObject -> IO ())
foreign import ccall "wrapper" mk'GtsArgGetFunc
:: (Ptr C'GtsObject -> IO ()) -> IO C'GtsArgGetFunc
foreign import ccall "dynamic" mK'GtsArgGetFunc
:: C'GtsArgGetFunc -> (Ptr C'GtsObject -> IO ())
c'GTS_CLASS_NAME_LENGTH = 40
c'GTS_CLASS_NAME_LENGTH :: (Num a) => a
data C'GtsVector = C'GtsVector{
} deriving (Eq,Show)
instance Storable C'GtsVector where
sizeOf _ = 24
alignment = sizeOf
peek p = do
return $ C'GtsVector
poke p (C'GtsVector) = do
return ()
data C'GtsMatrix = C'GtsMatrix{
} deriving (Eq,Show)
instance Storable C'GtsMatrix where
sizeOf _ = 32
alignment = sizeOf
peek p = do
return $ C'GtsMatrix
poke p (C'GtsMatrix) = do
return ()
foreign import ccall "gts_matrix_new" c'gts_matrix_new
:: C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_new" p'gts_matrix_new
:: FunPtr (C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_assign" c'gts_matrix_assign
:: Ptr C'GtsMatrix -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_assign" p'gts_matrix_assign
:: FunPtr (Ptr C'GtsMatrix -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> C'gdouble -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_destroy" c'gts_matrix_destroy
:: Ptr C'GtsMatrix -> IO ()
foreign import ccall ">s_matrix_destroy" p'gts_matrix_destroy
:: FunPtr (Ptr C'GtsMatrix -> IO ())
foreign import ccall "gts_matrix_zero" c'gts_matrix_zero
:: Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_zero" p'gts_matrix_zero
:: FunPtr (Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_identity" c'gts_matrix_identity
:: Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_identity" p'gts_matrix_identity
:: FunPtr (Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_transpose" c'gts_matrix_transpose
:: Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_transpose" p'gts_matrix_transpose
:: FunPtr (Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_inverse" c'gts_matrix_inverse
:: Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_inverse" p'gts_matrix_inverse
:: FunPtr (Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_product" c'gts_matrix_product
:: Ptr C'GtsMatrix -> Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_product" p'gts_matrix_product
:: FunPtr (Ptr C'GtsMatrix -> Ptr C'GtsMatrix -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_scale" c'gts_matrix_scale
:: Ptr C'GtsMatrix -> Ptr C'GtsVector -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_scale" p'gts_matrix_scale
:: FunPtr (Ptr C'GtsMatrix -> Ptr C'GtsVector -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_translate" c'gts_matrix_translate
:: Ptr C'GtsMatrix -> Ptr C'GtsVector -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_translate" p'gts_matrix_translate
:: FunPtr (Ptr C'GtsMatrix -> Ptr C'GtsVector -> IO (Ptr C'GtsMatrix))
foreign import ccall "gts_matrix_rotate" c'gts_matrix_rotate
:: Ptr C'GtsMatrix -> Ptr C'GtsVector -> C'gdouble -> IO (Ptr C'GtsMatrix)
foreign import ccall ">s_matrix_rotate" p'gts_matrix_rotate
:: FunPtr (Ptr C'GtsMatrix -> Ptr C'GtsVector -> C'gdouble -> IO (Ptr C'GtsMatrix))
data C'GtsColor = C'GtsColor{
c'GtsColor'r :: C'gfloat
,
c'GtsColor'g :: C'gfloat
,
c'GtsColor'b :: C'gfloat
} deriving (Eq,Show)
instance Storable C'GtsColor where
sizeOf _ = 12
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
return $ C'GtsColor v0 v1 v2
poke p (C'GtsColor v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
return ()
type C'GtsFunc = FunPtr (C'gpointer -> C'gpointer -> IO C'gint)
foreign import ccall "wrapper" mk'GtsFunc
:: (C'gpointer -> C'gpointer -> IO C'gint) -> IO C'GtsFunc
foreign import ccall "dynamic" mK'GtsFunc
:: C'GtsFunc -> (C'gpointer -> C'gpointer -> IO C'gint)
type C'GtsVertexMergeFunc = FunPtr (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO C'gboolean)
foreign import ccall "wrapper" mk'GtsVertexMergeFunc
:: (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO C'gboolean) -> IO C'GtsVertexMergeFunc
foreign import ccall "dynamic" mK'GtsVertexMergeFunc
:: C'GtsVertexMergeFunc -> (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO C'gboolean)
data C'GtsFile = C'GtsFile{
c'GtsFile'line :: C'guint
,
c'GtsFile'pos :: C'guint
,
c'GtsFile'error :: Ptr C'gchar
} deriving (Eq,Show)
instance Storable C'GtsFile where
sizeOf _ = 64
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 12
v1 <- peekByteOff p 16
v2 <- peekByteOff p 28
return $ C'GtsFile v0 v1 v2
poke p (C'GtsFile v0 v1 v2) = do
pokeByteOff p 12 v0
pokeByteOff p 16 v1
pokeByteOff p 28 v2
return ()
data C'GtsFileVariable = C'GtsFileVariable{
} deriving (Eq,Show)
instance Storable C'GtsFileVariable where
sizeOf _ = 56
alignment = sizeOf
peek p = do
return $ C'GtsFileVariable
poke p (C'GtsFileVariable) = do
return ()
foreign import ccall "fopen" c'fopen
:: CString -> CString -> IO (Ptr CFile)
foreign import ccall "&fopen" p'fopen
:: FunPtr (CString -> CString -> IO (Ptr CFile))
foreign import ccall "fclose" c'fclose
:: Ptr CFile -> IO Int
foreign import ccall "&fclose" p'fclose
:: FunPtr (Ptr CFile -> IO Int)
foreign import ccall "gts_file_new" c'gts_file_new
:: Ptr CFile -> IO (Ptr C'GtsFile)
foreign import ccall ">s_file_new" p'gts_file_new
:: FunPtr (Ptr CFile -> IO (Ptr C'GtsFile))
foreign import ccall "gts_file_new_from_string" c'gts_file_new_from_string
:: Ptr C'gchar -> IO ( Ptr C'GtsFile)
foreign import ccall ">s_file_new_from_string" p'gts_file_new_from_string
:: FunPtr (Ptr C'gchar -> IO ( Ptr C'GtsFile))
foreign import ccall "gts_file_getc" c'gts_file_getc
:: Ptr C'GtsFile -> IO C'gint
foreign import ccall ">s_file_getc" p'gts_file_getc
:: FunPtr (Ptr C'GtsFile -> IO C'gint)
foreign import ccall "gts_file_destroy" c'gts_file_destroy
:: IO (Ptr C'GtsFile)
foreign import ccall ">s_file_destroy" p'gts_file_destroy
:: FunPtr (IO (Ptr C'GtsFile))
data C'GtsObjectClassInfo = C'GtsObjectClassInfo{
c'GtsObjectClassInfo'name :: [C'gchar]
,
c'GtsObjectClassInfo'object_size :: C'guint
,
c'GtsObjectClassInfo'class_size :: C'guint
} deriving (Eq,Show)
instance Storable C'GtsObjectClassInfo where
sizeOf _ = 64
alignment = sizeOf
peek p = do
v0 <- peekArray 40 (plusPtr p 0)
v1 <- peekByteOff p 40
v2 <- peekByteOff p 44
return $ C'GtsObjectClassInfo v0 v1 v2
poke p (C'GtsObjectClassInfo v0 v1 v2) = do
pokeArray (plusPtr p 0) (take 40 v0)
pokeByteOff p 40 v1
pokeByteOff p 44 v2
return ()
data C'GtsObjectClass = C'GtsObjectClass{
c'GtsObjectClass'info :: C'GtsObjectClassInfo
,
c'GtsObjectClass'parent_class :: Ptr C'GtsObjectClass
} deriving (Eq,Show)
instance Storable C'GtsObjectClass where
sizeOf _ = 92
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 64
return $ C'GtsObjectClass v0 v1
poke p (C'GtsObjectClass v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 64 v1
return ()
data C'GtsObject = C'GtsObject{
c'GtsObject'klass :: Ptr C'GtsObjectClass
,
c'GtsObject'flags :: C'guint32
} deriving (Eq,Show)
instance Storable C'GtsObject where
sizeOf _ = 12
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
return $ C'GtsObject v0 v1
poke p (C'GtsObject v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
return ()
data C'GtsPointClass = C'GtsPointClass{
c'GtsPointClass'parent_class :: C'GtsObjectClass
,
c'GtsPointClass'binary :: C'gboolean
} deriving (Eq,Show)
instance Storable C'GtsPointClass where
sizeOf _ = 96
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 92
return $ C'GtsPointClass v0 v1
poke p (C'GtsPointClass v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 92 v1
return ()
data C'GtsPoint = C'GtsPoint{
c'GtsPoint'object :: Ptr C'GtsObject
,
c'GtsPoint'x :: C'gdouble
,
c'GtsPoint'y :: C'gdouble
,
c'GtsPoint'z :: C'gdouble
} deriving (Eq,Show)
instance Storable C'GtsPoint where
sizeOf _ = 36
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 12
v2 <- peekByteOff p 20
v3 <- peekByteOff p 28
return $ C'GtsPoint v0 v1 v2 v3
poke p (C'GtsPoint v0 v1 v2 v3) = do
pokeByteOff p 0 v0
pokeByteOff p 12 v1
pokeByteOff p 20 v2
pokeByteOff p 28 v3
return ()
foreign import ccall "gts_object_class" c'gts_object_class
:: IO C'gpointer
foreign import ccall ">s_object_class" p'gts_object_class
:: FunPtr (IO C'gpointer)
foreign import ccall "gts_object_class_new" c'gts_object_class_new
:: Ptr C'GtsObjectClass -> Ptr C'GtsObjectClassInfo -> IO C'gpointer
foreign import ccall ">s_object_class_new" p'gts_object_class_new
:: FunPtr (Ptr C'GtsObjectClass -> Ptr C'GtsObjectClassInfo -> IO C'gpointer)
foreign import ccall "gts_object_check_cast" c'gts_object_check_cast
:: C'gpointer -> C'gpointer -> IO C'gpointer
foreign import ccall ">s_object_check_cast" p'gts_object_check_cast
:: FunPtr (C'gpointer -> C'gpointer -> IO C'gpointer)
foreign import ccall "gts_object_class_check_cast" c'gts_object_class_check_cast
:: C'gpointer -> C'gpointer -> IO C'gpointer
foreign import ccall ">s_object_class_check_cast" p'gts_object_class_check_cast
:: FunPtr (C'gpointer -> C'gpointer -> IO C'gpointer)
foreign import ccall "gts_object_class_from_name" c'gts_object_class_from_name
:: Ptr C'gchar -> IO (Ptr C'GtsObjectClass)
foreign import ccall ">s_object_class_from_name" p'gts_object_class_from_name
:: FunPtr (Ptr C'gchar -> IO (Ptr C'GtsObjectClass))
data C'GtsRange = C'GtsRange{
c'GtsRange'min :: C'gdouble
,
c'GtsRange'max :: C'gdouble
,
c'GtsRange'sum :: C'gdouble
,
c'GtsRange'sum2 :: C'gdouble
,
c'GtsRange'mean :: C'gdouble
,
c'GtsRange'stddev :: C'gdouble
,
c'GtsRange'n :: C'guint
} deriving (Eq,Show)
instance Storable C'GtsRange where
sizeOf _ = 52
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 16
v3 <- peekByteOff p 24
v4 <- peekByteOff p 32
v5 <- peekByteOff p 40
v6 <- peekByteOff p 48
return $ C'GtsRange v0 v1 v2 v3 v4 v5 v6
poke p (C'GtsRange v0 v1 v2 v3 v4 v5 v6) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
pokeByteOff p 16 v2
pokeByteOff p 24 v3
pokeByteOff p 32 v4
pokeByteOff p 40 v5
pokeByteOff p 48 v6
return ()
data C'GtsSegment = C'GtsSegment{
} deriving (Eq,Show)
instance Storable C'GtsSegment where
sizeOf _ = 20
alignment = sizeOf
peek p = do
return $ C'GtsSegment
poke p (C'GtsSegment) = do
return ()
data C'GtsTriangleClass = C'GtsTriangleClass{
} deriving (Eq,Show)
instance Storable C'GtsTriangleClass where
sizeOf _ = 92
alignment = sizeOf
peek p = do
return $ C'GtsTriangleClass
poke p (C'GtsTriangleClass) = do
return ()
data C'GtsTriangle = C'GtsTriangle{
c'GtsTriangle'e1 :: Ptr C'GtsEdge
,
c'GtsTriangle'e2 :: Ptr C'GtsEdge
,
c'GtsTriangle'e3 :: Ptr C'GtsEdge
} deriving (Eq,Show)
instance Storable C'GtsTriangle where
sizeOf _ = 24
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 12
v1 <- peekByteOff p 16
v2 <- peekByteOff p 20
return $ C'GtsTriangle v0 v1 v2
poke p (C'GtsTriangle v0 v1 v2) = do
pokeByteOff p 12 v0
pokeByteOff p 16 v1
pokeByteOff p 20 v2
return ()
foreign import ccall "gts_triangle_enclosing" c'gts_triangle_enclosing
:: Ptr C'GtsTriangleClass -> Ptr C'GSList -> C'gdouble -> IO (Ptr C'GtsTriangle)
foreign import ccall ">s_triangle_enclosing" p'gts_triangle_enclosing
:: FunPtr (Ptr C'GtsTriangleClass -> Ptr C'GSList -> C'gdouble -> IO (Ptr C'GtsTriangle))
foreign import ccall "gts_triangle_class" c'gts_triangle_class
:: IO (Ptr C'GtsTriangleClass)
foreign import ccall ">s_triangle_class" p'gts_triangle_class
:: FunPtr (IO (Ptr C'GtsTriangleClass))
foreign import ccall "gts_triangle_new" c'gts_triangle_new
:: Ptr C'GtsTriangleClass -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO (Ptr C'GtsTriangle)
foreign import ccall ">s_triangle_new" p'gts_triangle_new
:: FunPtr (Ptr C'GtsTriangleClass -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO (Ptr C'GtsTriangle))
foreign import ccall "gts_triangle_set" c'gts_triangle_set
:: Ptr C'GtsTriangleClass -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO ()
foreign import ccall ">s_triangle_set" p'gts_triangle_set
:: FunPtr (Ptr C'GtsTriangleClass -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO ())
foreign import ccall "gts_triangle_area" c'gts_triangle_area
:: Ptr C'GtsTriangle -> IO C'gdouble
foreign import ccall ">s_triangle_area" p'gts_triangle_area
:: FunPtr (Ptr C'GtsTriangle -> IO C'gdouble)
foreign import ccall "gts_triangle_perimeter" c'gts_triangle_perimeter
:: Ptr C'GtsTriangle -> IO C'gdouble
foreign import ccall ">s_triangle_perimeter" p'gts_triangle_perimeter
:: FunPtr (Ptr C'GtsTriangle -> IO C'gdouble)
foreign import ccall "gts_triangle_quality" c'gts_triangle_quality
:: Ptr C'GtsTriangle -> IO C'gdouble
foreign import ccall ">s_triangle_quality" p'gts_triangle_quality
:: FunPtr (Ptr C'GtsTriangle -> IO C'gdouble)
foreign import ccall "gts_triangle_normal" c'gts_triangle_normal
:: Ptr C'GtsTriangle -> Ptr C'gdouble -> Ptr C'gdouble -> Ptr C'gdouble -> IO ()
foreign import ccall ">s_triangle_normal" p'gts_triangle_normal
:: FunPtr (Ptr C'GtsTriangle -> Ptr C'gdouble -> Ptr C'gdouble -> Ptr C'gdouble -> IO ())
foreign import ccall "gts_triangle_revert" c'gts_triangle_revert
:: Ptr C'GtsTriangle -> IO ()
foreign import ccall ">s_triangle_revert" p'gts_triangle_revert
:: FunPtr (Ptr C'GtsTriangle -> IO ())
foreign import ccall "gts_triangle_orientation" c'gts_triangle_orientation
:: Ptr C'GtsTriangle -> IO C'gdouble
foreign import ccall ">s_triangle_orientation" p'gts_triangle_orientation
:: FunPtr (Ptr C'GtsTriangle -> IO C'gdouble)
foreign import ccall "gts_triangle_neighbors" c'gts_triangle_neighbors
:: Ptr C'GtsTriangle -> IO (Ptr C'GSList)
foreign import ccall ">s_triangle_neighbors" p'gts_triangle_neighbors
:: FunPtr (Ptr C'GtsTriangle -> IO (Ptr C'GSList))
foreign import ccall "gts_triangle_vertices_edges" c'gts_triangle_vertices_edges
:: Ptr C'GtsTriangle -> Ptr C'GtsEdge -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsEdge) -> Ptr (Ptr C'GtsEdge) -> Ptr (Ptr C'GtsEdge) -> IO ()
foreign import ccall ">s_triangle_vertices_edges" p'gts_triangle_vertices_edges
:: FunPtr (Ptr C'GtsTriangle -> Ptr C'GtsEdge -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsEdge) -> Ptr (Ptr C'GtsEdge) -> Ptr (Ptr C'GtsEdge) -> IO ())
foreign import ccall "gts_triangle_vertices" c'gts_triangle_vertices
:: Ptr C'GtsTriangle -> Ptr C'GtsEdge -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> IO ()
foreign import ccall ">s_triangle_vertices" p'gts_triangle_vertices
:: FunPtr (Ptr C'GtsTriangle -> Ptr C'GtsEdge -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> Ptr (Ptr C'GtsVertex) -> IO ())
foreign import ccall "gts_triangle_vertex_opposite" c'gts_triangle_vertex_opposite
:: Ptr C'GtsTriangle -> Ptr C'GtsEdge -> IO (Ptr C'GtsVertex)
foreign import ccall ">s_triangle_vertex_opposite" p'gts_triangle_vertex_opposite
:: FunPtr (Ptr C'GtsTriangle -> Ptr C'GtsEdge -> IO (Ptr C'GtsVertex))
foreign import ccall "gts_triangle_edge_opposite" c'gts_triangle_edge_opposite
:: Ptr C'GtsTriangle -> Ptr C'GtsVertex -> IO (Ptr C'GtsEdge)
foreign import ccall ">s_triangle_edge_opposite" p'gts_triangle_edge_opposite
:: FunPtr (Ptr C'GtsTriangle -> Ptr C'GtsVertex -> IO (Ptr C'GtsEdge))
foreign import ccall "gts_triangle_is_ok" c'gts_triangle_is_ok
:: Ptr C'GtsTriangle -> IO C'gboolean
foreign import ccall ">s_triangle_is_ok" p'gts_triangle_is_ok
:: FunPtr (Ptr C'GtsTriangle -> IO C'gboolean)
foreign import ccall "gts_triangle_circumcircle_center" c'gts_triangle_circumcircle_center
:: Ptr C'GtsTriangle -> Ptr C'GtsPointClass -> IO (Ptr C'GtsPoint)
foreign import ccall ">s_triangle_circumcircle_center" p'gts_triangle_circumcircle_center
:: FunPtr (Ptr C'GtsTriangle -> Ptr C'GtsPointClass -> IO (Ptr C'GtsPoint))
foreign import ccall "gts_triangle_interpolate_height" c'gts_triangle_interpolate_height
:: Ptr C'GtsTriangle -> Ptr C'GtsPoint -> IO ()
foreign import ccall ">s_triangle_interpolate_height" p'gts_triangle_interpolate_height
:: FunPtr (Ptr C'GtsTriangle -> Ptr C'GtsPoint -> IO ())
foreign import ccall "gts_triangles_from_edges" c'gts_triangles_from_edges
:: Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall ">s_triangles_from_edges" p'gts_triangles_from_edges
:: FunPtr (Ptr C'GSList -> IO (Ptr C'GSList))
data C'GtsVertex = C'GtsVertex{
c'GtsVertex'p :: C'GtsPoint
} deriving (Eq,Show)
instance Storable C'GtsVertex where
sizeOf _ = 40
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
return $ C'GtsVertex v0
poke p (C'GtsVertex v0) = do
pokeByteOff p 0 v0
return ()
data C'GtsVertexClass = C'GtsVertexClass{
} deriving (Eq,Show)
instance Storable C'GtsVertexClass where
sizeOf _ = 100
alignment = sizeOf
peek p = do
return $ C'GtsVertexClass
poke p (C'GtsVertexClass) = do
return ()
foreign import ccall "gts_range_init" c'gts_range_init
:: Ptr C'GtsRange -> IO ()
foreign import ccall ">s_range_init" p'gts_range_init
:: FunPtr (Ptr C'GtsRange -> IO ())
foreign import ccall "gts_range_reset" c'gts_range_reset
:: Ptr C'GtsRange -> IO ()
foreign import ccall ">s_range_reset" p'gts_range_reset
:: FunPtr (Ptr C'GtsRange -> IO ())
foreign import ccall "gts_range_add_value" c'gts_range_add_value
:: Ptr C'GtsRange -> C'gdouble -> IO ()
foreign import ccall ">s_range_add_value" p'gts_range_add_value
:: FunPtr (Ptr C'GtsRange -> C'gdouble -> IO ())
foreign import ccall "gts_range_update" c'gts_range_update
:: Ptr C'GtsRange -> IO ()
foreign import ccall ">s_range_update" p'gts_range_update
:: FunPtr (Ptr C'GtsRange -> IO ())
foreign import ccall "gts_point_class" c'gts_point_class
:: IO (Ptr C'GtsPointClass)
foreign import ccall ">s_point_class" p'gts_point_class
:: FunPtr (IO (Ptr C'GtsPointClass))
foreign import ccall "gts_point_new" c'gts_point_new
:: Ptr C'GtsPointClass -> C'gdouble -> C'gdouble -> C'gdouble -> IO ( Ptr C'GtsPoint )
foreign import ccall ">s_point_new" p'gts_point_new
:: FunPtr (Ptr C'GtsPointClass -> C'gdouble -> C'gdouble -> C'gdouble -> IO ( Ptr C'GtsPoint ))
foreign import ccall "gts_point_set" c'gts_point_set
:: Ptr C'GtsPoint -> C'gdouble -> C'gdouble -> C'gdouble -> IO ()
foreign import ccall ">s_point_set" p'gts_point_set
:: FunPtr (Ptr C'GtsPoint -> C'gdouble -> C'gdouble -> C'gdouble -> IO ())
foreign import ccall "inline_gts_point_is_in_rectangle" c'gts_point_is_in_rectangle
:: Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> IO C'gboolean
foreign import ccall "gts_vertex_class" c'gts_vertex_class
:: IO (Ptr C'GtsVertexClass)
foreign import ccall ">s_vertex_class" p'gts_vertex_class
:: FunPtr (IO (Ptr C'GtsVertexClass))
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 ">s_vertex_new" p'gts_vertex_new
:: FunPtr (Ptr C'GtsVertexClass -> C'gdouble -> C'gdouble -> C'gdouble -> IO (Ptr C'GtsVertex))
foreign import ccall "gts_vertex_is_unattached" c'gts_vertex_is_unattached
:: Ptr C'GtsVertex -> IO C'gboolean
foreign import ccall ">s_vertex_is_unattached" p'gts_vertex_is_unattached
:: FunPtr (Ptr C'GtsVertex -> IO C'gboolean)
foreign import ccall "gts_vertex_is_contact" c'gts_vertex_is_contact
:: Ptr C'GtsVertex -> C'gboolean -> IO C'guint
foreign import ccall ">s_vertex_is_contact" p'gts_vertex_is_contact
:: FunPtr (Ptr C'GtsVertex -> C'gboolean -> IO C'guint)
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 ">s_vertices_are_connected" p'gts_vertices_are_connected
:: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO (Ptr C'GtsSegment))
foreign import ccall "gts_vertex_replace" c'gts_vertex_replace
:: Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO ()
foreign import ccall ">s_vertex_replace" p'gts_vertex_replace
:: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO ())
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 ">s_vertex_neighbors" p'gts_vertex_neighbors
:: FunPtr (Ptr C'GtsVertex -> Ptr C'GSList -> Ptr C'GtsSurface -> IO (Ptr C'GSList))
foreign import ccall "gts_vertex_triangles" c'gts_vertex_triangles
:: Ptr C'GtsVertex -> Ptr C'GSList -> IO (Ptr C'GSList)
foreign import ccall ">s_vertex_triangles" p'gts_vertex_triangles
:: FunPtr (Ptr C'GtsVertex -> Ptr C'GSList -> IO (Ptr C'GSList))
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 ">s_vertex_faces" p'gts_vertex_faces
:: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsSurface -> Ptr C'GSList -> IO (Ptr C'GSList))
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 ">s_vertex_fan_oriented" p'gts_vertex_fan_oriented
:: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsSurface -> IO (Ptr C'GSList))
foreign import ccall "gts_vertex_encroaches_edge" c'gts_vertex_encroaches_edge
:: Ptr C'GtsVertex -> Ptr C'GtsEdge -> IO C'gboolean
foreign import ccall ">s_vertex_encroaches_edge" p'gts_vertex_encroaches_edge
:: FunPtr (Ptr C'GtsVertex -> Ptr C'GtsEdge -> IO C'gboolean)
foreign import ccall "gts_vertices_merge" c'gts_vertices_merge
:: Ptr C'GSList -> C'gdouble -> C'GtsVertexMergeFunc -> IO (Ptr C'GSList)
foreign import ccall ">s_vertices_merge" p'gts_vertices_merge
:: FunPtr (Ptr C'GSList -> C'gdouble -> C'GtsVertexMergeFunc -> IO (Ptr C'GSList))
data C'GtsVertexNormal = C'GtsVertexNormal{
c'GtsVertexNormal'n :: C'GtsVector
} deriving (Eq,Show)
instance Storable C'GtsVertexNormal where
sizeOf _ = 64
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 40
return $ C'GtsVertexNormal v0
poke p (C'GtsVertexNormal v0) = do
pokeByteOff p 40 v0
return ()
foreign import ccall "gts_vertex_normal_class" c'gts_vertex_normal_class
:: IO (Ptr C'GtsVertexClass)
foreign import ccall ">s_vertex_normal_class" p'gts_vertex_normal_class
:: FunPtr (IO (Ptr C'GtsVertexClass))
data C'GtsColorVertex = C'GtsColorVertex{
c'GtsColorVertex'c :: C'GtsColor
} deriving (Eq,Show)
instance Storable C'GtsColorVertex where
sizeOf _ = 52
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 40
return $ C'GtsColorVertex v0
poke p (C'GtsColorVertex v0) = do
pokeByteOff p 40 v0
return ()
foreign import ccall "gts_color_vertex_class" c'gts_color_vertex_class
:: IO (Ptr C'GtsVertexClass)
foreign import ccall ">s_color_vertex_class" p'gts_color_vertex_class
:: FunPtr (IO (Ptr C'GtsVertexClass))
data C'GtsSurface = C'GtsSurface{
c'GtsSurface'keep_faces :: C'gboolean
} deriving (Eq,Show)
instance Storable C'GtsSurface where
sizeOf _ = 32
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 28
return $ C'GtsSurface v0
poke p (C'GtsSurface v0) = do
pokeByteOff p 28 v0
return ()
data C'GtsSurfaceClass = C'GtsSurfaceClass{
} deriving (Eq,Show)
instance Storable C'GtsSurfaceClass where
sizeOf _ = 100
alignment = sizeOf
peek p = do
return $ C'GtsSurfaceClass
poke p (C'GtsSurfaceClass) = do
return ()
data C'GtsEdgeClass = C'GtsEdgeClass{
} deriving (Eq,Show)
instance Storable C'GtsEdgeClass where
sizeOf _ = 92
alignment = sizeOf
peek p = do
return $ C'GtsEdgeClass
poke p (C'GtsEdgeClass) = do
return ()
data C'GtsEdge = C'GtsEdge{
c'GtsEdge'triangles :: Ptr C'GSList
,
c'GtsEdge'segment :: Ptr C'GtsSegment
} deriving (Eq,Show)
instance Storable C'GtsEdge where
sizeOf _ = 24
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 20
v1 <- peekByteOff p 0
return $ C'GtsEdge v0 v1
poke p (C'GtsEdge v0 v1) = do
pokeByteOff p 20 v0
pokeByteOff p 0 v1
return ()
data C'GtsFaceClass = C'GtsFaceClass{
} deriving (Eq,Show)
instance Storable C'GtsFaceClass where
sizeOf _ = 92
alignment = sizeOf
peek p = do
return $ C'GtsFaceClass
poke p (C'GtsFaceClass) = do
return ()
data C'GtsFace = C'GtsFace{
} deriving (Eq,Show)
instance Storable C'GtsFace where
sizeOf _ = 28
alignment = sizeOf
peek p = do
return $ C'GtsFace
poke p (C'GtsFace) = do
return ()
data C'GtsSurfaceStats = C'GtsSurfaceStats{
} deriving (Eq,Show)
instance Storable C'GtsSurfaceStats where
sizeOf _ = 132
alignment = sizeOf
peek p = do
return $ C'GtsSurfaceStats
poke p (C'GtsSurfaceStats) = do
return ()
data C'GtsSurfaceQualityStats = C'GtsSurfaceQualityStats{
} deriving (Eq,Show)
instance Storable C'GtsSurfaceQualityStats where
sizeOf _ = 212
alignment = sizeOf
peek p = do
return $ C'GtsSurfaceQualityStats
poke p (C'GtsSurfaceQualityStats) = do
return ()
foreign import ccall "gts_face_class" c'gts_face_class
:: IO (Ptr C'GtsFaceClass)
foreign import ccall ">s_face_class" p'gts_face_class
:: FunPtr (IO (Ptr C'GtsFaceClass))
foreign import ccall "gts_edge_class" c'gts_edge_class
:: IO (Ptr C'GtsEdgeClass)
foreign import ccall ">s_edge_class" p'gts_edge_class
:: FunPtr (IO (Ptr C'GtsEdgeClass))
foreign import ccall "gts_surface_class" c'gts_surface_class
:: IO (Ptr C'GtsSurfaceClass)
foreign import ccall ">s_surface_class" p'gts_surface_class
:: FunPtr (IO (Ptr C'GtsSurfaceClass))
foreign import ccall "gts_surface_new" c'gts_surface_new
:: Ptr C'GtsSurfaceClass -> Ptr C'GtsFaceClass -> Ptr C'GtsEdgeClass -> Ptr C'GtsVertexClass -> IO (Ptr C'GtsSurface)
foreign import ccall ">s_surface_new" p'gts_surface_new
:: FunPtr (Ptr C'GtsSurfaceClass -> Ptr C'GtsFaceClass -> Ptr C'GtsEdgeClass -> Ptr C'GtsVertexClass -> IO (Ptr C'GtsSurface))
foreign import ccall "gts_surface_add_face" c'gts_surface_add_face
:: Ptr C'GtsSurface -> Ptr C'GtsFace -> IO ()
foreign import ccall ">s_surface_add_face" p'gts_surface_add_face
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsFace -> IO ())
foreign import ccall "gts_surface_read" c'gts_surface_read
:: Ptr C'GtsSurface -> Ptr C'GtsFile -> IO C'guint
foreign import ccall ">s_surface_read" p'gts_surface_read
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsFile -> IO C'guint)
foreign import ccall "gts_surface_remove_face" c'gts_surface_remove_face
:: Ptr C'GtsSurface -> Ptr C'GtsFace -> IO ()
foreign import ccall ">s_surface_remove_face" p'gts_surface_remove_face
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsFace -> IO ())
foreign import ccall "gts_surface_area" c'gts_surface_area
:: Ptr C'GtsSurface -> IO C'gdouble
foreign import ccall ">s_surface_area" p'gts_surface_area
:: FunPtr (Ptr C'GtsSurface -> IO C'gdouble)
foreign import ccall "gts_surface_stats" c'gts_surface_stats
:: Ptr C'GtsSurface -> Ptr C'GtsSurfaceStats -> IO ()
foreign import ccall ">s_surface_stats" p'gts_surface_stats
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsSurfaceStats -> IO ())
foreign import ccall "gts_surface_quality_stats" c'gts_surface_quality_stats
:: Ptr C'GtsSurface -> Ptr C'GtsSurfaceQualityStats -> IO ()
foreign import ccall ">s_surface_quality_stats" p'gts_surface_quality_stats
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsSurfaceQualityStats -> IO ())
foreign import ccall "gts_surface_foreach_vertex" c'gts_surface_foreach_vertex
:: Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO ()
foreign import ccall ">s_surface_foreach_vertex" p'gts_surface_foreach_vertex
:: FunPtr (Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO ())
foreign import ccall "gts_surface_foreach_edge" c'gts_surface_foreach_edge
:: Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO ()
foreign import ccall ">s_surface_foreach_edge" p'gts_surface_foreach_edge
:: FunPtr (Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO ())
foreign import ccall "gts_surface_foreach_face" c'gts_surface_foreach_face
:: Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO ()
foreign import ccall ">s_surface_foreach_face" p'gts_surface_foreach_face
:: FunPtr (Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO ())
foreign import ccall "gts_surface_foreach_face_remove" c'gts_surface_foreach_face_remove
:: Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO C'guint
foreign import ccall ">s_surface_foreach_face_remove" p'gts_surface_foreach_face_remove
:: FunPtr (Ptr C'GtsSurface -> C'GtsFunc -> C'gpointer -> IO C'guint)
foreign import ccall "gts_surface_generate_sphere" c'gts_surface_generate_sphere
:: Ptr C'GtsSurface -> C'guint -> IO ( Ptr C'GtsSurface )
foreign import ccall ">s_surface_generate_sphere" p'gts_surface_generate_sphere
:: FunPtr (Ptr C'GtsSurface -> C'guint -> IO ( Ptr C'GtsSurface ))
foreign import ccall "gts_surface_copy" c'gts_surface_copy
:: Ptr C'GtsSurface -> Ptr C'GtsSurface -> IO (Ptr C'GtsSurface )
foreign import ccall ">s_surface_copy" p'gts_surface_copy
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsSurface -> IO (Ptr C'GtsSurface ))
foreign import ccall "gts_surface_merge" c'gts_surface_merge
:: Ptr C'GtsSurface -> Ptr C'GtsSurface -> IO ()
foreign import ccall ">s_surface_merge" p'gts_surface_merge
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsSurface -> IO ())
foreign import ccall "gts_surface_is_manifold" c'gts_surface_is_manifold
:: Ptr C'GtsSurface -> IO C'gboolean
foreign import ccall ">s_surface_is_manifold" p'gts_surface_is_manifold
:: FunPtr (Ptr C'GtsSurface -> IO C'gboolean)
foreign import ccall "gts_surface_is_closed" c'gts_surface_is_closed
:: Ptr C'GtsSurface -> IO C'gboolean
foreign import ccall ">s_surface_is_closed" p'gts_surface_is_closed
:: FunPtr (Ptr C'GtsSurface -> IO C'gboolean)
foreign import ccall "gts_surface_is_orientable" c'gts_surface_is_orientable
:: Ptr C'GtsSurface -> IO C'gboolean
foreign import ccall ">s_surface_is_orientable" p'gts_surface_is_orientable
:: FunPtr (Ptr C'GtsSurface -> IO C'gboolean)
foreign import ccall "gts_surface_volume" c'gts_surface_volume
:: Ptr C'GtsSurface -> IO C'gdouble
foreign import ccall ">s_surface_volume" p'gts_surface_volume
:: FunPtr (Ptr C'GtsSurface -> IO C'gdouble)
foreign import ccall "gts_surface_center_of_mass" c'gts_surface_center_of_mass
:: Ptr C'GtsSurface -> Ptr C'GtsVector -> IO C'gdouble
foreign import ccall ">s_surface_center_of_mass" p'gts_surface_center_of_mass
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsVector -> IO C'gdouble)
foreign import ccall "gts_surface_center_of_area" c'gts_surface_center_of_area
:: Ptr C'GtsSurface -> Ptr C'GtsVector -> IO C'gdouble
foreign import ccall ">s_surface_center_of_area" p'gts_surface_center_of_area
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsVector -> IO C'gdouble)
foreign import ccall "gts_surface_vertex_number" c'gts_surface_vertex_number
:: Ptr C'GtsSurface -> IO C'guint
foreign import ccall ">s_surface_vertex_number" p'gts_surface_vertex_number
:: FunPtr (Ptr C'GtsSurface -> IO C'guint)
foreign import ccall "gts_surface_edge_number" c'gts_surface_edge_number
:: Ptr C'GtsSurface -> IO C'guint
foreign import ccall ">s_surface_edge_number" p'gts_surface_edge_number
:: FunPtr (Ptr C'GtsSurface -> IO C'guint)
foreign import ccall "gts_surface_face_number" c'gts_surface_face_number
:: Ptr C'GtsSurface -> IO C'guint
foreign import ccall ">s_surface_face_number" p'gts_surface_face_number
:: FunPtr (Ptr C'GtsSurface -> IO C'guint)
foreign import ccall "gts_surface_boundary" c'gts_surface_boundary
:: Ptr C'GtsSurface -> IO (Ptr C'GSList)
foreign import ccall ">s_surface_boundary" p'gts_surface_boundary
:: FunPtr (Ptr C'GtsSurface -> IO (Ptr C'GSList))
foreign import ccall "gts_surface_split" c'gts_surface_split
:: Ptr C'GtsSurface -> IO (Ptr C'GSList)
foreign import ccall ">s_surface_split" p'gts_surface_split
:: FunPtr (Ptr C'GtsSurface -> IO (Ptr C'GSList))
foreign import ccall "gts_surface_write" c'gts_surface_write
:: Ptr C'GtsSurface -> Ptr CFile -> IO ()
foreign import ccall ">s_surface_write" p'gts_surface_write
:: FunPtr (Ptr C'GtsSurface -> Ptr CFile -> IO ())
data C'GtsSurfaceInterClass = C'GtsSurfaceInterClass{
} deriving (Eq,Show)
instance Storable C'GtsSurfaceInterClass where
sizeOf _ = 92
alignment = sizeOf
peek p = do
return $ C'GtsSurfaceInterClass
poke p (C'GtsSurfaceInterClass) = do
return ()
data C'GtsSurfaceInter = C'GtsSurfaceInter{
c'GtsSurfaceInter's1 :: Ptr C'GtsSurface
,
c'GtsSurfaceInter's2 :: Ptr C'GtsSurface
,
c'GtsSurfaceInter'edges :: Ptr C'GSList
} deriving (Eq,Show)
instance Storable C'GtsSurfaceInter where
sizeOf _ = 24
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 12
v1 <- peekByteOff p 16
v2 <- peekByteOff p 20
return $ C'GtsSurfaceInter v0 v1 v2
poke p (C'GtsSurfaceInter v0 v1 v2) = do
pokeByteOff p 12 v0
pokeByteOff p 16 v1
pokeByteOff p 20 v2
return ()
data C'GNode = C'GNode{
} deriving (Eq,Show)
instance Storable C'GNode where
sizeOf _ = 20
alignment = sizeOf
peek p = do
return $ C'GNode
poke p (C'GNode) = do
return ()
foreign import ccall "gts_face_new" c'gts_face_new
:: Ptr C'GtsFaceClass -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO (Ptr C'GtsFace)
foreign import ccall ">s_face_new" p'gts_face_new
:: FunPtr (Ptr C'GtsFaceClass -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO (Ptr C'GtsFace))
foreign import ccall "gts_surface_inter_class" c'gts_surface_inter_class
:: IO (Ptr C'GtsSurfaceInterClass)
foreign import ccall ">s_surface_inter_class" p'gts_surface_inter_class
:: FunPtr (IO (Ptr C'GtsSurfaceInterClass))
foreign import ccall "gts_surface_inter_new" c'gts_surface_inter_new
:: Ptr C'GtsSurfaceInterClass -> Ptr C'GtsSurface -> Ptr C'GtsSurface -> Ptr C'GNode -> Ptr C'GNode -> C'gboolean -> C'gboolean -> IO (Ptr C'GtsSurfaceInter)
foreign import ccall ">s_surface_inter_new" p'gts_surface_inter_new
:: FunPtr (Ptr C'GtsSurfaceInterClass -> Ptr C'GtsSurface -> Ptr C'GtsSurface -> Ptr C'GNode -> Ptr C'GNode -> C'gboolean -> C'gboolean -> IO (Ptr C'GtsSurfaceInter))
foreign import ccall "gts_surface_inter_check" c'gts_surface_inter_check
:: Ptr C'GtsSurfaceInter -> Ptr C'gboolean -> IO C'gboolean
foreign import ccall ">s_surface_inter_check" p'gts_surface_inter_check
:: FunPtr (Ptr C'GtsSurfaceInter -> Ptr C'gboolean -> IO C'gboolean)
foreign import ccall "gts_surface_inter_boolean" c'gts_surface_inter_boolean
:: Ptr C'GtsSurfaceInter -> Ptr C'GtsSurface -> C'guint -> IO ()
foreign import ccall ">s_surface_inter_boolean" p'gts_surface_inter_boolean
:: FunPtr (Ptr C'GtsSurfaceInter -> Ptr C'GtsSurface -> C'guint -> IO ())
foreign import ccall "gts_surface_is_self_intersecting" c'gts_surface_is_self_intersecting
:: Ptr C'GtsSurface -> IO (Ptr C'GtsSurface)
foreign import ccall ">s_surface_is_self_intersecting" p'gts_surface_is_self_intersecting
:: FunPtr (Ptr C'GtsSurface -> IO (Ptr C'GtsSurface))
foreign import ccall "gts_surface_intersection" c'gts_surface_intersection
:: Ptr C'GtsSurface -> Ptr C'GtsSurface -> Ptr C'GNode -> Ptr C'GNode -> IO (Ptr C'GSList)
foreign import ccall ">s_surface_intersection" p'gts_surface_intersection
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsSurface -> Ptr C'GNode -> Ptr C'GNode -> IO (Ptr C'GSList))
foreign import ccall "gts_bb_tree_new" c'gts_bb_tree_new
:: Ptr C'GSList -> IO (Ptr C'GNode)
foreign import ccall ">s_bb_tree_new" p'gts_bb_tree_new
:: FunPtr (Ptr C'GSList -> IO (Ptr C'GNode))
foreign import ccall "gts_bb_tree_surface" c'gts_bb_tree_surface
:: Ptr C'GtsSurface -> IO (Ptr C'GNode)
foreign import ccall ">s_bb_tree_surface" p'gts_bb_tree_surface
:: FunPtr (Ptr C'GtsSurface -> IO (Ptr C'GNode))
foreign import ccall "gts_bb_tree_destroy" c'gts_bb_tree_destroy
:: Ptr C'GNode -> C'gboolean -> IO ()
foreign import ccall ">s_bb_tree_destroy" p'gts_bb_tree_destroy
:: FunPtr (Ptr C'GNode -> C'gboolean -> IO ())
foreign import ccall "gts_bb_tree_stabbed" c'gts_bb_tree_stabbed
:: Ptr C'GNode -> Ptr C'GtsPoint -> IO (Ptr C'GSList)
foreign import ccall ">s_bb_tree_stabbed" p'gts_bb_tree_stabbed
:: FunPtr (Ptr C'GNode -> Ptr C'GtsPoint -> IO (Ptr C'GSList))
foreign import ccall "gts_object_destroy" c'gts_object_destroy
:: Ptr C'GtsObject -> IO ()
foreign import ccall ">s_object_destroy" p'gts_object_destroy
:: FunPtr (Ptr C'GtsObject -> IO ())
type C'GtsEncroachFunc = FunPtr (Ptr C'GtsVertex -> Ptr C'GtsEdge -> Ptr C'GtsSurface -> C'gpointer -> IO C'gboolean)
foreign import ccall "wrapper" mk'GtsEncroachFunc
:: (Ptr C'GtsVertex -> Ptr C'GtsEdge -> Ptr C'GtsSurface -> C'gpointer -> IO C'gboolean) -> IO C'GtsEncroachFunc
foreign import ccall "dynamic" mK'GtsEncroachFunc
:: C'GtsEncroachFunc -> (Ptr C'GtsVertex -> Ptr C'GtsEdge -> Ptr C'GtsSurface -> C'gpointer -> IO C'gboolean)
type C'GtsKeyFunc = FunPtr (C'gpointer -> C'gpointer -> IO C'gdouble)
foreign import ccall "wrapper" mk'GtsKeyFunc
:: (C'gpointer -> C'gpointer -> IO C'gdouble) -> IO C'GtsKeyFunc
foreign import ccall "dynamic" mK'GtsKeyFunc
:: C'GtsKeyFunc -> (C'gpointer -> C'gpointer -> IO C'gdouble)
foreign import ccall "gts_constraint_class" c'gts_constraint_class
:: IO (Ptr C'GtsEdgeClass)
foreign import ccall ">s_constraint_class" p'gts_constraint_class
:: FunPtr (IO (Ptr C'GtsEdgeClass))
foreign import ccall "gts_point_locate" c'gts_point_locate
:: Ptr C'GtsPoint -> Ptr C'GtsSurface -> Ptr C'GtsFace -> IO (Ptr C'GtsFace)
foreign import ccall ">s_point_locate" p'gts_point_locate
:: FunPtr (Ptr C'GtsPoint -> Ptr C'GtsSurface -> Ptr C'GtsFace -> IO (Ptr C'GtsFace))
foreign import ccall "gts_edge_new" c'gts_edge_new
:: Ptr C'GtsEdgeClass -> Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO (Ptr C'GtsEdge)
foreign import ccall ">s_edge_new" p'gts_edge_new
:: FunPtr (Ptr C'GtsEdgeClass -> Ptr C'GtsVertex -> Ptr C'GtsVertex -> IO (Ptr C'GtsEdge))
foreign import ccall "gts_edge_replace" c'gts_edge_replace
:: Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO ()
foreign import ccall ">s_edge_replace" p'gts_edge_replace
:: FunPtr (Ptr C'GtsEdge -> Ptr C'GtsEdge -> IO ())
foreign import ccall "gts_edge_swap" c'gts_edge_swap
:: Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO ()
foreign import ccall ">s_edge_swap" p'gts_edge_swap
:: FunPtr (Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO ())
foreign import ccall "gts_segment_triangle_intersection" c'gts_segment_triangle_intersection
:: Ptr C'GtsSegment -> Ptr C'GtsTriangle -> C'gboolean -> IO (Ptr C'GtsPoint)
foreign import ccall ">s_segment_triangle_intersection" p'gts_segment_triangle_intersection
:: FunPtr (Ptr C'GtsSegment -> Ptr C'GtsTriangle -> C'gboolean -> IO (Ptr C'GtsPoint))
foreign import ccall "gts_point_in_triangle_circle" c'gts_point_in_triangle_circle
:: Ptr C'GtsPoint -> Ptr C'GtsTriangle -> IO C'gdouble
foreign import ccall ">s_point_in_triangle_circle" p'gts_point_in_triangle_circle
:: FunPtr (Ptr C'GtsPoint -> Ptr C'GtsTriangle -> IO C'gdouble)
foreign import ccall "gts_point_orientation" c'gts_point_orientation
:: Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> IO C'gdouble
foreign import ccall ">s_point_orientation" p'gts_point_orientation
:: FunPtr (Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> IO C'gdouble)
foreign import ccall "gts_point_is_inside_surface" c'gts_point_is_inside_surface
:: Ptr C'GtsPoint -> Ptr C'GNode -> C'gboolean -> IO C'gboolean
foreign import ccall ">s_point_is_inside_surface" p'gts_point_is_inside_surface
:: FunPtr (Ptr C'GtsPoint -> Ptr C'GNode -> C'gboolean -> IO C'gboolean)
foreign import ccall "gts_point_in_circle" c'gts_point_in_circle
:: Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> IO C'gdouble
foreign import ccall ">s_point_in_circle" p'gts_point_in_circle
:: FunPtr (Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> IO C'gdouble)
foreign import ccall "gts_point_orientation_3d" c'gts_point_orientation_3d
:: Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> IO C'gdouble
foreign import ccall ">s_point_orientation_3d" p'gts_point_orientation_3d
:: FunPtr (Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> Ptr C'GtsPoint -> IO C'gdouble)
data C'GtsBBoxClass = C'GtsBBoxClass{
} deriving (Eq,Show)
instance Storable C'GtsBBoxClass where
sizeOf _ = 92
alignment = sizeOf
peek p = do
return $ C'GtsBBoxClass
poke p (C'GtsBBoxClass) = do
return ()
foreign import ccall "gts_bbox_class" c'gts_bbox_class
:: IO (Ptr C'GtsBBoxClass)
foreign import ccall ">s_bbox_class" p'gts_bbox_class
:: FunPtr (IO (Ptr C'GtsBBoxClass))
data C'GtsBBox = C'GtsBBox{
c'GtsBBox'x1 :: C'gdouble
,
c'GtsBBox'y1 :: C'gdouble
,
c'GtsBBox'z1 :: C'gdouble
,
c'GtsBBox'x2 :: C'gdouble
,
c'GtsBBox'y2 :: C'gdouble
,
c'GtsBBox'z2 :: C'gdouble
,
c'GtsBBox'bounded :: C'gpointer
} deriving (Eq,Show)
instance Storable C'GtsBBox where
sizeOf _ = 64
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 16
v1 <- peekByteOff p 24
v2 <- peekByteOff p 32
v3 <- peekByteOff p 40
v4 <- peekByteOff p 48
v5 <- peekByteOff p 56
v6 <- peekByteOff p 12
return $ C'GtsBBox v0 v1 v2 v3 v4 v5 v6
poke p (C'GtsBBox v0 v1 v2 v3 v4 v5 v6) = do
pokeByteOff p 16 v0
pokeByteOff p 24 v1
pokeByteOff p 32 v2
pokeByteOff p 40 v3
pokeByteOff p 48 v4
pokeByteOff p 56 v5
pokeByteOff p 12 v6
return ()
foreign import ccall "gts_surface_strip" c'gts_surface_strip
:: Ptr C'GtsSurface -> IO (Ptr C'GSList)
foreign import ccall ">s_surface_strip" p'gts_surface_strip
:: FunPtr (Ptr C'GtsSurface -> IO (Ptr C'GSList))
foreign import ccall "gts_surface_distance" c'gts_surface_distance
:: Ptr C'GtsSurface -> Ptr C'GtsSurface -> C'gdouble -> Ptr C'GtsRange -> Ptr C'GtsRange -> IO ()
foreign import ccall ">s_surface_distance" p'gts_surface_distance
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsSurface -> C'gdouble -> Ptr C'GtsRange -> Ptr C'GtsRange -> IO ())
foreign import ccall "gts_bbox_surface" c'gts_bbox_surface
:: Ptr C'GtsBBoxClass -> Ptr C'GtsSurface -> IO ( Ptr C'GtsBBox )
foreign import ccall ">s_bbox_surface" p'gts_bbox_surface
:: FunPtr (Ptr C'GtsBBoxClass -> Ptr C'GtsSurface -> IO ( Ptr C'GtsBBox ))
foreign import ccall "gts_bboxes_are_overlapping" c'gts_bboxes_are_overlapping
:: Ptr C'GtsBBox -> Ptr C'GtsBBox -> IO C'gboolean
foreign import ccall ">s_bboxes_are_overlapping" p'gts_bboxes_are_overlapping
:: FunPtr (Ptr C'GtsBBox -> Ptr C'GtsBBox -> IO C'gboolean)
foreign import ccall "gts_delaunay_add_constraint" c'gts_delaunay_add_constraint
:: Ptr C'GtsSurface -> Ptr C'GtsEdge -> IO (Ptr C'GSList)
foreign import ccall ">s_delaunay_add_constraint" p'gts_delaunay_add_constraint
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsEdge -> IO (Ptr C'GSList))
foreign import ccall "gts_delaunay_check" c'gts_delaunay_check
:: Ptr C'GtsSurface -> IO (Ptr C'GtsFace)
foreign import ccall ">s_delaunay_check" p'gts_delaunay_check
:: FunPtr (Ptr C'GtsSurface -> IO (Ptr C'GtsFace))
foreign import ccall "gts_delaunay_remove_hull" c'gts_delaunay_remove_hull
:: Ptr C'GtsSurface -> IO ()
foreign import ccall ">s_delaunay_remove_hull" p'gts_delaunay_remove_hull
:: FunPtr (Ptr C'GtsSurface -> IO ())
foreign import ccall "gts_delaunay_conform" c'gts_delaunay_conform
:: Ptr C'GtsSurface -> C'gint -> C'GtsEncroachFunc -> C'gpointer -> IO C'guint
foreign import ccall ">s_delaunay_conform" p'gts_delaunay_conform
:: FunPtr (Ptr C'GtsSurface -> C'gint -> C'GtsEncroachFunc -> C'gpointer -> IO C'guint)
foreign import ccall "gts_delaunay_refine" c'gts_delaunay_refine
:: Ptr C'GtsSurface -> C'gint -> C'GtsEncroachFunc -> C'gpointer -> C'GtsKeyFunc -> C'gpointer -> IO C'guint
foreign import ccall ">s_delaunay_refine" p'gts_delaunay_refine
:: FunPtr (Ptr C'GtsSurface -> C'gint -> C'GtsEncroachFunc -> C'gpointer -> C'GtsKeyFunc -> C'gpointer -> IO C'guint)
foreign import ccall "gts_delaunay_add_vertex" c'gts_delaunay_add_vertex
:: Ptr C'GtsSurface -> Ptr C'GtsVertex -> Ptr C'GtsFace -> IO (Ptr C'GtsVertex)
foreign import ccall ">s_delaunay_add_vertex" p'gts_delaunay_add_vertex
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsVertex -> Ptr C'GtsFace -> IO (Ptr C'GtsVertex))
foreign import ccall "gts_delaunay_add_vertex_to_face" c'gts_delaunay_add_vertex_to_face
:: Ptr C'GtsSurface -> Ptr C'GtsVertex -> Ptr C'GtsFace -> IO (Ptr C'GtsVertex)
foreign import ccall ">s_delaunay_add_vertex_to_face" p'gts_delaunay_add_vertex_to_face
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsVertex -> Ptr C'GtsFace -> IO (Ptr C'GtsVertex))
foreign import ccall "gts_delaunay_remove_vertex" c'gts_delaunay_remove_vertex
:: Ptr C'GtsSurface -> Ptr C'GtsVertex -> IO ()
foreign import ccall ">s_delaunay_remove_vertex" p'gts_delaunay_remove_vertex
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsVertex -> IO ())
foreign import ccall "gts_surface_destroy" c'gts_surface_destroy
:: Ptr C'GtsSurface -> IO ()
foreign import ccall ">s_surface_destroy" p'gts_surface_destroy
:: FunPtr (Ptr C'GtsSurface -> IO ())
foreign import ccall "gts_triangle_destroy" c'gts_triangle_destroy
:: Ptr C'GtsTriangle -> IO ()
foreign import ccall ">s_triangle_destroy" p'gts_triangle_destroy
:: FunPtr (Ptr C'GtsTriangle -> IO ())
foreign import ccall "gts_vertex_destroy" c'gts_vertex_destroy
:: Ptr C'GtsVertex -> IO ()
foreign import ccall ">s_vertex_destroy" p'gts_vertex_destroy
:: FunPtr (Ptr C'GtsVertex -> IO ())
data C'GtsSurfaceTraverse = C'GtsSurfaceTraverse
foreign import ccall "gts_surface_traverse_new" c'gts_surface_traverse_new
:: Ptr C'GtsSurface -> Ptr C'GtsFace -> IO (Ptr C'GtsSurfaceTraverse)
foreign import ccall ">s_surface_traverse_new" p'gts_surface_traverse_new
:: FunPtr (Ptr C'GtsSurface -> Ptr C'GtsFace -> IO (Ptr C'GtsSurfaceTraverse))
foreign import ccall "gts_surface_traverse_next" c'gts_surface_traverse_next
:: Ptr C'GtsSurfaceTraverse -> Ptr C'guint -> IO (Ptr C'GtsFace)
foreign import ccall ">s_surface_traverse_next" p'gts_surface_traverse_next
:: FunPtr (Ptr C'GtsSurfaceTraverse -> Ptr C'guint -> IO (Ptr C'GtsFace))
foreign import ccall "gts_surface_traverse_destroy" c'gts_surface_traverse_destroy
:: Ptr C'GtsSurfaceTraverse -> IO ()
foreign import ccall ">s_surface_traverse_destroy" p'gts_surface_traverse_destroy
:: FunPtr (Ptr C'GtsSurfaceTraverse -> IO ())
type C'GtsRefineFunc = FunPtr (Ptr C'GtsEdge -> Ptr C'GtsVertexClass -> C'gpointer -> IO (Ptr C'GtsVertex))
foreign import ccall "wrapper" mk'GtsRefineFunc
:: (Ptr C'GtsEdge -> Ptr C'GtsVertexClass -> C'gpointer -> IO (Ptr C'GtsVertex)) -> IO C'GtsRefineFunc
foreign import ccall "dynamic" mK'GtsRefineFunc
:: C'GtsRefineFunc -> (Ptr C'GtsEdge -> Ptr C'GtsVertexClass -> C'gpointer -> IO (Ptr C'GtsVertex))
type C'GtsStopFunc = FunPtr (C'gdouble -> C'guint -> C'gpointer -> IO C'gboolean)
foreign import ccall "wrapper" mk'GtsStopFunc
:: (C'gdouble -> C'guint -> C'gpointer -> IO C'gboolean) -> IO C'GtsStopFunc
foreign import ccall "dynamic" mK'GtsStopFunc
:: C'GtsStopFunc -> (C'gdouble -> C'guint -> C'gpointer -> IO C'gboolean)
foreign import ccall "gts_surface_tessellate" c'gts_surface_tessellate
:: Ptr C'GtsSurface -> C'GtsRefineFunc -> C'gpointer -> IO ()
foreign import ccall ">s_surface_tessellate" p'gts_surface_tessellate
:: FunPtr (Ptr C'GtsSurface -> C'GtsRefineFunc -> C'gpointer -> IO ())
foreign import ccall "gts_surface_refine" c'gts_surface_refine
:: Ptr C'GtsSurface -> C'GtsKeyFunc -> C'gpointer -> C'GtsRefineFunc -> C'gpointer -> C'GtsStopFunc -> C'gpointer -> IO ()
foreign import ccall ">s_surface_refine" p'gts_surface_refine
:: FunPtr (Ptr C'GtsSurface -> C'GtsKeyFunc -> C'gpointer -> C'GtsRefineFunc -> C'gpointer -> C'GtsStopFunc -> C'gpointer -> IO ())
foreign import ccall "gts_edge_face_number" c'gts_edge_face_number
:: Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO C'guint
foreign import ccall ">s_edge_face_number" p'gts_edge_face_number
:: FunPtr (Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO C'guint)
foreign import ccall "gts_edge_manifold_faces" c'gts_edge_manifold_faces
:: Ptr C'GtsEdge -> Ptr C'GtsSurface -> Ptr (Ptr C'GtsFace) -> Ptr (Ptr C'GtsFace) -> C'gboolean
foreign import ccall ">s_edge_manifold_faces" p'gts_edge_manifold_faces
:: FunPtr (Ptr C'GtsEdge -> Ptr C'GtsSurface -> Ptr (Ptr C'GtsFace) -> Ptr (Ptr C'GtsFace) -> C'gboolean)
foreign import ccall "gts_edge_belongs_to_tetrahedron" c'gts_edge_belongs_to_tetrahedron
:: Ptr C'GtsEdge -> C'gboolean
foreign import ccall ">s_edge_belongs_to_tetrahedron" p'gts_edge_belongs_to_tetrahedron
:: FunPtr (Ptr C'GtsEdge -> C'gboolean)
foreign import ccall "gts_edges_from_vertices" c'gts_edges_from_vertices
:: Ptr C'GSList -> Ptr C'GtsSurface -> IO (Ptr C'GSList)
foreign import ccall ">s_edges_from_vertices" p'gts_edges_from_vertices
:: FunPtr (Ptr C'GSList -> Ptr C'GtsSurface -> IO (Ptr C'GSList))
foreign import ccall "gts_edges_merge" c'gts_edges_merge
:: Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall ">s_edges_merge" p'gts_edges_merge
:: FunPtr (Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "gts_edge_is_contact" c'gts_edge_is_contact
:: Ptr C'GtsEdge -> IO C'guint
foreign import ccall ">s_edge_is_contact" p'gts_edge_is_contact
:: FunPtr (Ptr C'GtsEdge -> IO C'guint)
foreign import ccall "gts_edge_is_boundary" c'gts_edge_is_boundary
:: Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO (Ptr C'GtsFace)
foreign import ccall ">s_edge_is_boundary" p'gts_edge_is_boundary
:: FunPtr (Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO (Ptr C'GtsFace))
foreign import ccall "gts_edge_has_any_parent_surface" c'gts_edge_has_any_parent_surface
:: Ptr C'GtsEdge -> IO (Ptr C'GtsFace)
foreign import ccall ">s_edge_has_any_parent_surface" p'gts_edge_has_any_parent_surface
:: FunPtr (Ptr C'GtsEdge -> IO (Ptr C'GtsFace))
foreign import ccall "gts_edge_has_parent_surface" c'gts_edge_has_parent_surface
:: Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO (Ptr C'GtsFace)
foreign import ccall ">s_edge_has_parent_surface" p'gts_edge_has_parent_surface
:: FunPtr (Ptr C'GtsEdge -> Ptr C'GtsSurface -> IO (Ptr C'GtsFace))
foreign import ccall "gts_edge_is_duplicate" c'gts_edge_is_duplicate
:: Ptr C'GtsEdge -> IO (Ptr C'GtsEdge)
foreign import ccall ">s_edge_is_duplicate" p'gts_edge_is_duplicate
:: FunPtr (Ptr C'GtsEdge -> IO (Ptr C'GtsEdge))
foreign import ccall "inline_gts_edge_is_unattached" c'gts_edge_is_unattached
:: Ptr C'GtsEdge -> IO C'gboolean
foreign import ccall "gts_face_has_parent_surface" c'gts_face_has_parent_surface
:: Ptr C'GtsFace -> Ptr C'GtsSurface -> IO C'gboolean
foreign import ccall ">s_face_has_parent_surface" p'gts_face_has_parent_surface
:: FunPtr (Ptr C'GtsFace -> Ptr C'GtsSurface -> IO C'gboolean)
foreign import ccall "gts_triangle_revert_func" c'gts_triangle_revert_func
:: C'gpointer -> C'gpointer -> IO C'gint
foreign import ccall ">s_triangle_revert_func" p'gts_triangle_revert_func
:: FunPtr (C'gpointer -> C'gpointer -> IO C'gint)
foreign import ccall "gts_finalize" c'gts_finalize
:: IO ()
foreign import ccall ">s_finalize" p'gts_finalize
:: FunPtr (IO ())
foreign import ccall "gts_object_reset_reserved" c'gts_object_reset_reserved
:: Ptr C'GtsObject -> IO ()
foreign import ccall ">s_object_reset_reserved" p'gts_object_reset_reserved
:: FunPtr (Ptr C'GtsObject -> IO ())
foreign import ccall "gts_object_attributes" c'gts_object_attributes
:: Ptr C'GtsObject -> Ptr C'GtsObject -> IO ()
foreign import ccall ">s_object_attributes" p'gts_object_attributes
:: FunPtr (Ptr C'GtsObject -> Ptr C'GtsObject -> IO ())
foreign import ccall "gts_object_clone" c'gts_object_clone
:: Ptr C'GtsObject -> IO (Ptr C'GtsObject)
foreign import ccall ">s_object_clone" p'gts_object_clone
:: FunPtr (Ptr C'GtsObject -> IO (Ptr C'GtsObject))