BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
anonymous_namespace{IFormFactor.cpp} Namespace Reference

Functions

bool ShapeIsContainedInLimits (const IFormFactor &formfactor, ZLimits limits, const IRotation &rot, kvector_t translation)
 
bool ShapeOutsideLimits (const IFormFactor &formfactor, ZLimits limits, const IRotation &rot, kvector_t translation)
 

Function Documentation

◆ ShapeIsContainedInLimits()

bool anonymous_namespace{IFormFactor.cpp}::ShapeIsContainedInLimits ( const IFormFactor formfactor,
ZLimits  limits,
const IRotation rot,
kvector_t  translation 
)

Definition at line 94 of file IFormFactor.cpp.

96 {
97  double zbottom = formfactor.bottomZ(rot) + translation.z();
98  double ztop = formfactor.topZ(rot) + translation.z();
99  OneSidedLimit lower_limit = limits.lowerLimit();
100  OneSidedLimit upper_limit = limits.upperLimit();
101  if (!upper_limit.m_limitless && ztop > upper_limit.m_value)
102  return false;
103  if (!lower_limit.m_limitless && zbottom < lower_limit.m_value)
104  return false;
105  return true;
106 }
T z() const
Returns z-component in cartesian coordinate system.
Definition: BasicVector3D.h:68
virtual double topZ(const IRotation &rotation) const =0
Returns the z-coordinate of the lowest point in this shape after a given rotation.
virtual double bottomZ(const IRotation &rotation) const =0
Returns the z-coordinate of the lowest point in this shape after a given rotation.
OneSidedLimit lowerLimit() const
Definition: ZLimits.cpp:39
OneSidedLimit upperLimit() const
Definition: ZLimits.cpp:44
Helper class that represents a onesided limit.
Definition: ZLimits.h:30
double m_value
Definition: ZLimits.h:32
bool m_limitless
Definition: ZLimits.h:31

References IFormFactor::bottomZ(), ZLimits::lowerLimit(), OneSidedLimit::m_limitless, OneSidedLimit::m_value, IFormFactor::topZ(), ZLimits::upperLimit(), and BasicVector3D< T >::z().

Referenced by IFormFactor::createSlicedFormFactor().

Here is the call graph for this function:

◆ ShapeOutsideLimits()

bool anonymous_namespace{IFormFactor.cpp}::ShapeOutsideLimits ( const IFormFactor formfactor,
ZLimits  limits,
const IRotation rot,
kvector_t  translation 
)

Definition at line 107 of file IFormFactor.cpp.

109 {
110  double zbottom = formfactor.bottomZ(rot) + translation.z();
111  double ztop = formfactor.topZ(rot) + translation.z();
112  OneSidedLimit lower_limit = limits.lowerLimit();
113  OneSidedLimit upper_limit = limits.upperLimit();
114  if (!upper_limit.m_limitless && zbottom >= upper_limit.m_value)
115  return true;
116  if (!lower_limit.m_limitless && ztop <= lower_limit.m_value)
117  return true;
118  return false;
119 }

References IFormFactor::bottomZ(), ZLimits::lowerLimit(), OneSidedLimit::m_limitless, OneSidedLimit::m_value, IFormFactor::topZ(), ZLimits::upperLimit(), and BasicVector3D< T >::z().

Referenced by IFormFactor::createSlicedFormFactor().

Here is the call graph for this function: