[Gambas-user] Fwd: Re: glu.wireCube or glu.wireSphere

Girard Henri girardhenri at ...67...
Mon Oct 17 20:56:03 CEST 2011


Kevin if this can be of use for you. Tommyline help me much for this...


-------- Message original --------
Sujet: 	Re: [Gambas-user] glu.wireCube or glu.wireSphere
Date : 	Fri, 30 Sep 2011 18:44:21 +0100 (IST)
De : 	tommyline at ...2340...
Répondre à : 	mailing list for gambas users 
<gambas-user at lists.sourceforge.net>
Pour : 	mailing list for gambas users <gambas-user at lists.sourceforge.net>



Hi Henri,

Unfortunately Wire cube, or WireSphere is a part of the GLUT library which is not implemented in Gambas. But based on Freeglut source, I made my own glut geometry module.

Public Sub WireCube(dSize As Float)
Dim size As Float = dSize * 0.5

     gl.Begin(gl.LINE_LOOP)
     gl.Normal3f(1.0, 0.0, 0.0)
     gl.Vertex3f(size, - size, size)
     gl.Vertex3f(size, - size, - size)
     gl.Vertex3f(size, size, - size)
     gl.Vertex3f(size, size, size)
     gl.End()

     gl.Begin(gl.LINE_LOOP)
     gl.Normal3f(0.0, 1.0, 0.0)
     gl.Vertex3f(size, size, size)
     gl.Vertex3f(size, size, - size)
     gl.Vertex3f(- size, size, - size)
     gl.Vertex3f(- size, size, size)
     gl.End()

     gl.Begin(gl.LINE_LOOP)
     gl.Normal3f(0.0, 0.0, 1.0)
     gl.Vertex3f(size, size, size)
     gl.Vertex3f(- size, size, size)
     gl.Vertex3f(- size, - size, size)
     gl.Vertex3f(size, - size, size)
     gl.End()

     gl.Begin(gl.LINE_LOOP)
     gl.Normal3f(1.0, 0.0, 0.0)
     gl.Vertex3f(- size, - size, size)
     gl.Vertex3f(- size, size, size)
     gl.Vertex3f(- size, size, - size)
     gl.Vertex3f(- size, - size, - size)
     gl.End()

     gl.Begin(gl.LINE_LOOP)
     gl.Normal3f(0.0, - 1.0, 0.0)
     gl.Vertex3f(- size, - size, size)
     gl.Vertex3f(- size, - size, - size)
     gl.Vertex3f(size, - size, - size)
     gl.Vertex3f(size, - size, size)
     gl.End()

     gl.Begin(gl.LINE_LOOP)
     gl.Normal3f(0.0, 0.0, 1.0)
     gl.Vertex3f(- size, - size, - size)
     gl.Vertex3f(- size, size, - size)
     gl.Vertex3f(size, size, - size)
     gl.Vertex3f(size, - size, - size)
     gl.End()

End

Public Sub WireSphere(radius As Float, slices As Integer, stacks As Integer)
Dim i, j As Integer
Dim z, x, r, y As Float
Dim sint1, sint2 As New Float[360]
Dim cost1, cost2 As New Float[360]
Dim size As Integer  ' / * Table size, the sign OF n flips the circle direction * /
Dim angle As Float ' / * Determine the angle between samples * /

    '/* Pre - computed circle * /
     size = - slices
     angle As Float = 2 * Pi / (size)
     sint1[0] = 0.0
     cost1[0] = 1.0
     For i = 1 To size
         sint1[i] = Sin(angle * i)
         cost1[i] = Cos(angle * i)
     Next
     sint1[size] = sint1[0]
     cost1[size] = cost1[0]

     size = stacks * 2
     angle As Float = 2 * Pi / (size)
     sint2[0] = 0.0
     cost2[0] = 1.0
     For i = 1 To size
         sint2[i] = Sin(angle * i)
         cost2[i] = Cos(angle * i)
     Next
     sint2[size] = sint2[0]
     cost2[size] = cost2[0]

     '/ * Draw a LINE LOOP FOR EACH stack * /

     For i = 1 To stacks
         z = cost2[i]
         r = sint2[i]

         gl.Begin(gl.LINE_LOOP)
             For j = 0 To slices
                 x = cost1[j]
                 y = sint1[j]
                 gl.Normal3f(x, y, z)
                 gl.Vertex3f(x * r * radius, y * r * radius, z * radius)
             Next

         gl.End()
     Next

     '/ * Draw a LINE LOOP FOR EACH slice * /

     For i = 0 To slices
          gl.Begin(gl.LINE_STRIP)
             For j = 0 To stacks
                 x = cost1[i] * sint2[j]
                 y = sint1[i] * sint2[j]
                 z = cost2[j]

                 gl.Normal3f(x, y, z)
                 gl.Vertex3f(x * radius, y * radius, z * radius)
             Next

         gl.End()
     Next

End

Regards,
Tomek

----- Original Message -----
From: "Girard Henri"<girardhenri at ...402...>
To: gambas-user at lists.sourceforge.net
Sent: Friday, 30 September, 2011 3:11:29 PM
Subject: [Gambas-user] glu.wireCube or glu.wireSphere

Hi,
Is there a way of doing in gambas opengl glu.wireCube (with example)?
I can't find it anywhere ?
thanks
Henri


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Gambas-user mailing list
Gambas-user at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Gambas-user mailing list
Gambas-user at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user






More information about the User mailing list