示例#1
0
 def draw_axis(self, axis, label):
     if self.minimum_covering_sphere is None:
         self.update_minimum_covering_sphere()
     s = self.minimum_covering_sphere
     scale = max(max(s.box_max()), abs(min(s.box_min())))
     gltbx.fonts.ucs_bitmap_8x13.setup_call_lists()
     gl.glDisable(gl.GL_LIGHTING)
     if self.settings.black_background:
         gl.glColor3f(1.0, 1.0, 1.0)
     else:
         gl.glColor3f(0.0, 0.0, 0.0)
     gl.glLineWidth(1.0)
     gl.glBegin(gl.GL_LINES)
     gl.glVertex3f(0.0, 0.0, 0.0)
     gl.glVertex3f(axis[0] * scale, axis[1] * scale, axis[2] * scale)
     gl.glEnd()
     gl.glRasterPos3f(0.5 + axis[0] * scale, 0.2 + axis[1] * scale,
                      0.2 + axis[2] * scale)
     gltbx.fonts.ucs_bitmap_8x13.render_string(label)
     gl.glEnable(gl.GL_LINE_STIPPLE)
     gl.glLineStipple(4, 0xAAAA)
     gl.glBegin(gl.GL_LINES)
     gl.glVertex3f(0.0, 0.0, 0.0)
     gl.glVertex3f(-axis[0] * scale, -axis[1] * scale, -axis[2] * scale)
     gl.glEnd()
     gl.glDisable(gl.GL_LINE_STIPPLE)
示例#2
0
 def draw_cell(self, axes, color):
     astar, bstar, cstar = axes[0], axes[1], axes[2]
     gltbx.fonts.ucs_bitmap_8x13.setup_call_lists()
     gl.glDisable(gl.GL_LIGHTING)
     gl.glColor3f(*color)
     gl.glLineWidth(2.0)
     gl.glBegin(gl.GL_LINES)
     gl.glVertex3f(0.0, 0.0, 0.0)
     gl.glVertex3f(*astar.elems)
     gl.glVertex3f(0.0, 0.0, 0.0)
     gl.glVertex3f(*bstar.elems)
     gl.glVertex3f(0.0, 0.0, 0.0)
     gl.glVertex3f(*cstar.elems)
     gl.glEnd()
     gl.glRasterPos3f(*(1.01 * astar).elems)
     gltbx.fonts.ucs_bitmap_8x13.render_string("a*")
     gl.glRasterPos3f(*(1.01 * bstar).elems)
     gltbx.fonts.ucs_bitmap_8x13.render_string("b*")
     gl.glRasterPos3f(*(1.01 * cstar).elems)
     gltbx.fonts.ucs_bitmap_8x13.render_string("c*")
     gl.glEnable(gl.GL_LINE_STIPPLE)
     gl.glLineStipple(4, 0xAAAA)
     farpoint = astar + bstar + cstar
     # a* face
     gl.glBegin(gl.GL_LINE_LOOP)
     gl.glVertex3f(*farpoint.elems)
     gl.glVertex3f(*(farpoint - bstar).elems)
     gl.glVertex3f(*(farpoint - bstar - cstar).elems)
     gl.glVertex3f(*(farpoint - cstar).elems)
     gl.glEnd()
     # b* face
     gl.glBegin(gl.GL_LINE_LOOP)
     gl.glVertex3f(*farpoint.elems)
     gl.glVertex3f(*(farpoint - astar).elems)
     gl.glVertex3f(*(farpoint - astar - cstar).elems)
     gl.glVertex3f(*(farpoint - cstar).elems)
     gl.glEnd()
     # c* face
     gl.glBegin(gl.GL_LINE_LOOP)
     gl.glVertex3f(*farpoint.elems)
     gl.glVertex3f(*(farpoint - bstar).elems)
     gl.glVertex3f(*(farpoint - bstar - astar).elems)
     gl.glVertex3f(*(farpoint - astar).elems)
     gl.glEnd()
     gl.glDisable(gl.GL_LINE_STIPPLE)