[Gambas-user] glu.wireCube or glu.wireSphere

tommyline at ...2340... tommyline at ...2340...
Fri Sep 30 19:44:21 CEST 2011


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




More information about the User mailing list