Skip to content

Class rayx::DesignElement

ClassList > rayx > DesignElement

Inherits the following classes: rayx::BeamlineNode

Public Attributes

Type Name
DesignMap m_elementParameters

Public Functions

Type Name
DesignElement ()
DesignElement (std::string name)
DesignElement (const DesignElement & other) = delete
DesignElement (DesignElement && other) noexcept
virtual std::unique_ptr< BeamlineNode > clone () override const
Creates a deep copy (clone) of this BeamlineNode .
OpticalElementAndTransform compile (const glm::dvec4 & groupPosition, const glm::dmat4 & groupOrientation) const
int getAdditionalOrder () const
double getArmLength () const
Rad getAzimuthalAngle () const
BehaviourType getBehaviourType () const
CentralBeamstop getCentralBeamstop () const
Coating getCoating () const
std::string getCrystalMaterial () const
CrystalType getCrystalType () const
CurvatureType getCurvatureType () const
Cutout getCutout () const
double getDSpacing2 () const
Rad getDesignAlphaAngle () const
Rad getDesignBetaAngle () const
double getDesignEnergy () const
Rad getDesignGrazingIncAngle () const
double getDesignMeridionalEntranceArmLength () const
double getDesignMeridionalExitArmLength () const
int getDesignOrderOfDiffraction () const
DesignPlane getDesignPlane () const
double getDesignSagittalEntranceArmLength () const
double getDesignSagittalExitArmLength () const
Rad getDeviationAngle () const
double getDistancePreceding () const
double getEntranceArmLength () const
double getExitArmLength () const
Surface getExpertsCubic () const
Surface getExpertsOptics () const
FigureRotation getFigureRotation () const
double getFresnelZOffset () const
Cutout getGlobalCutout () const
Rad getGrazingIncAngle () const
int getImageType () const
double getLineDensity () const
double getLongHalfAxisA () const
double getLongRadius () const
Material getMaterial () const
Material getMaterialCoating () const
virtual std::string getName () override const
Rad getOffsetAngle () const
OffsetAngleType getOffsetAngleType () const
double getOpeningHeight () const
CutoutType getOpeningShape () const
double getOpeningWidth () const
int getOrderOfDiffraction () const
virtual glm::dmat4x4 getOrientation () override const
Gets the local orientation (rotation/transform) of this node.
double getParameterA11 () const
double getParameterP () const
double getParameterPType () const
virtual glm::dvec4 getPosition () override const
Gets the local position of this node.
double getProfileFile () const
int getProfileKind () const
double getRadius () const
CylinderDirection getRadiusDirection () const
double getRoughnessCoating () const
double getRoughnessSubstrate () const
double getShortHalfAxisB () const
double getShortRadius () const
SlopeError getSlopeError () const
double getStopHeight () const
double getStopWidth () const
double getStructureFactorImF0 () const
double getStructureFactorImFH () const
double getStructureFactorImFHC () const
double getStructureFactorReF0 () const
double getStructureFactorReFH () const
double getStructureFactorReFHC () const
SurfaceCoatingType getSurfaceCoatingType () const
double getThicknessCoating () const
double getThicknessSubstrate () const
double getTotalHeight () const
double getTotalLength () const
double getTotalWidth () const
ElementType getType () const
double getUnitCellVolume () const
std::array< double, 6 > getVLSParameters () const
virtual bool isElement () override const
DesignElement & operator= (const DesignElement & other) = delete
DesignElement & operator= (DesignElement && other) noexcept
void setAdditionalOrder (int value)
void setArmLength (double value)
void setAzimuthalAngle (Rad r)
void setBehaviourType (BehaviourType value)
void setCalcRadius ()
void setCalcRadiusDeviationAngle ()
void setCentralBeamstop (CentralBeamstop d)
void setCrystalMaterial (const std::string & value)
void setCrystalType (CrystalType value)
void setCurvatureType (CurvatureType value)
void setCutout (Cutout c)
void setDSpacing2 (double value)
void setDesignAlphaAngle (Rad value)
void setDesignBetaAngle (Rad value)
void setDesignEnergy (double value)
void setDesignGrazingIncAngle (Rad value)
void setDesignMeridionalEntranceArmLength (double value)
void setDesignMeridionalExitArmLength (double value)
void setDesignOrderOfDiffraction (int value)
void setDesignPlane (DesignPlane value)
void setDesignSagittalEntranceArmLength (double value)
void setDesignSagittalExitArmLength (double value)
void setDeviationAngle (Rad value)
void setDistancePreceding (double d)
void setEntranceArmLength (double value)
void setExitArmLength (double value)
void setExpertsCubic (Surface value)
void setExpertsOptics (Surface value)
void setFigureRotation (FigureRotation value)
void setFresnelZOffset (double value)
void setGrazingIncAngle (Rad value)
void setImageType (int value)
void setLineDensity (double value)
void setLongHalfAxisA (double value)
void setLongRadius (double value)
void setMaterial (Material m)
void setMaterialCoating (Material value)
void setMultilayerCoating (const Coating::MultilayerCoating & coating)
virtual void setName (std::string s) override
void setOffsetAngle (Rad value)
void setOffsetAngleType (OffsetAngleType value)
void setOpeningHeight (double d)
void setOpeningShape (CutoutType shape)
void setOpeningWidth (double d)
void setOrderOfDiffraction (int value)
void setOrientation (glm::dmat4x4 o)
void setParameterA11 (double value)
void setParameterP (double value)
void setParameterPType (double value)
void setPosition (glm::dvec4 p)
void setProfileFile (double value)
void setProfileKind (int value)
void setRadius (double value)
void setRadiusDirection (CylinderDirection value)
void setRoughnessCoating (double value)
void setRoughnessSubstrate (double value)
void setShortHalfAxisB (double value)
void setShortRadius (double value)
void setSlopeError (SlopeError s)
void setStopHeight (double height)
void setStopWidth (double d)
void setStructureFactorImF0 (double value)
void setStructureFactorImFH (double value)
void setStructureFactorImFHC (double value)
void setStructureFactorReF0 (double value)
void setStructureFactorReFH (double value)
void setStructureFactorReFHC (double value)
void setSurfaceCoatingType (SurfaceCoatingType value)
void setThicknessCoating (double value)
void setThicknessSubstrate (double value)
void setTotalHeight (double d)
void setTotalLength (double value)
void setTotalWidth (double width)
void setType (ElementType s)
void setUnitCellVolume (double value)
void setVLSParameters (const std::array< double, 6 > & values)
~DesignElement () = default

Public Functions inherited from rayx::BeamlineNode

See rayx::BeamlineNode

Type Name
const DesignElement * asElement () const
DesignElement * asElement ()
const Group * asGroup () const
Group * asGroup ()
const DesignSource * asSource () const
DesignSource * asSource ()
virtual std::unique_ptr< BeamlineNode > clone () const = 0
Creates a deep copy (clone) of this BeamlineNode .
virtual std::string getName () const = 0
int getObjectId () const
virtual glm::dmat4 getOrientation () const = 0
Gets the local orientation (rotation/transform) of this node.
const BeamlineNode * getParent () const
BeamlineNode * getParent ()
virtual glm::dvec4 getPosition () const = 0
Gets the local position of this node.
const BeamlineNode * getRoot () const
BeamlineNode * getRoot ()
glm::dmat4 getWorldOrientation () const
Computes the absolute/world orientation of this node.
glm::dvec4 getWorldPosition () const
Computes the absolute/world position of this node.
bool hasParent () const
virtual bool isElement () const
virtual bool isGroup () const
virtual bool isSource () const
virtual const BeamlineNode * operator[] (size_t index) const
virtual BeamlineNode * operator[] (size_t index)
virtual const BeamlineNode * operator[] (const std::string & name) const
virtual BeamlineNode * operator[] (const std::string & name)
virtual void setName (std::string name) = 0
virtual ~BeamlineNode () = default

Public Attributes Documentation

variable m_elementParameters

DesignMap rayx::DesignElement::m_elementParameters;

Public Functions Documentation

function DesignElement [1/4]

rayx::DesignElement::DesignElement () 

function DesignElement [2/4]

rayx::DesignElement::DesignElement (
    std::string name
) 

function DesignElement [3/4]

rayx::DesignElement::DesignElement (
    const DesignElement & other
) = delete

function DesignElement [4/4]

rayx::DesignElement::DesignElement (
    DesignElement && other
) noexcept

function clone

Creates a deep copy (clone) of this BeamlineNode .

virtual std::unique_ptr< BeamlineNode > rayx::DesignElement::clone () override const

Derived classes must implement this to allow duplication of their internal state.

Returns:

A unique_ptr to the newly cloned BeamlineNode.

Implements rayx::BeamlineNode::clone


function compile

OpticalElementAndTransform rayx::DesignElement::compile (
    const glm::dvec4 & groupPosition,
    const glm::dmat4 & groupOrientation
) const

function getAdditionalOrder

int rayx::DesignElement::getAdditionalOrder () const

function getArmLength

double rayx::DesignElement::getArmLength () const

function getAzimuthalAngle

Rad rayx::DesignElement::getAzimuthalAngle () const

function getBehaviourType

BehaviourType rayx::DesignElement::getBehaviourType () const

function getCentralBeamstop

CentralBeamstop rayx::DesignElement::getCentralBeamstop () const

function getCoating

Coating rayx::DesignElement::getCoating () const

function getCrystalMaterial

std::string rayx::DesignElement::getCrystalMaterial () const

function getCrystalType

CrystalType rayx::DesignElement::getCrystalType () const

function getCurvatureType

CurvatureType rayx::DesignElement::getCurvatureType () const

function getCutout

Cutout rayx::DesignElement::getCutout () const

function getDSpacing2

double rayx::DesignElement::getDSpacing2 () const

function getDesignAlphaAngle

Rad rayx::DesignElement::getDesignAlphaAngle () const

function getDesignBetaAngle

Rad rayx::DesignElement::getDesignBetaAngle () const

function getDesignEnergy

double rayx::DesignElement::getDesignEnergy () const

function getDesignGrazingIncAngle

Rad rayx::DesignElement::getDesignGrazingIncAngle () const

function getDesignMeridionalEntranceArmLength

double rayx::DesignElement::getDesignMeridionalEntranceArmLength () const

function getDesignMeridionalExitArmLength

double rayx::DesignElement::getDesignMeridionalExitArmLength () const

function getDesignOrderOfDiffraction

int rayx::DesignElement::getDesignOrderOfDiffraction () const

function getDesignPlane

DesignPlane rayx::DesignElement::getDesignPlane () const

function getDesignSagittalEntranceArmLength

double rayx::DesignElement::getDesignSagittalEntranceArmLength () const

function getDesignSagittalExitArmLength

double rayx::DesignElement::getDesignSagittalExitArmLength () const

function getDeviationAngle

Rad rayx::DesignElement::getDeviationAngle () const

function getDistancePreceding

double rayx::DesignElement::getDistancePreceding () const

function getEntranceArmLength

double rayx::DesignElement::getEntranceArmLength () const

function getExitArmLength

double rayx::DesignElement::getExitArmLength () const

function getExpertsCubic

Surface rayx::DesignElement::getExpertsCubic () const

function getExpertsOptics

Surface rayx::DesignElement::getExpertsOptics () const

function getFigureRotation

FigureRotation rayx::DesignElement::getFigureRotation () const

function getFresnelZOffset

double rayx::DesignElement::getFresnelZOffset () const

function getGlobalCutout

Cutout rayx::DesignElement::getGlobalCutout () const

function getGrazingIncAngle

Rad rayx::DesignElement::getGrazingIncAngle () const

function getImageType

int rayx::DesignElement::getImageType () const

function getLineDensity

double rayx::DesignElement::getLineDensity () const

function getLongHalfAxisA

double rayx::DesignElement::getLongHalfAxisA () const

function getLongRadius

double rayx::DesignElement::getLongRadius () const

function getMaterial

Material rayx::DesignElement::getMaterial () const

function getMaterialCoating

Material rayx::DesignElement::getMaterialCoating () const

function getName

virtual std::string rayx::DesignElement::getName () override const

Implements rayx::BeamlineNode::getName


function getOffsetAngle

Rad rayx::DesignElement::getOffsetAngle () const

function getOffsetAngleType

OffsetAngleType rayx::DesignElement::getOffsetAngleType () const

function getOpeningHeight

double rayx::DesignElement::getOpeningHeight () const

function getOpeningShape

CutoutType rayx::DesignElement::getOpeningShape () const

function getOpeningWidth

double rayx::DesignElement::getOpeningWidth () const

function getOrderOfDiffraction

int rayx::DesignElement::getOrderOfDiffraction () const

function getOrientation

Gets the local orientation (rotation/transform) of this node.

virtual glm::dmat4x4 rayx::DesignElement::getOrientation () override const

Each node may have its own transform relative to its parent.

Returns:

A 4x4 matrix (dmat4) representing the local orientation.

Implements rayx::BeamlineNode::getOrientation


function getParameterA11

double rayx::DesignElement::getParameterA11 () const

function getParameterP

double rayx::DesignElement::getParameterP () const

function getParameterPType

double rayx::DesignElement::getParameterPType () const

function getPosition

Gets the local position of this node.

virtual glm::dvec4 rayx::DesignElement::getPosition () override const

Each node may have its own transform relative to its parent.

Returns:

A 4D vector (dvec4) representing the local position.

Implements rayx::BeamlineNode::getPosition


function getProfileFile

double rayx::DesignElement::getProfileFile () const

function getProfileKind

int rayx::DesignElement::getProfileKind () const

function getRadius

double rayx::DesignElement::getRadius () const

function getRadiusDirection

CylinderDirection rayx::DesignElement::getRadiusDirection () const

function getRoughnessCoating

double rayx::DesignElement::getRoughnessCoating () const

function getRoughnessSubstrate

double rayx::DesignElement::getRoughnessSubstrate () const

function getShortHalfAxisB

double rayx::DesignElement::getShortHalfAxisB () const

function getShortRadius

double rayx::DesignElement::getShortRadius () const

function getSlopeError

SlopeError rayx::DesignElement::getSlopeError () const

function getStopHeight

double rayx::DesignElement::getStopHeight () const

function getStopWidth

double rayx::DesignElement::getStopWidth () const

function getStructureFactorImF0

double rayx::DesignElement::getStructureFactorImF0 () const

function getStructureFactorImFH

double rayx::DesignElement::getStructureFactorImFH () const

function getStructureFactorImFHC

double rayx::DesignElement::getStructureFactorImFHC () const

function getStructureFactorReF0

double rayx::DesignElement::getStructureFactorReF0 () const

function getStructureFactorReFH

double rayx::DesignElement::getStructureFactorReFH () const

function getStructureFactorReFHC

double rayx::DesignElement::getStructureFactorReFHC () const

function getSurfaceCoatingType

SurfaceCoatingType rayx::DesignElement::getSurfaceCoatingType () const

function getThicknessCoating

double rayx::DesignElement::getThicknessCoating () const

function getThicknessSubstrate

double rayx::DesignElement::getThicknessSubstrate () const

function getTotalHeight

double rayx::DesignElement::getTotalHeight () const

function getTotalLength

double rayx::DesignElement::getTotalLength () const

function getTotalWidth

double rayx::DesignElement::getTotalWidth () const

function getType

ElementType rayx::DesignElement::getType () const

function getUnitCellVolume

double rayx::DesignElement::getUnitCellVolume () const

function getVLSParameters

std::array< double, 6 > rayx::DesignElement::getVLSParameters () const

function isElement

inline virtual bool rayx::DesignElement::isElement () override const

Implements rayx::BeamlineNode::isElement


function operator=

DesignElement & rayx::DesignElement::operator= (
    const DesignElement & other
) = delete

function operator=

DesignElement & rayx::DesignElement::operator= (
    DesignElement && other
) noexcept

function setAdditionalOrder

void rayx::DesignElement::setAdditionalOrder (
    int value
) 

function setArmLength

void rayx::DesignElement::setArmLength (
    double value
) 

function setAzimuthalAngle

void rayx::DesignElement::setAzimuthalAngle (
    Rad r
) 

function setBehaviourType

void rayx::DesignElement::setBehaviourType (
    BehaviourType value
) 

function setCalcRadius

void rayx::DesignElement::setCalcRadius () 

function setCalcRadiusDeviationAngle

void rayx::DesignElement::setCalcRadiusDeviationAngle () 

function setCentralBeamstop

void rayx::DesignElement::setCentralBeamstop (
    CentralBeamstop d
) 

function setCrystalMaterial

void rayx::DesignElement::setCrystalMaterial (
    const std::string & value
) 

function setCrystalType

void rayx::DesignElement::setCrystalType (
    CrystalType value
) 

function setCurvatureType

void rayx::DesignElement::setCurvatureType (
    CurvatureType value
) 

function setCutout

void rayx::DesignElement::setCutout (
    Cutout c
) 

function setDSpacing2

void rayx::DesignElement::setDSpacing2 (
    double value
) 

function setDesignAlphaAngle

void rayx::DesignElement::setDesignAlphaAngle (
    Rad value
) 

function setDesignBetaAngle

void rayx::DesignElement::setDesignBetaAngle (
    Rad value
) 

function setDesignEnergy

void rayx::DesignElement::setDesignEnergy (
    double value
) 

function setDesignGrazingIncAngle

void rayx::DesignElement::setDesignGrazingIncAngle (
    Rad value
) 

function setDesignMeridionalEntranceArmLength

void rayx::DesignElement::setDesignMeridionalEntranceArmLength (
    double value
) 

function setDesignMeridionalExitArmLength

void rayx::DesignElement::setDesignMeridionalExitArmLength (
    double value
) 

function setDesignOrderOfDiffraction

void rayx::DesignElement::setDesignOrderOfDiffraction (
    int value
) 

function setDesignPlane

void rayx::DesignElement::setDesignPlane (
    DesignPlane value
) 

function setDesignSagittalEntranceArmLength

void rayx::DesignElement::setDesignSagittalEntranceArmLength (
    double value
) 

function setDesignSagittalExitArmLength

void rayx::DesignElement::setDesignSagittalExitArmLength (
    double value
) 

function setDeviationAngle

void rayx::DesignElement::setDeviationAngle (
    Rad value
) 

function setDistancePreceding

void rayx::DesignElement::setDistancePreceding (
    double d
) 

function setEntranceArmLength

void rayx::DesignElement::setEntranceArmLength (
    double value
) 

function setExitArmLength

void rayx::DesignElement::setExitArmLength (
    double value
) 

function setExpertsCubic

void rayx::DesignElement::setExpertsCubic (
    Surface value
) 

function setExpertsOptics

void rayx::DesignElement::setExpertsOptics (
    Surface value
) 

function setFigureRotation

void rayx::DesignElement::setFigureRotation (
    FigureRotation value
) 

function setFresnelZOffset

void rayx::DesignElement::setFresnelZOffset (
    double value
) 

function setGrazingIncAngle

void rayx::DesignElement::setGrazingIncAngle (
    Rad value
) 

function setImageType

void rayx::DesignElement::setImageType (
    int value
) 

function setLineDensity

void rayx::DesignElement::setLineDensity (
    double value
) 

function setLongHalfAxisA

void rayx::DesignElement::setLongHalfAxisA (
    double value
) 

function setLongRadius

void rayx::DesignElement::setLongRadius (
    double value
) 

function setMaterial

void rayx::DesignElement::setMaterial (
    Material m
) 

function setMaterialCoating

void rayx::DesignElement::setMaterialCoating (
    Material value
) 

function setMultilayerCoating

void rayx::DesignElement::setMultilayerCoating (
    const Coating::MultilayerCoating & coating
) 

function setName

virtual void rayx::DesignElement::setName (
    std::string s
) override

Implements rayx::BeamlineNode::setName


function setOffsetAngle

void rayx::DesignElement::setOffsetAngle (
    Rad value
) 

function setOffsetAngleType

void rayx::DesignElement::setOffsetAngleType (
    OffsetAngleType value
) 

function setOpeningHeight

void rayx::DesignElement::setOpeningHeight (
    double d
) 

function setOpeningShape

void rayx::DesignElement::setOpeningShape (
    CutoutType shape
) 

function setOpeningWidth

void rayx::DesignElement::setOpeningWidth (
    double d
) 

function setOrderOfDiffraction

void rayx::DesignElement::setOrderOfDiffraction (
    int value
) 

function setOrientation

void rayx::DesignElement::setOrientation (
    glm::dmat4x4 o
) 

function setParameterA11

void rayx::DesignElement::setParameterA11 (
    double value
) 

function setParameterP

void rayx::DesignElement::setParameterP (
    double value
) 

function setParameterPType

void rayx::DesignElement::setParameterPType (
    double value
) 

function setPosition

void rayx::DesignElement::setPosition (
    glm::dvec4 p
) 

function setProfileFile

void rayx::DesignElement::setProfileFile (
    double value
) 

function setProfileKind

void rayx::DesignElement::setProfileKind (
    int value
) 

function setRadius

void rayx::DesignElement::setRadius (
    double value
) 

function setRadiusDirection

void rayx::DesignElement::setRadiusDirection (
    CylinderDirection value
) 

function setRoughnessCoating

void rayx::DesignElement::setRoughnessCoating (
    double value
) 

function setRoughnessSubstrate

void rayx::DesignElement::setRoughnessSubstrate (
    double value
) 

function setShortHalfAxisB

void rayx::DesignElement::setShortHalfAxisB (
    double value
) 

function setShortRadius

void rayx::DesignElement::setShortRadius (
    double value
) 

function setSlopeError

void rayx::DesignElement::setSlopeError (
    SlopeError s
) 

function setStopHeight

void rayx::DesignElement::setStopHeight (
    double height
) 

function setStopWidth

void rayx::DesignElement::setStopWidth (
    double d
) 

function setStructureFactorImF0

void rayx::DesignElement::setStructureFactorImF0 (
    double value
) 

function setStructureFactorImFH

void rayx::DesignElement::setStructureFactorImFH (
    double value
) 

function setStructureFactorImFHC

void rayx::DesignElement::setStructureFactorImFHC (
    double value
) 

function setStructureFactorReF0

void rayx::DesignElement::setStructureFactorReF0 (
    double value
) 

function setStructureFactorReFH

void rayx::DesignElement::setStructureFactorReFH (
    double value
) 

function setStructureFactorReFHC

void rayx::DesignElement::setStructureFactorReFHC (
    double value
) 

function setSurfaceCoatingType

void rayx::DesignElement::setSurfaceCoatingType (
    SurfaceCoatingType value
) 

function setThicknessCoating

void rayx::DesignElement::setThicknessCoating (
    double value
) 

function setThicknessSubstrate

void rayx::DesignElement::setThicknessSubstrate (
    double value
) 

function setTotalHeight

void rayx::DesignElement::setTotalHeight (
    double d
) 

function setTotalLength

void rayx::DesignElement::setTotalLength (
    double value
) 

function setTotalWidth

void rayx::DesignElement::setTotalWidth (
    double width
) 

function setType

void rayx::DesignElement::setType (
    ElementType s
) 

function setUnitCellVolume

void rayx::DesignElement::setUnitCellVolume (
    double value
) 

function setVLSParameters

void rayx::DesignElement::setVLSParameters (
    const std::array< double, 6 > & values
) 

function ~DesignElement

rayx::DesignElement::~DesignElement () = default


The documentation for this class was generated from the following file Intern/rayx-core/src/Design/DesignElement.h