Source code for crystalpy.diffraction.GeometryType

"""
Represents geometry types/setups: Bragg diffraction, BraggTransmission, Laue diffraction, Laue transmission.
"""


[docs]class GeometryType(object): """Constructor. Parameters ---------- description : Description of the geometry type, e.g. "Bragg transmission" Returns ------- """ def __init__(self, description): self._description = description
[docs] def description(self): """Returns the description of this geometry type. :return: Description of this geometry type. Parameters ---------- Returns ------- """ return self._description
def __eq__(self, candidate): """ Determines if two instances are equal. :param candidate: Instances to compare to. :return: True if both instances are equal. Otherwise False. """ return self.description() == candidate.description() def __ne__(self, candidate): """ Determines if two instances are not equal. :param candidate: Instances to compare. :return: True if both instances are not equal. Otherwise False. """ return not self == candidate def __hash__(self): """ Returns the hash value of this instance. :return: Hash value of this instance. """ # As hash value just use the hash of the description. return hash(self._description)
[docs] @staticmethod def allGeometryTypes(): """Returns all possible geometry types. :return: All possible geometry types. Parameters ---------- Returns ------- """ return [BraggDiffraction(), LaueDiffraction(), BraggTransmission(), LaueTransmission()]
[docs]class LaueDiffraction(GeometryType): """Represents Laue diffraction.""" def __init__(self): super(LaueDiffraction, self).__init__("Laue diffraction")
[docs]class BraggDiffraction(GeometryType): """Represents Bragg diffraction.""" def __init__(self): super(BraggDiffraction, self).__init__("Bragg diffraction")
[docs]class LaueTransmission(GeometryType): """Represents Laue transmission.""" def __init__(self): super(LaueTransmission, self).__init__("Laue transmission")
[docs]class BraggTransmission(GeometryType): """Represents Bragg transmission.""" def __init__(self): super(BraggTransmission, self).__init__("Bragg transmission")