[Haskell-cafe] How to variables
yin
yin at atom.sk
Mon Jul 18 17:25:28 EDT 2005
robert dockins wrote:
>>>> I'm doing a 3D simulation. Now I need something like variables in
>>>> imperative languages. My mainLoop check for new events and renders
>>>> scene.
>>>
>>> Then you want IORef.
>>> http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data.IORef.html
>>>
>>
>> I saw it. The problem is, I need an amount of 100*X of mutable variables
>> to implement the system (camera position, rotation, aceleration, ...,
>> position and deformetion infomations for every object, ..., renderer
>> situations [like temprary fading and other efects], ... and more)
>
> Then you probably want a big labeled record,
Uhm... and what if I write some runtines in plain C, then bind them to
Haskell and and use then as in OOP:
camera.c:
struct camera {
GLfloat x, y, z;
}
struct camera getCameraPos() {... /* returns camera position */}
void setCameraPos(struct camera c) {... /* sets position of camera */}
camera.hs:
-- just define bindings
Main.hs:
mainLoop = do
-- read events
-- on KeyDown (SDLK_Keft) -> do
-- (x, y, z) <- getCameraPos
-- setCameraPos (x + 1, y, z)
-- ...
-- drawGLScreen
drawGLScreen = do
-- glTranslate to getCameraPos...
Is this apoarch safe enougth, what do you think?
Matej 'Yin' Gagyi
More information about the Haskell-Cafe
mailing list