docs: def setupScene(self):
          "Purpose: create a sea of cubes"
          if self.m_pHMD is None:
              return
          vertdataarray = list()
          matScale = Matrix4()
          matScale.scale( self.m_fScale, self.m_fScale, self.m_fScale )
          matTransform = Matrix4()
          matTransform.translate([
              -( float(self.m_iSceneVolumeWidth) * self.m_fScaleSpacing ) / 2.0,
              -( float(self.m_iSceneVolumeHeight) * self.m_fScaleSpacing ) / 2.0,
              -( float(self.m_iSceneVolumeDepth) * self.m_fScaleSpacing ) / 2.0 ])
          mat = matScale * matTransform
          for z in range(self.m_iSceneVolumeDepth):  # @UnusedVariable
              for y in range(self.m_iSceneVolumeHeight):  # @UnusedVariable
                  for x in range(self.m_iSceneVolumeWidth):  # @UnusedVariable
                      self.addCubeToScene( mat, vertdataarray )
                      mat = mat * Matrix4().translate( [self.m_fScaleSpacing, 0, 0] )
                  mat = mat * Matrix4().translate( [-(float(self.m_iSceneVolumeWidth)) * self.m_fScaleSpacing, self.m_fScaleSpacing, 0] )
              mat = mat * Matrix4().translate( [0, -(float(self.m_iSceneVolumeHeight)) * self.m_fScaleSpacing, self.m_fScaleSpacing] )
          self.m_uiVertcount = len(vertdataarray)/5
          self.m_unSceneVAO = glGenVertexArrays(1)
          glBindVertexArray( self.m_unSceneVAO )
          self.m_glSceneVertBuffer = glGenBuffers(1)
          glBindBuffer( GL_ARRAY_BUFFER, self.m_glSceneVertBuffer )
          vertdataarray = numpy.array(vertdataarray, numpy.float32) # convert to numpy array at last possible moment
          glBufferData( GL_ARRAY_BUFFER, sizeof(ctypes.c_float) * len(vertdataarray), vertdataarray, GL_STATIC_DRAW)
          glBindBuffer( GL_ARRAY_BUFFER, self.m_glSceneVertBuffer )
          stride = sizeof(VertexDataScene)
          offset = 0
          glEnableVertexAttribArray( 0 )
          glVertexAttribPointer( 0, 3, GL_FLOAT, False, stride , offset)
          offset += sizeof(Vector3)
          glEnableVertexAttribArray( 1 )
          glVertexAttribPointer( 1, 2, GL_FLOAT, False, stride, offset)
          glBindVertexArray( 0 )
          glDisableVertexAttribArray(0)
          glDisableVertexAttribArray(1)