"""
Abstract decorator classes for wofry beamline light sources and optical elements.
"""
from wofry.propagator.wavefront import Wavefront
[docs]class LightSourceDecorator():
[docs] def get_wavefront(self, wavefront_parameters):
raise NotImplementedError("This method should be specialized by specific implementors" +
"\n\nreturns " + Wavefront.__module__ + "." + Wavefront.__name__)
[docs]class OpticalElementDecorator(object):
def __init__(self):
super().__init__()
[docs] def applyOpticalElement(self, wavefront=None, parameters=None, element_index=None):
raise NotImplementedError("This method should be specialized by specific implementors" +
"\n\naccepts " + Wavefront.__module__ + "." + Wavefront.__name__ +
"\nreturns " + Wavefront.__module__ + "." + Wavefront.__name__)