class Endoscope(optic.Optic):
"""F-theta lens
Milton Laikin, Lens Design, 4th ed., CRC Press, 2007, p. 254
"""
def __init__(self):
super().__init__()
self.surfaces.add(index=0, radius=np.inf, thickness=np.inf, material="water")
self.surfaces.add(index=1, radius=np.inf, thickness=0.0310, material="N-BK7")
self.surfaces.add(index=2, radius=0.0284, thickness=0.0334)
self.surfaces.add(index=3, radius=np.inf, thickness=0.008, is_stop=True)
self.surfaces.add(index=4, radius=-0.3742, thickness=0.1139, material="N-LAK12")
self.surfaces.add(index=5, radius=-0.0965, thickness=0.005)
self.surfaces.add(index=6, radius=0.7827, thickness=0.1050, material="SK16")
self.surfaces.add(index=7, radius=-0.0842, thickness=0.0321, material="SF4")
self.surfaces.add(index=8, radius=-0.3720, thickness=0.4515)
self.surfaces.add(index=9, radius=0.5158, thickness=0.8304, material="N-LAF34")
self.surfaces.add(index=10, radius=-0.3939, thickness=0.1884, material="SF4")
self.surfaces.add(index=11, radius=-0.8018, thickness=0.2429)
self.surfaces.add(index=12, radius=0.5380, thickness=0.0969, material="SF4")
self.surfaces.add(index=13, radius=0.2073, thickness=0.7971, material="N-LAF34")
self.surfaces.add(index=14, radius=-0.3509, thickness=0.3442)
self.surfaces.add(index=15, radius=0.5158, thickness=0.8304, material="N-LAF34")
self.surfaces.add(index=16, radius=-0.3939, thickness=0.1884, material="SF4")
self.surfaces.add(index=17, radius=-0.8018, thickness=0.2429)
self.surfaces.add(index=18, radius=0.5380, thickness=0.0969, material="SF4")
self.surfaces.add(index=19, radius=0.2073, thickness=0.7971, material="N-LAF34")
self.surfaces.add(index=20, radius=-0.3509, thickness=0.4087)
self.surfaces.add(index=21, radius=0.5158, thickness=0.8304, material="N-LAF34")
self.surfaces.add(index=22, radius=-0.3939, thickness=0.1884, material="SF4")
self.surfaces.add(index=23, radius=-0.8018, thickness=0.2429)
self.surfaces.add(index=24, radius=0.5380, thickness=0.0969, material="SF4")
self.surfaces.add(index=25, radius=0.2073, thickness=0.7971, material="N-LAF34")
self.surfaces.add(index=26, radius=-0.3509, thickness=0.2002)
self.surfaces.add(index=27)
self.set_aperture(aperture_type="imageFNO", value=3.0)
self.fields.set_type(field_type="angle")
self.fields.add(0.0)
self.fields.add(13)
self.fields.add(25)
self.wavelengths.add(value=0.4861327)
self.wavelengths.add(value=0.5875618, is_primary=True)
self.wavelengths.add(value=0.6562725)