« Return to Thread: (not?) using preservingMatrix

Re: (not?) using preservingMatrix

by jamin1001 :: Rate this Message:

Reply to Author | View in Thread

My last post was eaten by this "Nabble Forums" web page!

...

Ah, you're right.  What didn't compile for me was this additional line after the preservingMatrix call:
putStr $ "Result matrix: " ++ (show rs) ++ "\n"


Instead, I want to return that value to use outside the call.  This is what I was after, I think:

rs2 <- preservingMatrix $ do
      loadIdentity
      -- do whatever you want with your your matrix
      rs <- get ((matrix $ Just $ Modelview 0)::StateVar(GLmatrix GLdouble))
      return (rs)
putStr $ "Result matrix: " ++ (show rs2) ++ "\n"

Now, as for question #2, are there any pre-made ways to transform a vector with a matrix, or do I have to do it by hand (same goes for cross product!) (see the post http://groups.google.com/group/comp.graphics.api.opengl/browse_thread/thread/831ee85b6f97eb15/2de3e6d9c6a1a9e5)




Sebastian Sylvan wrote:
On 1/5/07, jamin1001 <jamin1001@yahoo.com> wrote:
>
> Right, I buy that.  But I don't see how the C line
>
> glGetFloatv (GL_MODELVIEW_MATRIX, your_matrix_result) ;
>
> can be done, since it writes a result into your_matrix_result, so I would
> need something like:
>
> preservingMatrix $ do
>     loadIdentity
>     -- do whatever you want with your your matrix
>     rs <- get ((matrix $ Just $ Modelview 0)::StateVar(GLmatrix GLdouble))

This does indeed compile for me. GHC 6.6.

--
Sebastian Sylvan
+46(0)736-818655
UIN: 44640862
_______________________________________________
HOpenGL mailing list
HOpenGL@haskell.org
http://www.haskell.org/mailman/listinfo/hopengl

 « Return to Thread: (not?) using preservingMatrix