Exemple #1
0
class EnigmaX():
    def __init__(self):
        self.builder = Gtk.Builder()
        self.builder.add_from_file(gtk_builder_file)
        self.engine = Engine()
        self.window = self.builder.get_object('windowMain')
        self.textBox = self.builder.get_object('entry')
        self.label = self.builder.get_object('label')
        self.label2 = self.builder.get_object('enigma')
        self.engineToString()

        self.textBox.connect('activate', self.signal_text_activate)
        self.textBox.connect('changed', self.signal_text_changed)
        self.window.connect('destroy', self.signal_window_destroy)

        self.ciphertext = ''

        self.window.show_all()
    
    def signal_window_destroy(self, _):
        self.window.destroy()
        Gtk.main_quit()

    def signal_text_activate(self, *args):
        self.label.set_text(self.engine.run(self.textBox.get_text()))
        self.engineToString()
    
    def signal_text_changed(self, *args):
        newChar = self.textBox.get_text()[-1] if len(self.textBox.get_text()) else ''
        self.ciphertext += self.engine.translate(newChar.upper())
        self.label.set_text(self.ciphertext)
        self.engineToString()
    
    def engineToString(self):
        self.label2.set_text(self.engine.toString())
F = Flocker()

#Gen 3D data (cube)
points = []
spacing = 20
for x in range(-8, 8, 2):
    for y in range(-8, 8, 2):
        for z in range(1):
            points.append(((x+1)*spacing, (y+1)*spacing+1, z))
points = np.array(points)



#Project it on 2D plane and move origin to center of screen
projected = E.project(points)
projected = E.translate(projected, 320)
R.points = points#projected

D = Distortion(np.array([[20,20,5]]), 30)

#Render and handle events
R.start()
F.start(points)

endRun = False
space = points
while not endRun:
    R.points = F.space#E.translate(E.project(F.space), 320)
    for event in pygame.event.get():
        if event.type == QUIT:
            R.stop()