15 #ifndef BORNAGAIN_CORE_LATTICE_ISELECTIONRULE_H
16 #define BORNAGAIN_CORE_LATTICE_ISELECTIONRULE_H
30 virtual bool coordinateSelected(
const ivector_t& coordinate)
const = 0;
44 virtual bool coordinateSelected(
const ivector_t& coordinate)
const;
51 inline SimpleSelectionRule::SimpleSelectionRule(
int a,
int b,
int c,
int modulus)
52 : m_a(a), m_b(b), m_c(c), m_mod(modulus)
61 inline bool SimpleSelectionRule::coordinateSelected(
const ivector_t& coordinate)
const
63 return (m_a * coordinate[0] + m_b * coordinate[1] + m_c * coordinate[2]) % m_mod == 0;
Defines basic vectors in R^3 and C^3.
Forked from CLHEP/Geometry by E.
Pure virtual base class for selection rules.
Selection rule (v*q)modulus!=0, defined by vector v(a,b,c) and modulus.