module Box3D.DynamicTree
( create
, destroy
, createProxy
, destroyProxy
, moveProxy
, enlargeProxy
, setCategoryBits
, getCategoryBits
, query
, queryClosest
, rayCast
, boxCast
, boxCastInto
, validate
, getHeight
, getAreaRatio
, getRootBounds
, getRootBoundsInto
, getProxyCount
, rebuild
, getByteCount
, validateNoEnlarged
, save
, load
)
where
import Foreign
import Foreign.C.Types (CInt(..), CBool(..))
import Foreign.C.String (CString)
import Box3D.MathTypes (AABB, Vec3)
import Box3D.Tags (BoxCastInput, DynamicTree, TreeBoxCastCallbackFcn, TreeQueryCallbackFcn, TreeQueryClosestCallbackFcn, TreeRayCastCallbackFcn)
import Box3D.Types (RayCastInput, TreeStats)
foreign import ccall unsafe "hsg_b3DynamicTree_Create"
c_b3DynamicTree_Create :: CInt -> Ptr DynamicTree -> IO ()
foreign import ccall unsafe "b3DynamicTree_Destroy"
c_b3DynamicTree_Destroy :: Ptr DynamicTree -> IO ()
foreign import ccall unsafe "hsg_b3DynamicTree_CreateProxy"
c_b3DynamicTree_CreateProxy :: Ptr DynamicTree -> Ptr AABB -> Word64 -> Word64 -> IO CInt
foreign import ccall unsafe "b3DynamicTree_DestroyProxy"
c_b3DynamicTree_DestroyProxy :: Ptr DynamicTree -> CInt -> IO ()
foreign import ccall unsafe "hsg_b3DynamicTree_MoveProxy"
c_b3DynamicTree_MoveProxy :: Ptr DynamicTree -> CInt -> Ptr AABB -> IO ()
foreign import ccall unsafe "hsg_b3DynamicTree_EnlargeProxy"
c_b3DynamicTree_EnlargeProxy :: Ptr DynamicTree -> CInt -> Ptr AABB -> IO ()
foreign import ccall unsafe "b3DynamicTree_SetCategoryBits"
c_b3DynamicTree_SetCategoryBits :: Ptr DynamicTree -> CInt -> Word64 -> IO ()
foreign import ccall unsafe "b3DynamicTree_GetCategoryBits"
c_b3DynamicTree_GetCategoryBits :: Ptr DynamicTree -> CInt -> IO Word64
foreign import ccall safe "hsg_b3DynamicTree_Query"
c_b3DynamicTree_Query :: Ptr DynamicTree -> Ptr AABB -> Word64 -> CBool -> FunPtr TreeQueryCallbackFcn -> Ptr () -> Ptr TreeStats -> IO ()
foreign import ccall safe "hsg_b3DynamicTree_QueryClosest"
c_b3DynamicTree_QueryClosest :: Ptr DynamicTree -> Ptr Vec3 -> Word64 -> CBool -> FunPtr TreeQueryClosestCallbackFcn -> Ptr () -> Ptr Float -> Ptr TreeStats -> IO ()
foreign import ccall safe "hsg_b3DynamicTree_RayCast"
c_b3DynamicTree_RayCast :: Ptr DynamicTree -> Ptr RayCastInput -> Word64 -> CBool -> FunPtr TreeRayCastCallbackFcn -> Ptr () -> Ptr TreeStats -> IO ()
foreign import ccall safe "hsg_b3DynamicTree_BoxCast"
c_b3DynamicTree_BoxCast :: Ptr DynamicTree -> Ptr BoxCastInput -> Word64 -> CBool -> FunPtr TreeBoxCastCallbackFcn -> Ptr () -> Ptr TreeStats -> IO ()
foreign import ccall unsafe "b3DynamicTree_Validate"
c_b3DynamicTree_Validate :: Ptr DynamicTree -> IO ()
foreign import ccall unsafe "b3DynamicTree_GetHeight"
c_b3DynamicTree_GetHeight :: Ptr DynamicTree -> IO CInt
foreign import ccall unsafe "b3DynamicTree_GetAreaRatio"
c_b3DynamicTree_GetAreaRatio :: Ptr DynamicTree -> IO Float
foreign import ccall unsafe "hsg_b3DynamicTree_GetRootBounds"
c_b3DynamicTree_GetRootBounds :: Ptr DynamicTree -> Ptr AABB -> IO ()
foreign import ccall unsafe "b3DynamicTree_GetProxyCount"
c_b3DynamicTree_GetProxyCount :: Ptr DynamicTree -> IO CInt
foreign import ccall unsafe "b3DynamicTree_Rebuild"
c_b3DynamicTree_Rebuild :: Ptr DynamicTree -> CBool -> IO CInt
foreign import ccall unsafe "b3DynamicTree_GetByteCount"
c_b3DynamicTree_GetByteCount :: Ptr DynamicTree -> IO CInt
foreign import ccall unsafe "b3DynamicTree_ValidateNoEnlarged"
c_b3DynamicTree_ValidateNoEnlarged :: Ptr DynamicTree -> IO ()
foreign import ccall unsafe "b3DynamicTree_Save"
c_b3DynamicTree_Save :: Ptr DynamicTree -> CString -> IO ()
foreign import ccall unsafe "hsg_b3DynamicTree_Load"
c_b3DynamicTree_Load :: CString -> Float -> Ptr DynamicTree -> IO ()
create
:: Int
-> Ptr DynamicTree
-> IO ()
create :: Int -> Ptr DynamicTree -> IO ()
create Int
a0 Ptr DynamicTree
out =
CInt -> Ptr DynamicTree -> IO ()
c_b3DynamicTree_Create (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a0) Ptr DynamicTree
out
destroy
:: Ptr DynamicTree
-> IO ()
destroy :: Ptr DynamicTree -> IO ()
destroy Ptr DynamicTree
a0 =
Ptr DynamicTree -> IO ()
c_b3DynamicTree_Destroy Ptr DynamicTree
a0
createProxy
:: Ptr DynamicTree
-> AABB
-> Word64
-> Word64
-> IO Int
createProxy :: Ptr DynamicTree -> AABB -> Word64 -> Word64 -> IO Int
createProxy Ptr DynamicTree
a0 AABB
a1 Word64
a2 Word64
a3 =
AABB -> (Ptr AABB -> IO Int) -> IO Int
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with AABB
a1 ((Ptr AABB -> IO Int) -> IO Int) -> (Ptr AABB -> IO Int) -> IO Int
forall a b. (a -> b) -> a -> b
$ \Ptr AABB
p1 ->
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr DynamicTree -> Ptr AABB -> Word64 -> Word64 -> IO CInt
c_b3DynamicTree_CreateProxy Ptr DynamicTree
a0 Ptr AABB
p1 Word64
a2 Word64
a3)
destroyProxy
:: Ptr DynamicTree
-> Int
-> IO ()
destroyProxy :: Ptr DynamicTree -> Int -> IO ()
destroyProxy Ptr DynamicTree
a0 Int
a1 =
Ptr DynamicTree -> CInt -> IO ()
c_b3DynamicTree_DestroyProxy Ptr DynamicTree
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1)
moveProxy
:: Ptr DynamicTree
-> Int
-> AABB
-> IO ()
moveProxy :: Ptr DynamicTree -> Int -> AABB -> IO ()
moveProxy Ptr DynamicTree
a0 Int
a1 AABB
a2 =
AABB -> (Ptr AABB -> IO ()) -> IO ()
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with AABB
a2 ((Ptr AABB -> IO ()) -> IO ()) -> (Ptr AABB -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr AABB
p2 ->
Ptr DynamicTree -> CInt -> Ptr AABB -> IO ()
c_b3DynamicTree_MoveProxy Ptr DynamicTree
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1) Ptr AABB
p2
enlargeProxy
:: Ptr DynamicTree
-> Int
-> AABB
-> IO ()
enlargeProxy :: Ptr DynamicTree -> Int -> AABB -> IO ()
enlargeProxy Ptr DynamicTree
a0 Int
a1 AABB
a2 =
AABB -> (Ptr AABB -> IO ()) -> IO ()
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with AABB
a2 ((Ptr AABB -> IO ()) -> IO ()) -> (Ptr AABB -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Ptr AABB
p2 ->
Ptr DynamicTree -> CInt -> Ptr AABB -> IO ()
c_b3DynamicTree_EnlargeProxy Ptr DynamicTree
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1) Ptr AABB
p2
setCategoryBits
:: Ptr DynamicTree
-> Int
-> Word64
-> IO ()
setCategoryBits :: Ptr DynamicTree -> Int -> Word64 -> IO ()
setCategoryBits Ptr DynamicTree
a0 Int
a1 Word64
a2 =
Ptr DynamicTree -> CInt -> Word64 -> IO ()
c_b3DynamicTree_SetCategoryBits Ptr DynamicTree
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1) Word64
a2
getCategoryBits
:: Ptr DynamicTree
-> Int
-> IO Word64
getCategoryBits :: Ptr DynamicTree -> Int -> IO Word64
getCategoryBits Ptr DynamicTree
a0 Int
a1 =
Ptr DynamicTree -> CInt -> IO Word64
c_b3DynamicTree_GetCategoryBits Ptr DynamicTree
a0 (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
a1)
query
:: Ptr DynamicTree
-> AABB
-> Word64
-> Bool
-> FunPtr TreeQueryCallbackFcn
-> Ptr ()
-> IO TreeStats
query :: Ptr DynamicTree
-> AABB
-> Word64
-> Bool
-> FunPtr TreeQueryCallbackFcn
-> Ptr ()
-> IO TreeStats
query Ptr DynamicTree
a0 AABB
a1 Word64
a2 Bool
a3 FunPtr TreeQueryCallbackFcn
a4 Ptr ()
a5 =
AABB -> (Ptr AABB -> IO TreeStats) -> IO TreeStats
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with AABB
a1 ((Ptr AABB -> IO TreeStats) -> IO TreeStats)
-> (Ptr AABB -> IO TreeStats) -> IO TreeStats
forall a b. (a -> b) -> a -> b
$ \Ptr AABB
p1 ->
(Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr TreeStats -> IO TreeStats) -> IO TreeStats)
-> (Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. (a -> b) -> a -> b
$ \Ptr TreeStats
pOut -> Ptr DynamicTree
-> Ptr AABB
-> Word64
-> CBool
-> FunPtr TreeQueryCallbackFcn
-> Ptr ()
-> Ptr TreeStats
-> IO ()
c_b3DynamicTree_Query Ptr DynamicTree
a0 Ptr AABB
p1 Word64
a2 (Bool -> CBool
forall a. Num a => Bool -> a
fromBool Bool
a3) FunPtr TreeQueryCallbackFcn
a4 Ptr ()
a5 Ptr TreeStats
pOut IO () -> IO TreeStats -> IO TreeStats
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Ptr TreeStats -> IO TreeStats
forall a. Storable a => Ptr a -> IO a
peek Ptr TreeStats
pOut
queryClosest
:: Ptr DynamicTree
-> Vec3
-> Word64
-> Bool
-> FunPtr TreeQueryClosestCallbackFcn
-> Ptr ()
-> Ptr Float
-> IO TreeStats
queryClosest :: Ptr DynamicTree
-> Vec3
-> Word64
-> Bool
-> FunPtr TreeQueryClosestCallbackFcn
-> Ptr ()
-> Ptr Float
-> IO TreeStats
queryClosest Ptr DynamicTree
a0 Vec3
a1 Word64
a2 Bool
a3 FunPtr TreeQueryClosestCallbackFcn
a4 Ptr ()
a5 Ptr Float
a6 =
Vec3 -> (Ptr Vec3 -> IO TreeStats) -> IO TreeStats
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with Vec3
a1 ((Ptr Vec3 -> IO TreeStats) -> IO TreeStats)
-> (Ptr Vec3 -> IO TreeStats) -> IO TreeStats
forall a b. (a -> b) -> a -> b
$ \Ptr Vec3
p1 ->
(Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr TreeStats -> IO TreeStats) -> IO TreeStats)
-> (Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. (a -> b) -> a -> b
$ \Ptr TreeStats
pOut -> Ptr DynamicTree
-> Ptr Vec3
-> Word64
-> CBool
-> FunPtr TreeQueryClosestCallbackFcn
-> Ptr ()
-> Ptr Float
-> Ptr TreeStats
-> IO ()
c_b3DynamicTree_QueryClosest Ptr DynamicTree
a0 Ptr Vec3
p1 Word64
a2 (Bool -> CBool
forall a. Num a => Bool -> a
fromBool Bool
a3) FunPtr TreeQueryClosestCallbackFcn
a4 Ptr ()
a5 Ptr Float
a6 Ptr TreeStats
pOut IO () -> IO TreeStats -> IO TreeStats
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Ptr TreeStats -> IO TreeStats
forall a. Storable a => Ptr a -> IO a
peek Ptr TreeStats
pOut
rayCast
:: Ptr DynamicTree
-> RayCastInput
-> Word64
-> Bool
-> FunPtr TreeRayCastCallbackFcn
-> Ptr ()
-> IO TreeStats
rayCast :: Ptr DynamicTree
-> RayCastInput
-> Word64
-> Bool
-> FunPtr TreeRayCastCallbackFcn
-> Ptr ()
-> IO TreeStats
rayCast Ptr DynamicTree
a0 RayCastInput
a1 Word64
a2 Bool
a3 FunPtr TreeRayCastCallbackFcn
a4 Ptr ()
a5 =
RayCastInput -> (Ptr RayCastInput -> IO TreeStats) -> IO TreeStats
forall a b. Storable a => a -> (Ptr a -> IO b) -> IO b
with RayCastInput
a1 ((Ptr RayCastInput -> IO TreeStats) -> IO TreeStats)
-> (Ptr RayCastInput -> IO TreeStats) -> IO TreeStats
forall a b. (a -> b) -> a -> b
$ \Ptr RayCastInput
p1 ->
(Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr TreeStats -> IO TreeStats) -> IO TreeStats)
-> (Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. (a -> b) -> a -> b
$ \Ptr TreeStats
pOut -> Ptr DynamicTree
-> Ptr RayCastInput
-> Word64
-> CBool
-> FunPtr TreeRayCastCallbackFcn
-> Ptr ()
-> Ptr TreeStats
-> IO ()
c_b3DynamicTree_RayCast Ptr DynamicTree
a0 Ptr RayCastInput
p1 Word64
a2 (Bool -> CBool
forall a. Num a => Bool -> a
fromBool Bool
a3) FunPtr TreeRayCastCallbackFcn
a4 Ptr ()
a5 Ptr TreeStats
pOut IO () -> IO TreeStats -> IO TreeStats
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Ptr TreeStats -> IO TreeStats
forall a. Storable a => Ptr a -> IO a
peek Ptr TreeStats
pOut
boxCast
:: Ptr DynamicTree
-> Ptr BoxCastInput
-> Word64
-> Bool
-> FunPtr TreeBoxCastCallbackFcn
-> Ptr ()
-> IO TreeStats
boxCast :: Ptr DynamicTree
-> Ptr BoxCastInput
-> Word64
-> Bool
-> FunPtr TreeBoxCastCallbackFcn
-> Ptr ()
-> IO TreeStats
boxCast Ptr DynamicTree
a0 Ptr BoxCastInput
a1 Word64
a2 Bool
a3 FunPtr TreeBoxCastCallbackFcn
a4 Ptr ()
a5 =
(Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr TreeStats -> IO TreeStats) -> IO TreeStats)
-> (Ptr TreeStats -> IO TreeStats) -> IO TreeStats
forall a b. (a -> b) -> a -> b
$ \Ptr TreeStats
pOut -> Ptr DynamicTree
-> Ptr BoxCastInput
-> Word64
-> CBool
-> FunPtr TreeBoxCastCallbackFcn
-> Ptr ()
-> Ptr TreeStats
-> IO ()
c_b3DynamicTree_BoxCast Ptr DynamicTree
a0 Ptr BoxCastInput
a1 Word64
a2 (Bool -> CBool
forall a. Num a => Bool -> a
fromBool Bool
a3) FunPtr TreeBoxCastCallbackFcn
a4 Ptr ()
a5 Ptr TreeStats
pOut IO () -> IO TreeStats -> IO TreeStats
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Ptr TreeStats -> IO TreeStats
forall a. Storable a => Ptr a -> IO a
peek Ptr TreeStats
pOut
boxCastInto
:: Ptr DynamicTree
-> Ptr BoxCastInput
-> Word64
-> Bool
-> FunPtr TreeBoxCastCallbackFcn
-> Ptr ()
-> Ptr TreeStats
-> IO ()
boxCastInto :: Ptr DynamicTree
-> Ptr BoxCastInput
-> Word64
-> Bool
-> FunPtr TreeBoxCastCallbackFcn
-> Ptr ()
-> Ptr TreeStats
-> IO ()
boxCastInto Ptr DynamicTree
a0 Ptr BoxCastInput
a1 Word64
a2 Bool
a3 FunPtr TreeBoxCastCallbackFcn
a4 Ptr ()
a5 Ptr TreeStats
out =
Ptr DynamicTree
-> Ptr BoxCastInput
-> Word64
-> CBool
-> FunPtr TreeBoxCastCallbackFcn
-> Ptr ()
-> Ptr TreeStats
-> IO ()
c_b3DynamicTree_BoxCast Ptr DynamicTree
a0 Ptr BoxCastInput
a1 Word64
a2 (Bool -> CBool
forall a. Num a => Bool -> a
fromBool Bool
a3) FunPtr TreeBoxCastCallbackFcn
a4 Ptr ()
a5 Ptr TreeStats
out
validate
:: Ptr DynamicTree
-> IO ()
validate :: Ptr DynamicTree -> IO ()
validate Ptr DynamicTree
a0 =
Ptr DynamicTree -> IO ()
c_b3DynamicTree_Validate Ptr DynamicTree
a0
getHeight
:: Ptr DynamicTree
-> IO Int
getHeight :: Ptr DynamicTree -> IO Int
getHeight Ptr DynamicTree
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr DynamicTree -> IO CInt
c_b3DynamicTree_GetHeight Ptr DynamicTree
a0)
getAreaRatio
:: Ptr DynamicTree
-> IO Float
getAreaRatio :: Ptr DynamicTree -> IO Float
getAreaRatio Ptr DynamicTree
a0 =
Ptr DynamicTree -> IO Float
c_b3DynamicTree_GetAreaRatio Ptr DynamicTree
a0
getRootBounds
:: Ptr DynamicTree
-> IO AABB
getRootBounds :: Ptr DynamicTree -> IO AABB
getRootBounds Ptr DynamicTree
a0 =
(Ptr AABB -> IO AABB) -> IO AABB
forall a b. Storable a => (Ptr a -> IO b) -> IO b
alloca ((Ptr AABB -> IO AABB) -> IO AABB)
-> (Ptr AABB -> IO AABB) -> IO AABB
forall a b. (a -> b) -> a -> b
$ \Ptr AABB
pOut -> Ptr DynamicTree -> Ptr AABB -> IO ()
c_b3DynamicTree_GetRootBounds Ptr DynamicTree
a0 Ptr AABB
pOut IO () -> IO AABB -> IO AABB
forall a b. IO a -> IO b -> IO b
forall (m :: * -> *) a b. Monad m => m a -> m b -> m b
>> Ptr AABB -> IO AABB
forall a. Storable a => Ptr a -> IO a
peek Ptr AABB
pOut
getRootBoundsInto
:: Ptr DynamicTree
-> Ptr AABB
-> IO ()
getRootBoundsInto :: Ptr DynamicTree -> Ptr AABB -> IO ()
getRootBoundsInto Ptr DynamicTree
a0 Ptr AABB
out =
Ptr DynamicTree -> Ptr AABB -> IO ()
c_b3DynamicTree_GetRootBounds Ptr DynamicTree
a0 Ptr AABB
out
getProxyCount
:: Ptr DynamicTree
-> IO Int
getProxyCount :: Ptr DynamicTree -> IO Int
getProxyCount Ptr DynamicTree
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr DynamicTree -> IO CInt
c_b3DynamicTree_GetProxyCount Ptr DynamicTree
a0)
rebuild
:: Ptr DynamicTree
-> Bool
-> IO Int
rebuild :: Ptr DynamicTree -> Bool -> IO Int
rebuild Ptr DynamicTree
a0 Bool
a1 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr DynamicTree -> CBool -> IO CInt
c_b3DynamicTree_Rebuild Ptr DynamicTree
a0 (Bool -> CBool
forall a. Num a => Bool -> a
fromBool Bool
a1))
getByteCount
:: Ptr DynamicTree
-> IO Int
getByteCount :: Ptr DynamicTree -> IO Int
getByteCount Ptr DynamicTree
a0 =
CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (CInt -> Int) -> IO CInt -> IO Int
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Ptr DynamicTree -> IO CInt
c_b3DynamicTree_GetByteCount Ptr DynamicTree
a0)
validateNoEnlarged
:: Ptr DynamicTree
-> IO ()
validateNoEnlarged :: Ptr DynamicTree -> IO ()
validateNoEnlarged Ptr DynamicTree
a0 =
Ptr DynamicTree -> IO ()
c_b3DynamicTree_ValidateNoEnlarged Ptr DynamicTree
a0
save
:: Ptr DynamicTree
-> CString
-> IO ()
save :: Ptr DynamicTree -> CString -> IO ()
save Ptr DynamicTree
a0 CString
a1 =
Ptr DynamicTree -> CString -> IO ()
c_b3DynamicTree_Save Ptr DynamicTree
a0 CString
a1
load
:: CString
-> Float
-> Ptr DynamicTree
-> IO ()
load :: CString -> Float -> Ptr DynamicTree -> IO ()
load CString
a0 Float
a1 Ptr DynamicTree
out =
CString -> Float -> Ptr DynamicTree -> IO ()
c_b3DynamicTree_Load CString
a0 Float
a1 Ptr DynamicTree
out