def on_key_press(symbol, modifiers): global run global mode, user, demonstration, ottman if symbol == pyglet.window.key.S: run = not run if symbol == pyglet.window.key.L: mode = "line" if symbol == pyglet.window.key.P: mode = "polygon" if symbol == pyglet.window.key.V: mode = "vertex" if symbol == pyglet.window.key.N: if mode == "polygon": user.polygons.append(basics.Polygon()) if len(user.polygons) > 1: for v in user.polygons[-2].getVectors(): for e in sweep.Event.lineEvents(v): ottman.addEvent(e) if symbol == pyglet.window.key.X: for event in ottman.process(): X, Y = win.get_size() v1 = basics.Vertex(event.point.x, 0) v2 = basics.Vertex(event.point.x, Y) demonstration.lines = [basics.Vector(v1, v2)] if event.type == "Cross": demonstration.points.append(event.point) if symbol == pyglet.window.key.C: user = Environment() demonstration = Environment((1.0, 0, 0, 1.0), 7) ottman = sweep.sweepCrossingLines()
pyglet.graphics.draw(size / 2 - 1, pyglet.gl.GL_LINES, ('v2i', lines[:-2])) self.drawVertices(lines[-2:]) else: pyglet.graphics.draw(size / 2, pyglet.gl.GL_LINES, ('v2i', lines)) def draw(self): pyglet.gl.glColor4f(*self.color) self.drawVertices(self.points) self.drawPolygons() self.drawLines(self.lines) self.drawVertices(self.lineStart) self.drawLabels() user = Environment() demonstration = Environment((1.0, 0, 0, 1.0), 7) ottman = sweep.sweepCrossingLines() def updatePts(points, opX, opY): for i in range(0, 2 * (len(points) / 2), 2): points[i] = opX(points[i]) points[i + 1] = opY(points[i + 1]) @win.event def on_mouse_press(x, y, button, modifiers): if button == pyglet.window.mouse.LEFT: if mode == "polygon": v = basics.Vertex(x, y) if len(user.polygons) == 0: user.polygons.append(basics.Polygon()) user.polygons[-1].vertices.append(v) elif mode == "vertex":