15 #ifndef BORNAGAIN_CORE_INSTRUMENT_ISPECULARSCAN_H
16 #define BORNAGAIN_CORE_INSTRUMENT_ISPECULARSCAN_H
47 virtual std::vector<double>
footprint(
size_t i,
size_t n_elements)
const = 0;
53 virtual std::vector<double>
57 virtual std::string
print()
const = 0;
63 return os << scan.
print();
Defines and implements the standard mix-in ICloneable.
std::ostream & operator<<(std::ostream &os, const BasicVector3D< T > &a)
Output to stream.
Interface for one-dimensional axes.
Interface for polymorphic classes that should not be copied, except by explicit cloning.
Pure virtual base class for all types of specular scans.
virtual std::vector< SpecularSimulationElement > generateSimulationElements() const =0
Generates simulation elements for specular simulations.
virtual std::vector< double > footprint(size_t i, size_t n_elements) const =0
Returns footprint correction factor for a range of simulation elements of size n_elements and startin...
virtual const IAxis * coordinateAxis() const =0
Returns coordinate axis assigned to the data holder.
virtual const IFootprintFactor * footprintFactor() const =0
Returns IFootprintFactor object pointer.
virtual std::string print() const =0
Print scan definition in python format.
virtual std::vector< double > createIntensities(const std::vector< SpecularSimulationElement > &sim_elements) const =0
Returns intensity vector corresponding to convolution of given simulation elements.
virtual size_t numberOfSimulationElements() const =0
Returns the number of simulation elements.
Data stucture containing both input and output of a single image pixel for specular simulation.