28 double zbottom = formfactor.
bottomZ(rot) + translation.
z();
29 double ztop = formfactor.
topZ(rot) + translation.
z();
41 double zbottom = formfactor.
bottomZ(rot) + translation.
z();
42 double ztop = formfactor.
topZ(rot) + translation.
z();
61 if (shapeIsContainedInLimits(*
this, limits, rot, translation))
63 if (shapeOutsideLimits(*
this, limits, rot, translation))
67 throw std::runtime_error(
getName()
68 +
"::createSlicedFormFactor error: not supported for "
69 "the given rotation!");
75 throw std::runtime_error(
"IFormFactor::evaluatePol: is not implemented by default");
81 return std::abs(
evaluate(zero_wavevectors));
85 std::unique_ptr<const ILayerRTCoefficients>)
96 throw std::runtime_error(
getName() +
"::sliceFormFactor error: not implemented!");
102 std::unique_ptr<IFormFactor> P_fftemp, P_result;
104 P_fftemp = std::make_unique<FormFactorDecoratorRotation>(formfactor, rot);
106 P_fftemp.reset(formfactor.
clone());
108 P_result = std::make_unique<FormFactorDecoratorPositionFactor>(*P_fftemp, translation);
111 return P_result.release();
Defines and implements class ILayerRTCoefficients.
void swap(OutputDataIterator< TValue, TContainer > &left, OutputDataIterator< TValue, TContainer > &right)
make Swappable
Defines IRotation classes.
BasicVector3D< double > kvector_t
T z() const
Returns z-component in cartesian coordinate system.
const std::string & getName() const
Abstract base class for rotations.
virtual bool isIdentity() const
Returns true if rotation matrix is identity matrix (no rotations)
Abstract base class for sample components and properties related to scattering.
Holds all wavevector information relevant for calculating form factors.
static WavevectorInfo GetZeroQ()
Class that contains upper and lower limits of the z-coordinate for the slicing of form factors.
OneSidedLimit lowerLimit() const
OneSidedLimit upperLimit() const
Helper class that represents a onesided limit.