Example #1
0
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()
Example #2
0
                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":