module TerraHS.TerraLib.TeQuerier
(
TeQuerier(..),
TeQueriers(..)
)
where
import Foreign
import Foreign.C.String
import qualified Foreign.Ptr (Ptr)
import TerraHS.Misc.Object
import TerraHS.Misc.Generic
import TerraHS.TerraLib.TeGeometry
import TerraHS.TerraLib.TeGeometryAlgorithms
import TerraHS.TerraLib.TeSTInstance
import TerraHS.TerraLib.TeLayer
class TeQueriers q where
loadInstances :: (Foreign.Ptr.Ptr q) -> Prelude.IO Bool
numElemInstances :: (Foreign.Ptr.Ptr q) -> Prelude.IO Int32
nextInstance :: (Foreign.Ptr.Ptr q) -> Prelude.IO TeSTInstancePtr
data TeQuerier = TeQuerier TeLayerPtr Bool Bool
type TeQuerierPtr = Foreign.Ptr.Ptr TeQuerier
instance TeQueriers TeQuerier where
loadInstances ptr = tequerier_loadinstances ptr
numElemInstances ptr = tequerier_numeleminstances ptr
nextInstance ptr = (TerraHS.Misc.Object.new TeSTInstance) >>= \st -> (tequerier_nextinstance ptr st) >> return st
instance Pointer TeQuerier where
new (TeQuerier lptr loadgeo loadattr) = do
qptr <- tequerier_new lptr loadgeo loadattr
return qptr
delete l = error "not implemented"
foreign import stdcall unsafe "c_tequerier_new" tequerier_new :: TeLayerPtr -> Bool -> Bool -> Prelude.IO TeQuerierPtr
foreign import stdcall unsafe "c_tequerier_nextInstance" tequerier_nextinstance :: TeQuerierPtr -> TeSTInstancePtr -> Prelude.IO ()
foreign import stdcall unsafe "c_tequerier_loadInstances" tequerier_loadinstances :: TeQuerierPtr -> Prelude.IO Bool
foreign import stdcall unsafe "c_tequerier_numElemInstances" tequerier_numeleminstances :: TeQuerierPtr -> Prelude.IO Int32