def __init__(self):
        # This sets up a variable for every component on this form.
        # For example, if we've drawn a button called "send_button", we can
        # refer to it as self.send_button:
        self.init_components()
        #self.mouse = physics.vector3(0,0)
        self.slits = slits()
        # self.slits.txt_N.set_event_handler("pressed_enter", self.change)
        # self.slits.txt_d.set_event_handler("pressed_enter", self.change)
        self.grid_opt.add_component(self.slits)
        self.aperture = "slits"

        self.grating = grating()
        self.single = single()
        #self.single.txt_a.set_event_handler("pressed_enter", self.change)

        #self.grating.txt_n.set_event_handler("pressed_enter", self.change)

        # Any code you write here will run when the form opens.
        #Uncomment as required.
        #self.running= False
        self.reset = True
        self.dt = self.timer.interval
        self.first = True

        #self.t = 0
        #SET SCALE (pixels per m, or unit used in code)
        self.xu = 1

        self.ang_range = 2 * math.asin(float(self.W) / (2 * self.R))
    def __init__(self):
        # This sets up a variable for every component on this form.
        # For example, if we've drawn a button called "send_button", we can
        # refer to it as self.send_button:
        self.init_components()
        #self.mouse = physics.vector3(0,0)
        self.slits = slits()
        # self.slits.txt_N.set_event_handler("pressed_enter", self.change)
        # self.slits.txt_d.set_event_handler("pressed_enter", self.change)
        self.grid_opt.add_component(self.slits)
        self.aperture = "slits"

        self.grating = grating()
        self.single = single()
        #self.single.txt_a.set_event_handler("pressed_enter", self.change)


        #self.grating.txt_n.set_event_handler("pressed_enter", self.change)

        # Any code you write here will run when the form opens.
        #Uncomment as required.
        #self.running= False
        self.reset = True
        self.dt = self.timer.interval
        self.first = True

        #self.t = 0
        #SET SCALE (pixels per m, or unit used in code)
        self.xu = 1

        self.ang_range = 2*math.asin(float(self.W)/(2*self.R))
 def btn_grating_click(self, **event_args):
     self.grid_opt.clear()
     self.grating = grating()
     self.grid_opt.add_component(self.grating)
     self.aperture = "grating"
     self.rad_int.enabled = False
     self.rad_pat.selected = True
     self.change()
 def btn_grating_click(self, **event_args):
     self.grid_opt.clear()
     self.grating = grating()
     self.grid_opt.add_component(self.grating)
     self.aperture = "grating"
     self.rad_int.enabled = False
     self.rad_pat.selected = True
     self.change()