9#include "MantidGeometry/DllConfig.h"
44 std::string
getName()
override {
return "Primitive"; }
48 bool isAllowed(
int ,
int ,
int )
override {
return true; }
56 std::string
getName()
override {
return "C-face centred"; }
60 bool isAllowed(
int h,
int k,
int )
override {
return (((h + k) % 2) == 0); }
68 std::string
getName()
override {
return "A-face centred"; }
72 bool isAllowed(
int ,
int k,
int l)
override {
return (((k + l) % 2) == 0); }
80 std::string
getName()
override {
return "B-face centred"; }
84 bool isAllowed(
int h,
int ,
int l)
override {
return (((h + l) % 2) == 0); }
92 std::string
getName()
override {
return "Body centred"; }
96 bool isAllowed(
int h,
int k,
int l)
override {
return ((h + k + l) % 2) == 0; }
104 std::string
getName()
override {
return "All-face centred"; }
109 return (((((h + k) % 2) == 0) && (((h + l) % 2) == 0) && (((k + l) % 2) == 0)) |
110 ((h % 2 == 0) && (k % 2 == 0) && (l % 2 == 0)) ||
111 ((h % 2 == 1) && (k % 2 == 1) && (l % 2 == 1)));
120 std::string
getName()
override {
return "Rhombohedrally centred, obverse"; }
124 bool isAllowed(
int h,
int k,
int l)
override {
return (((-h + k + l) % 3) == 0); }
132 std::string
getName()
override {
return "Rhombohedrally centred, reverse"; }
136 bool isAllowed(
int h,
int k,
int l)
override {
return (((h - k + l) % 3) == 0); }
144 std::string
getName()
override {
return "Hexagonally centred, reverse"; }
148 bool isAllowed(
int h,
int k,
int )
override {
return (((h - k) % 3) == 0); }
A-face centred ReflectionCondition.
std::string getName() override
Name of the reflection condition.
bool isAllowed(int, int k, int l) override
Return true if the hkl is allowed.
std::string getSymbol() override
Symbol of the associated lattice centering.
All-face centred ReflectionCondition.
std::string getName() override
Name of the reflection condition.
std::string getSymbol() override
Symbol of the associated lattice centering.
bool isAllowed(int h, int k, int l) override
Return true if the hkl is allowed.
B-face centred ReflectionCondition.
std::string getSymbol() override
Symbol of the associated lattice centering.
std::string getName() override
Name of the reflection condition.
bool isAllowed(int h, int, int l) override
Return true if the hkl is allowed.
Body centred ReflectionCondition.
std::string getSymbol() override
Symbol of the associated lattice centering.
bool isAllowed(int h, int k, int l) override
Return true if the hkl is allowed.
std::string getName() override
Name of the reflection condition.
C-face centred ReflectionCondition.
bool isAllowed(int h, int k, int) override
Return true if the hkl is allowed.
std::string getSymbol() override
Symbol of the associated lattice centering.
std::string getName() override
Name of the reflection condition.
Hexagonally centred, reverse ReflectionCondition.
bool isAllowed(int h, int k, int) override
Return true if the hkl is allowed.
std::string getSymbol() override
Symbol of the associated lattice centering.
std::string getName() override
Name of the reflection condition.
Primitive ReflectionCondition.
std::string getSymbol() override
Symbol of the associated lattice centering.
std::string getName() override
Name of the reflection condition.
bool isAllowed(int, int, int) override
Return true if the hkl is allowed.
Rhombohedrally centred, obverse ReflectionCondition.
std::string getSymbol() override
Symbol of the associated lattice centering.
std::string getName() override
Name of the reflection condition.
bool isAllowed(int h, int k, int l) override
Return true if the hkl is allowed.
Rhombohedrally centred, reverse ReflectionCondition.
std::string getSymbol() override
Symbol of the associated lattice centering.
bool isAllowed(int h, int k, int l) override
Return true if the hkl is allowed.
std::string getName() override
Name of the reflection condition.
A class containing the Reflection Condition for a crystal.
virtual bool isAllowed(int h, int k, int l)=0
Return true if the hkl is allowed.
virtual std::string getName()=0
Name of the reflection condition.
virtual ~ReflectionCondition()=default
virtual std::string getSymbol()=0
Symbol of the associated lattice centering.
std::shared_ptr< ReflectionCondition > ReflectionCondition_sptr
Shared pointer to a ReflectionCondition.
MANTID_GEOMETRY_DLL ReflectionCondition_sptr getReflectionConditionBySymbol(const std::string &symbol)
Returns the ReflectionCondition for the specified centering symbol, see getAllReflectionConditionSymb...
std::vector< ReflectionCondition_sptr > ReflectionConditions
A collection of reflections.
MANTID_GEOMETRY_DLL const ReflectionConditions & getAllReflectionConditions()
MANTID_GEOMETRY_DLL ReflectionCondition_sptr getReflectionConditionByName(const std::string &name)
Returns the requested ReflectionCondition, see getAllReflectionConditionNames for possible names.
MANTID_GEOMETRY_DLL std::vector< std::string > getAllReflectionConditionSymbols()
Returns all centering symbols.
MANTID_GEOMETRY_DLL std::vector< std::string > getAllReflectionConditionNames()
Returns all ReflectionCondition names.
Helper class which provides the Collimation Length for SANS instruments.