def for_each(self, points): for pos in points: glPushMatrix() translate(pos) self.func(*self.args, **self.kwargs) glPopMatrix() self._triggered = True
def draw(self, **kwargs): style = kwargs.get('style', 'wireframe') glPushAttrib(GL_POLYGON_BIT) if style == 'wireframe': glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) self._pre_draw() pushMatrix() translate(self.origin) for ibo, mode in self._index_buffers: ibo.bind() glDrawElements(mode, len(ibo), GL_UNSIGNED_INT, None) ibo.unbind() popMatrix() self._post_draw() glPopAttrib()
def draw(self, **kwargs): style = kwargs.get('style', 'wireframe') glPushAttrib(GL_POLYGON_BIT) if style == 'wireframe': glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) self._pre_draw() pushMatrix() translate(self.origin) if self._index_buffer: glDrawElements(self._render_mode, len(self._index_buffer), GL_UNSIGNED_INT, None) else: glDrawArrays(self._render_mode, 0, self._num_vertices) popMatrix() self._post_draw() glPopAttrib()
def at(self, point): glPushMatrix() translate(point) self.func(*self.args, **self.kwargs) glPopMatrix() self._triggered = True
def for_each(self, callback, *args, **kwargs): for point in self: glPushMatrix() translate(point) callback(*args, **kwargs) glPopMatrix()
def __call__(self, points, *args, **kwargs): for p in points: glPushMatrix() translate(p) self._callback(*args, **kwargs) glPopMatrix()