def draw_texture(x, y, w, h, texture, mode=None): mode_bak = bgl.Buffer(bgl.GL_INT, 1) bgl.glGetIntegerv(bgl.GL_DRAW_BUFFER, mode_bak) if mode is not None: bgl.glDrawBuffer(mode) bgl.glEnable(bgl.GL_TEXTURE_2D) bgl.glBindTexture(bgl.GL_TEXTURE_2D, texture) bgl.glColor4d(1.0, 1.0, 1.0, 1.0) bgl.glBegin(bgl.GL_TRIANGLE_FAN) bgl.glTexCoord2d(0.0, 0.0) bgl.glVertex2i(x, y) bgl.glTexCoord2d(1.0, 0.0) bgl.glVertex2i(x + w, y) bgl.glTexCoord2d(1.0, 1.0) bgl.glVertex2i(x + w, y + h) bgl.glTexCoord2d(0.0, 1.0) bgl.glVertex2i(x, y + h) bgl.glEnd() bgl.glDisable(bgl.GL_TEXTURE_2D) bgl.glBindTexture(bgl.GL_TEXTURE_2D, 0) if mode is not None: bgl.glDrawBuffer(mode_bak[0])
def draw_postview(self, context, mesh, isBaseMesh): #mesh = self.mesh #temporary in case we decide it should be named differently a1 = 1.0 a2 = 1.0 if isBaseMesh and self.sublvl > 0: a1 = 0.5 a2 = .75 bgl.glEnable(bgl.GL_POINT_SMOOTH) bgl.glEnable(bgl.GL_BLEND) #draw the vertices for v in mesh.vertices: if v in self.selected: bgl.glColor4d(0.9, 0.5, 0, a2) bgl.glPointSize(4) else: bgl.glColor4d(1, 1, 0, a1) bgl.glPointSize(2) bgl.glBegin(bgl.GL_POINTS) bgl.glVertex3f(*v.co.to_tuple()) bgl.glEnd() bgl.glDepthRange(0.0, 0.9999) #draw the edges for e in mesh.edges: if e in self.selected: bgl.glColor4d(0.9, 0.5, 0, a2) bgl.glLineWidth(2) else: bgl.glColor4d(0.5, 0.5, 0, a1) bgl.glLineWidth(1) bgl.glBegin(bgl.GL_LINES) bgl.glVertex3f(*e.v0.co.to_tuple()) bgl.glVertex3f(*e.v1.co.to_tuple()) bgl.glEnd() bgl.glDepthRange(0.0, 1.0) #draw the faces bgl.glBegin(bgl.GL_TRIANGLES) for f in mesh.faces: if f in self.selected: bgl.glColor4d(0.6, 0.2, 0, a2) else: bgl.glColor4d(0.3, 0.3, 0.3, a1) a = 0 b = 1 c = 2 for i in range(len(f.lvertices) - 2): bgl.glVertex3f(*f.lvertices[a].co.to_tuple()) bgl.glVertex3f(*f.lvertices[b].co.to_tuple()) bgl.glVertex3f(*f.lvertices[c].co.to_tuple()) b += 1 c += 1 bgl.glEnd() if False: bgl.glColor3f(0, 1, 1) bgl.glBegin(bgl.GL_LINES) for f in mesh.faces: p0 = Vector() for v in f.lvertices: p0 += v.co p0 /= len(f.lvertices) p1 = p0 + f.normal * 0.2 bgl.glVertex3f(*p0) bgl.glVertex3f(*p1) bgl.glEnd()
def draw_postview(self, context, mesh, isBaseMesh): #mesh = self.mesh #temporary in case we decide it should be named differently a1 = 1.0 a2 = 1.0 if isBaseMesh and self.sublvl > 0: a1 = 0.5 a2 = .75 bgl.glEnable(bgl.GL_POINT_SMOOTH) bgl.glEnable(bgl.GL_BLEND) #draw the vertices for v in mesh.vertices: if v in self.selected: bgl.glColor4d(0.9,0.5,0, a2) bgl.glPointSize(4) else: bgl.glColor4d(1, 1, 0, a1) bgl.glPointSize(2) bgl.glBegin(bgl.GL_POINTS) bgl.glVertex3f(*v.co.to_tuple()) bgl.glEnd() bgl.glDepthRange(0.0, 0.9999) #draw the edges for e in mesh.edges: if e in self.selected: bgl.glColor4d(0.9,0.5,0, a2) bgl.glLineWidth(2) else: bgl.glColor4d(0.5, 0.5, 0, a1) bgl.glLineWidth(1) bgl.glBegin(bgl.GL_LINES) bgl.glVertex3f(*e.v0.co.to_tuple()) bgl.glVertex3f(*e.v1.co.to_tuple()) bgl.glEnd() bgl.glDepthRange(0.0, 1.0) #draw the faces bgl.glBegin(bgl.GL_TRIANGLES) for f in mesh.faces: if f in self.selected: bgl.glColor4d(0.6,0.2,0, a2) else: bgl.glColor4d(0.3, 0.3, 0.3, a1) a = 0 b = 1 c = 2 for i in range(len(f.lvertices)-2): bgl.glVertex3f(*f.lvertices[a].co.to_tuple()) bgl.glVertex3f(*f.lvertices[b].co.to_tuple()) bgl.glVertex3f(*f.lvertices[c].co.to_tuple()) b += 1 c += 1 bgl.glEnd() if False: bgl.glColor3f(0,1,1) bgl.glBegin(bgl.GL_LINES) for f in mesh.faces: p0 = Vector() for v in f.lvertices: p0 += v.co p0 /= len(f.lvertices) p1 = p0 + f.normal * 0.2 bgl.glVertex3f(*p0) bgl.glVertex3f(*p1) bgl.glEnd()