Python OpenGL.GL.glNewList() Examples
The following are 19
code examples of OpenGL.GL.glNewList().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
OpenGL.GL
, or try the search function
.
Example #1
Source File: head_model_OGL.py From simnibs with GNU General Public License v3.0 | 6 votes |
def drawIndicator(self, intersect_point, normal): genList = GL.glGenLists(1) GL.glNewList(genList, GL.GL_COMPILE) u, v = self.skin_surf.getTangentCoordinates(normal) self.qglColor(RED) self.ellipse(intersect_point,normal, u,v,[6,6]); GL.glEndList() return genList #draws a simple model of an electrode
Example #2
Source File: glutils.py From MCEdit-Unified with ISC License | 6 votes |
def makeList(self, drawFunc): if self._list: return drawFunc = (drawFunc or self.drawFunc) if drawFunc is None: return l = gl.glGenLists(1) GL.glNewList(l, GL.GL_COMPILE) drawFunc() # try: GL.glEndList() #except GL.GLError: # print "Error while compiling display list. Retrying display list code to pinpoint error" # self.drawFunc() self._list = numpy.array([l], 'uintc')
Example #3
Source File: render_scene.py From holistic_scene_parsing with MIT License | 6 votes |
def __init__(self, obj_info, obj_color=None, swapyz=False): """Loads a Wavefront OBJ file. """ self.vertices = obj_info.vertices self.normals = obj_info.normals self.texcoords = obj_info.texcoords self.faces = obj_info.faces self.gl_list = GL.glGenLists(1) GL.glNewList(self.gl_list, GL.GL_COMPILE) for face in self.faces: vertices, normals, _, texture_coords = face GL.glBegin(GL.GL_POLYGON) for i in range(len(vertices)): GL.glVertex3fv(self.vertices[vertices[i] - 1]) GL.glEnd() # GL.glDisable(GL.GL_TEXTURE_2D) GL.glEndList()
Example #4
Source File: glutils.py From GDMC with ISC License | 6 votes |
def makeList(self, drawFunc): if self._list: return drawFunc = (drawFunc or self.drawFunc) if drawFunc is None: return l = gl.glGenLists(1) GL.glNewList(l, GL.GL_COMPILE) drawFunc() # try: GL.glEndList() #except GL.GLError: # print "Error while compiling display list. Retrying display list code to pinpoint error" # self.drawFunc() self._list = numpy.array([l], 'uintc')
Example #5
Source File: render_scene.py From holistic_scene_parsing with MIT License | 6 votes |
def __init__(self, obj_info, color=None, swapyz=False): """Loads a Wavefront OBJ file. """ self.vertices = obj_info.vertices self.normals = obj_info.normals self.texcoords = obj_info.texcoords self.faces = obj_info.faces self.color = color self.gl_list = GL.glGenLists(1) GL.glNewList(self.gl_list, GL.GL_COMPILE) # GL.glEnable(GL.GL_TEXTURE_2D) GL.glFrontFace(GL.GL_CCW) # GL.glDisable(GL.GL_LIGHT0) # GL.glDisable(GL.GL_LIGHTING) for face in self.faces: vertices, normals, _, _ = face GL.glColor3f(self.color[0], self.color[1], self.color[2]) GL.glBegin(GL.GL_POLYGON) for i in range(len(vertices)): # if normals[i] > 0: # GL.glNormal3fv(self.normals[normals[i] - 1]) GL.glVertex3fv(self.vertices[vertices[i] - 1]) GL.glEnd() GL.glDisable(GL.GL_TEXTURE_2D) GL.glEndList()
Example #6
Source File: render_scene.py From holistic_scene_parsing with MIT License | 6 votes |
def __init__(self, obj_info, rotation_matrix, swapyz=False, layout_type=None): """Loads a Wavefront OBJ file. """ self.vertices = obj_info.vertices self.normals = obj_info.normals self.texcoords = obj_info.texcoords self.faces = obj_info.faces self.rotation_matrix = rotation_matrix # load the mesh to OPENGL self.gl_list = GL.glGenLists(1) GL.glNewList(self.gl_list, GL.GL_COMPILE) for face in self.faces: vertices, normals, _, _ = face GL.glBegin(GL.GL_POLYGON) for i in range(len(vertices)): normal_color = self.rotation_matrix.dot(self.normals[normals[i] - 1]) GL.glColor3f((normal_color[0] + 1) / 2, (-normal_color[2] + 1) / 2, (normal_color[1] + 1) / 2) GL.glVertex3fv(self.vertices[vertices[i] - 1]) GL.glEnd() GL.glEndList()
Example #7
Source File: drawable.py From MCEdit-Unified with ISC License | 5 votes |
def compileList(self): GL.glNewList(self._displayList, GL.GL_COMPILE) self._draw() GL.glEndList() self.invalidList = False
Example #8
Source File: renderer.py From MCEdit-Unified with ISC License | 5 votes |
def makeArrayList(self, chunkPosition, showRedraw): l = gl.glGenLists(1) GL.glNewList(l, GL.GL_COMPILE) self.drawArrays(chunkPosition, showRedraw) GL.glEndList() return l
Example #9
Source File: LicModel.py From lic with GNU General Public License v3.0 | 5 votes |
def callGLDisplayList(self, useDisplacement=False): if not useDisplacement: return # Must be called inside a glNewList/EndList pair if self.color is not None: color = list(self.color.rgba) if self.isSelected(): color[3] *= 0.6 GL.glPushAttrib(GL.GL_CURRENT_BIT) GL.glColor4fv(color) matrix = list(self.matrix) if self.displacement: matrix[12] += self.displacement[0] matrix[13] += self.displacement[1] matrix[14] += self.displacement[2] GL.glPushMatrix() GL.glMultMatrixf(matrix) # LicGLHelpers.drawCoordLines() self.doGLRotation() if self.isSelected(): self.drawGLBoundingBox() GL.glCallList(self.abstractPart.glDispID) GL.glPopMatrix() if self.color is not None: GL.glPopAttrib()
Example #10
Source File: LicModel.py From lic with GNU General Public License v3.0 | 5 votes |
def createGLDisplayList(self, skipPartInit=False): """ Initialize this part's display list.""" # Ensure any parts in this part have been initialized if not skipPartInit: for part in self.parts: if part.abstractPart.glDispID == LicGLHelpers.UNINIT_GL_DISPID: part.abstractPart.createGLDisplayList() if self.glDispID == LicGLHelpers.UNINIT_GL_DISPID: self.glDispID = GL.glGenLists(1) GL.glNewList(self.glDispID, GL.GL_COMPILE) for part in self.parts: part.callGLDisplayList(False, False) for primitive in self.primitives: primitive.callGLDisplayList(False) GL.glEndList() #Prepare separate list for edges if self.glEdgeDispID == LicGLHelpers.UNINIT_GL_DISPID: self.glEdgeDispID = GL.glGenLists(1) GL.glNewList(self.glEdgeDispID, GL.GL_COMPILE) for part in self.parts: part.callGLDisplayList(False, True) for primitive in self.primitives: primitive.callGLDisplayList(True) GL.glEndList()
Example #11
Source File: LicModel.py From lic with GNU General Public License v3.0 | 5 votes |
def createGLDisplayList(self): """ Create a display list that includes all previous CSIs plus this one, for a single display list giving a full model rendering up to this step. """ if self.glDispID == LicGLHelpers.UNINIT_GL_DISPID: self.glDispID = GL.glGenLists(1) GL.glNewList(self.glDispID, GL.GL_COMPILE) # LicGLHelpers.drawCoordLines() self.__callPreviousGLDisplayLists(True) GL.glEndList()
Example #12
Source File: drawable.py From GDMC with ISC License | 5 votes |
def compileList(self): GL.glNewList(self._displayList, GL.GL_COMPILE) self._draw() GL.glEndList() self.invalidList = False
Example #13
Source File: renderer.py From GDMC with ISC License | 5 votes |
def makeArrayList(self, chunkPosition, showRedraw): l = gl.glGenLists(1) GL.glNewList(l, GL.GL_COMPILE) self.drawArrays(chunkPosition, showRedraw) GL.glEndList() return l
Example #14
Source File: head_model_OGL.py From simnibs with GNU General Public License v3.0 | 5 votes |
def drawEEGPositions(self, points, names): genList = GL.glGenLists(1) GL.glNewList(genList, GL.GL_COMPILE) for point, name in zip(points, names): normal = self.skin_surf.projectPoint(point, smooth=False)[1] if normal is None or normal == []or point is None or point == []: print('Invalid Point!') else: u, v = self.skin_surf.getTangentCoordinates(normal) pos_el = point + 2*normal GL.glEnable(GL.GL_LIGHTING) self.qglColor(GREEN) self.ellipse(pos_el, normal, u, v, [6, 6]) if bool(GLUT.glutBitmapString): pos_text = point + 5*normal GL.glDisable(GL.GL_LIGHTING) GL.glColor3f(0.0, 0.0, 0.0) GL.glRasterPos3f(*pos_text) GLUT.glutBitmapString( GLUT.GLUT_BITMAP_HELVETICA_12, name.encode()) GL.glEnable(GL.GL_LIGHTING) GL.glEndList() self.eegPositions = genList self.update()
Example #15
Source File: LicModel.py From lic with GNU General Public License v3.0 | 4 votes |
def callGLDisplayList(self, useDisplacement, paintingEdge): # must be called inside a glNewList/EndList pair if self.inverted: GL.glPushAttrib(GL.GL_POLYGON_BIT) GL.glFrontFace(GL.GL_CW) if self.matrix: matrix = list(self.matrix) if useDisplacement and self.displacement: matrix[12] += self.displacement[0] matrix[13] += self.displacement[1] matrix[14] += self.displacement[2] GL.glPushMatrix() GL.glMultMatrixf(matrix) if useDisplacement and (self.isSelected() or CSI.highlightNewParts): GL.glPushAttrib(GL.GL_CURRENT_BIT) GL.glColor4f(1.0, 0.0, 0.0, 1.0) self.drawGLBoundingBox() GL.glPopAttrib() if self.color is not None: GL.glPushAttrib(GL.GL_CURRENT_BIT) if paintingEdge: if self.color is not None and self.color.edgeRgba is not None: color = list(self.color.edgeRgba) if useDisplacement and self.isSelected(): color[3] *= 0.6 GL.glColor4fv(color) GL.glCallList(self.abstractPart.glEdgeDispID) else: if self.color is not None: color = list(self.color.rgba) if useDisplacement and self.isSelected(): color[3] *= 0.5 GL.glColor4fv(color) GL.glCallList(self.abstractPart.glDispID) if self.color is not None: GL.glPopAttrib() # self.abstractPart.drawConditionalLines() if self.matrix: GL.glPopMatrix() if self.inverted: GL.glPopAttrib() if not paintingEdge: for arrow in self.arrows: arrow.callGLDisplayList(useDisplacement)
Example #16
Source File: LicModel.py From lic with GNU General Public License v3.0 | 4 votes |
def callGLDisplayList(self, paintingEdge): # must be called inside a glNewList/EndList pair p = self.points if self.type == GL.GL_LINES: if len(self.points) > 6 or not paintingEdge: # This is a conditional line or we are not painting edges return GL.glBegin(self.type) GL.glVertex3f(p[0], p[1], p[2]) GL.glVertex3f(p[3], p[4], p[5]) GL.glEnd() return if paintingEdge: return if self.color is not None: GL.glPushAttrib(GL.GL_CURRENT_BIT) GL.glColor4fv(self.color.rgba) if self.winding == GL.GL_CCW: normal = self.addNormal(p[0:3], p[3:6], p[6:9]) # GL.glBegin( GL.GL_LINES ) # GL.glVertex3f(p[3], p[4], p[5]) # GL.glVertex3f(p[3] + normal[0], p[4] + normal[1], p[5] + normal[2]) # GL.glEnd() GL.glBegin(self.type) GL.glNormal3fv(normal) GL.glVertex3f(p[0], p[1], p[2]) GL.glVertex3f(p[3], p[4], p[5]) GL.glVertex3f(p[6], p[7], p[8]) if self.type == GL.GL_QUADS: GL.glVertex3f(p[9], p[10], p[11]) GL.glEnd() elif self.winding == GL.GL_CW: normal = self.addNormal(p[0:3], p[6:9], p[3:6]) # GL.glBegin( GL.GL_LINES ) # GL.glVertex3f(p[3], p[4], p[5]) # GL.glVertex3f(p[3] + normal[0], p[4] + normal[1], p[5] + normal[2]) # GL.glEnd() GL.glBegin(self.type) GL.glNormal3fv(normal) GL.glVertex3f(p[0], p[1], p[2]) if self.type == GL.GL_QUADS: GL.glVertex3f(p[9], p[10], p[11]) GL.glVertex3f(p[6], p[7], p[8]) GL.glVertex3f(p[3], p[4], p[5]) GL.glEnd() if self.color is not None: GL.glPopAttrib()
Example #17
Source File: opengl_test.py From PFramer with GNU General Public License v3.0 | 4 votes |
def makeObject(self): genList = GL.glGenLists(1) GL.glNewList(genList, GL.GL_COMPILE) GL.glBegin(GL.GL_QUADS) x1 = +0.06 y1 = -0.14 x2 = +0.14 y2 = -0.06 x3 = +0.08 y3 = +0.00 x4 = +0.30 y4 = +0.22 self.quad(x1, y1, x2, y2, y2, x2, y1, x1) self.quad(x3, y3, x4, y4, y4, x4, y3, x3) self.extrude(x1, y1, x2, y2) self.extrude(x2, y2, y2, x2) self.extrude(y2, x2, y1, x1) self.extrude(y1, x1, x1, y1) self.extrude(x3, y3, x4, y4) self.extrude(x4, y4, y4, x4) self.extrude(y4, x4, y3, x3) Pi = 3.14159265358979323846 NumSectors = 200 for i in range(NumSectors): angle1 = (i * 2 * Pi) / NumSectors x5 = 0.30 * math.sin(angle1) y5 = 0.30 * math.cos(angle1) x6 = 0.20 * math.sin(angle1) y6 = 0.20 * math.cos(angle1) angle2 = ((i + 1) * 2 * Pi) / NumSectors x7 = 0.20 * math.sin(angle2) y7 = 0.20 * math.cos(angle2) x8 = 0.30 * math.sin(angle2) y8 = 0.30 * math.cos(angle2) self.quad(x5, y5, x6, y6, x7, y7, x8, y8) self.extrude(x6, y6, x7, y7) self.extrude(x8, y8, x5, y5) GL.glEnd() GL.glEndList() return genList
Example #18
Source File: ndwindow.py From spectral with MIT License | 4 votes |
def create_axes_list(self): '''Creates display lists to render unit length x,y,z axes.''' import OpenGL.GL as gl gl.glNewList(self.gllist_id, gl.GL_COMPILE) gl.glBegin(gl.GL_LINES) gl.glColor3f(1.0, 0.0, 0.0) gl.glVertex3f(0.0, 0.0, 0.0) gl.glVertex3f(1.0, 0.0, 0.0) gl.glColor3f(0.0, 1.0, 0.0) gl.glVertex3f(0.0, 0.0, 0.0) gl.glVertex3f(0.0, 1.0, 0.0) gl.glColor3f(-.0, 0.0, 1.0) gl.glVertex3f(0.0, 0.0, 0.0) gl.glVertex3f(0.0, 0.0, 1.0) gl.glColor3f(1.0, 1.0, 1.0) gl.glVertex3f(0.0, 0.0, 0.0) gl.glVertex3f(-1.0, 0.0, 0.0) gl.glVertex3f(0.0, 0.0, 0.0) gl.glVertex3f(0.0, -1.0, 0.0) gl.glVertex3f(0.0, 0.0, 0.0) gl.glVertex3f(0.0, 0.0, -1.0) gl.glEnd() def label_axis(x, y, z, label): gl.glRasterPos3f(x, y, z) glut.glutBitmapString(glut.GLUT_BITMAP_HELVETICA_18, str(label)) def label_axis_for_feature(x, y, z, feature_ind): feature = self.octant_features[feature_ind[0]][feature_ind[1]] label_axis(x, y, z, self.labels[feature]) if self._have_glut: try: import OpenGL.GLUT as glut if bool(glut.glutBitmapString): if self.quadrant_mode == 'independent': label_axis(1.05, 0.0, 0.0, 'x') label_axis(0.0, 1.05, 0.0, 'y') label_axis(0.0, 0.0, 1.05, 'z') elif self.quadrant_mode == 'mirrored': label_axis_for_feature(1.05, 0.0, 0.0, (0, 0)) label_axis_for_feature(0.0, 1.05, 0.0, (0, 1)) label_axis_for_feature(0.0, 0.0, 1.05, (0, 2)) label_axis_for_feature(-1.05, 0.0, 0.0, (6, 0)) label_axis_for_feature(0.0, -1.05, 0.0, (6, 1)) label_axis_for_feature(0.0, 0.0, -1.05, (6, 2)) else: label_axis_for_feature(1.05, 0.0, 0.0, (0, 0)) label_axis_for_feature(0.0, 1.05, 0.0, (0, 1)) label_axis_for_feature(0.0, 0.0, 1.05, (0, 2)) except: pass gl.glEndList()
Example #19
Source File: electrodeGUI.py From simnibs with GNU General Public License v3.0 | 4 votes |
def drawPointAndDirs(self): xAxis = numpy.array([1,0,0], 'float') yAxis = numpy.array([0,1,0], 'float') zAxis = numpy.array([0,0,1], 'float') center =numpy.array([0,0,0], 'float') qobj = GLU.gluNewQuadric() sphere_radius = 0.1 cyl_height = 1 cyl_radius = 0.01 z_dir = numpy.array([0.,0.,1.], dtype = 'float64') genList = GL.glGenLists(1) GL.glNewList(genList, GL.GL_COMPILE) #Cylinder along z, we want it to be allong xAxis #Solution: use the appropriate rotation matrix #We have to choose the right axis, perpendicular to both, and rotate by the appropriate angle, the angle between the 2 vectors self.qglColor(QtGui.QColor.fromCmykF(0., 1., 1., 0.)) rotation_dir = numpy.cross(z_dir,xAxis) angle = math.acos(z_dir.dot(xAxis))*180/3.14159 GL.glPushMatrix() GL.glTranslatef(center[0],center[1],center[2]) GL.glRotatef(angle, rotation_dir[0],rotation_dir[1],rotation_dir[2]) GLU.gluCylinder(qobj,cyl_radius,cyl_radius,cyl_height,20,20) GL.glPopMatrix() self.qglColor(QtGui.QColor.fromCmykF(1., 0., 1., 0.)) rotation_dir = numpy.cross(z_dir,yAxis) angle = math.acos(z_dir.dot(yAxis))*180/3.14159 GL.glPushMatrix() GL.glTranslatef(center[0],center[1],center[2]) GL.glRotatef(angle, rotation_dir[0],rotation_dir[1],rotation_dir[2]) GLU.gluCylinder(qobj,cyl_radius,cyl_radius,cyl_height,20,20) GL.glPopMatrix() GL.glEndList() return genList