def write_body(self): try: from matplotlib.path import Path except ImportError: Path = None from matplotlib.patches import Circle, Polygon else: from matplotlib.patches import Circle, PathPatch indices = self.X[:, 2].argsort() for a in indices: xy = self.X[a, :2] if a < self.natoms: r = self.d[a] / 2 if ((xy[1] + r > 0) and (xy[1] - r < self.h) and (xy[0] + r > 0) and (xy[0] - r < self.w)): circle = Circle(xy, r, facecolor=self.colors[a]) circle.draw(self.renderer) else: a -= self.natoms c = self.T[a] if c != -1: hxy = self.D[c] if Path is None: line = Polygon((xy + hxy, xy - hxy)) else: line = PathPatch(Path((xy + hxy, xy - hxy))) line.draw(self.renderer)
def draw(self, renderer): if isSupportedRenderer(renderer): renderer.use_gl = True glcanvas = get_glcanvas() if self.axes is not None: tag = self.axes trans = self.axes.transAxes elif self.figure is not None: tag = self.figure trans = self.figure.transFigure gc = renderer.new_gc() rgbFace = self._facecolor gc.set_foreground(self._edgecolor, isRGBA=True) glcanvas.frame_request(self, trans) # if not glcanvas.has_vbo_data(self): glcanvas.start_draw_request(self) if self._invalidz: if glcanvas.has_vbo_data(self): d = glcanvas.get_vbo_data(self) d[0]['v'].need_update = True self._invalidz = False renderer.gl_draw_path(gc, self._verts3d, trans, rgbFace=rgbFace, stencil_test=self.do_stencil_test) # glcanvas.update_gc(self, gc) glcanvas.end_draw_request() # else: # glcanvas.update_gc(self, gc) gc.restore() renderer.use_gl = False finish_gl_drawing(glcanvas, renderer, tag, trans) else: Polygon.draw(self, renderer)
def draw(self, renderer): if isSupportedRenderer(renderer): renderer.use_gl = True glcanvas = get_glcanvas() if self.axes is not None: tag = self.axes trans = self.axes.transAxes elif self.figure is not None: tag = self.figure trans = self.figure.transFigure gc = renderer.new_gc() rgbFace = self._facecolor gc.set_foreground(self._edgecolor, isRGBA=True) glcanvas.frame_request(self, trans) # if not glcanvas.has_vbo_data(self): glcanvas.start_draw_request(self) if self._invalidz: if glcanvas.has_vbo_data(self): d = glcanvas.get_vbo_data(self) d[0]['v'].need_update = True self._invalidz = False renderer.gl_draw_path(gc, self._verts3d, trans, rgbFace = rgbFace, stencil_test = self.do_stencil_test) # glcanvas.update_gc(self, gc) glcanvas.end_draw_request() # else: # glcanvas.update_gc(self, gc) gc.restore() renderer.use_gl = False finish_gl_drawing(glcanvas, renderer, tag, trans) else: Polygon.draw(self, renderer)