"""
WOScreen — wofry ideal screen (pass-through optical element) for 2D and 1D wavefronts.
"""
from syned.beamline.optical_elements.ideal_elements.screen import Screen
from wofry.beamline.decorators import OpticalElementDecorator
[docs]
class WOScreen(Screen, OpticalElementDecorator):
def __init__(self, name="Undefined"):
Screen.__init__(self, name=name)
[docs]
def applyOpticalElement(self, wavefront, parameters=None, element_index=None):
return wavefront
[docs]
def to_python_code(self):
txt = ""
txt += "\nfrom wofryimpl.beamline.optical_elements.ideal_elements.screen import WOScreen"
txt += "\n"
txt += "\noptical_element = WOScreen()"
txt += "\n"
return txt
[docs]
class WOScreen1D(Screen, OpticalElementDecorator):
def __init__(self, name="Undefined"):
Screen.__init__(self, name=name)
[docs]
def applyOpticalElement(self, wavefront, parameters=None, element_index=None):
return wavefront
[docs]
def to_python_code(self):
txt = ""
txt += "\nfrom wofryimpl.beamline.optical_elements.ideal_elements.screen import WOScreen1D"
txt += "\n"
txt += "\noptical_element = WOScreen1D()"
txt += "\n"
return txt