BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
INode.h File Reference
Include dependency graph for INode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ParaMeta
 
struct  NodeMeta
 
class  INode
 

Functions

NodeMeta nodeMetaUnion (const std::vector< ParaMeta > &base, const NodeMeta &other)
 
template<class T >
std::vector< const INode * > & operator<< (std::vector< const INode * > &v_node, const std::unique_ptr< T > &node)
 
template<class T >
std::vector< const INode * > & operator<< (std::vector< const INode * > &&v_node, const std::unique_ptr< T > &node)
 
std::vector< const INode * > & operator<< (std::vector< const INode * > &v_node, const INode *node)
 
std::vector< const INode * > & operator<< (std::vector< const INode * > &&v_node, const INode *node)
 
std::vector< const INode * > & operator<< (std::vector< const INode * > &v_node, const std::vector< const INode * > &other)
 
std::vector< const INode * > & operator<< (std::vector< const INode * > &&v_node, const std::vector< const INode * > &other)
 

Variables

const double INF = std::numeric_limits<double>::infinity()
 

Detailed Description

Defines class INode.

Homepage:\n http://www.bornagainproject.org
License:\n GNU General Public License v3 or higher (see COPYING)
Authors
Scientific Computing Group at MLZ (see CITATION, AUTHORS)

Definition in file INode.h.

Function Documentation

◆ nodeMetaUnion()

NodeMeta nodeMetaUnion ( const std::vector< ParaMeta > &  base,
const NodeMeta other 
)

Definition at line 24 of file INode.cpp.

25 {
26  return {other.className, other.tooltip, algo::concat(base, other.paraMeta)};
27 }
std::vector< T > concat(const std::vector< T > &v1, const std::vector< T > &v2)
Returns the concatenation of two std::vectors.
Definition: Algorithms.h:75
std::string className
Definition: INode.h:38
std::string tooltip
Definition: INode.h:39
std::vector< ParaMeta > paraMeta
Definition: INode.h:40

References NodeMeta::className, algo::concat(), NodeMeta::paraMeta, and NodeMeta::tooltip.

Here is the call graph for this function:

◆ operator<<() [1/6]

template<class T >
std::vector<const INode*>& operator<< ( std::vector< const INode * > &  v_node,
const std::unique_ptr< T > &  node 
)

Definition at line 43 of file INode.h.

93 {
94  if (node)
95  v_node.push_back(node.get());
96  return v_node;
97 }

◆ operator<<() [2/6]

template<class T >
std::vector<const INode*>& operator<< ( std::vector< const INode * > &&  v_node,
const std::unique_ptr< T > &  node 
)

Definition at line 43 of file INode.h.

102 {
103  if (node)
104  v_node.push_back(node.get());
105  return v_node;
106 }

◆ operator<<() [3/6]

std::vector<const INode*>& operator<< ( std::vector< const INode * > &  v_node,
const INode node 
)
inline

Definition at line 43 of file INode.h.

109 {
110  v_node.push_back(node);
111  return v_node;
112 }

◆ operator<<() [4/6]

std::vector<const INode*>& operator<< ( std::vector< const INode * > &&  v_node,
const INode node 
)
inline

Definition at line 43 of file INode.h.

115 {
116  v_node.push_back(node);
117  return v_node;
118 }

◆ operator<<() [5/6]

std::vector<const INode*>& operator<< ( std::vector< const INode * > &  v_node,
const std::vector< const INode * > &  other 
)
inline

Definition at line 43 of file INode.h.

122 {
123  v_node.insert(v_node.end(), other.begin(), other.end());
124  return v_node;
125 }

◆ operator<<() [6/6]

std::vector<const INode*>& operator<< ( std::vector< const INode * > &&  v_node,
const std::vector< const INode * > &  other 
)
inline

Definition at line 43 of file INode.h.

129 {
130  v_node.insert(v_node.end(), other.begin(), other.end());
131  return v_node;
132 }

Variable Documentation

◆ INF

const double INF = std::numeric_limits<double>::infinity()

Definition at line 24 of file INode.h.

Referenced by ConstantBackground::ConstantBackground(), DistributionCosine::DistributionCosine(), DistributionGate::DistributionGate(), DistributionGaussian::DistributionGaussian(), DistributionLogNormal::DistributionLogNormal(), DistributionLorentz::DistributionLorentz(), DistributionTrapezoid::DistributionTrapezoid(), FormFactorAnisoPyramid::FormFactorAnisoPyramid(), FormFactorBox::FormFactorBox(), FormFactorCantellatedCube::FormFactorCantellatedCube(), FormFactorCone::FormFactorCone(), FormFactorCone6::FormFactorCone6(), FormFactorCuboctahedron::FormFactorCuboctahedron(), FormFactorCylinder::FormFactorCylinder(), FormFactorDodecahedron::FormFactorDodecahedron(), FormFactorDot::FormFactorDot(), FormFactorEllipsoidalCylinder::FormFactorEllipsoidalCylinder(), FormFactorFullSphere::FormFactorFullSphere(), FormFactorFullSpheroid::FormFactorFullSpheroid(), FormFactorGaussSphere::FormFactorGaussSphere(), FormFactorHemiEllipsoid::FormFactorHemiEllipsoid(), FormFactorHollowSphere::FormFactorHollowSphere(), FormFactorIcosahedron::FormFactorIcosahedron(), FormFactorLongBoxGauss::FormFactorLongBoxGauss(), FormFactorLongBoxLorentz::FormFactorLongBoxLorentz(), FormFactorPrism3::FormFactorPrism3(), FormFactorPrism6::FormFactorPrism6(), FormFactorPyramid::FormFactorPyramid(), FormFactorSphereGaussianRadius::FormFactorSphereGaussianRadius(), FormFactorSphereLogNormalRadius::FormFactorSphereLogNormalRadius(), FormFactorTetrahedron::FormFactorTetrahedron(), FormFactorTruncatedCube::FormFactorTruncatedCube(), FormFactorTruncatedSphere::FormFactorTruncatedSphere(), FormFactorTruncatedSpheroid::FormFactorTruncatedSpheroid(), FTDecayFunction1DVoigt::FTDecayFunction1DVoigt(), FTDecayFunction2DVoigt::FTDecayFunction2DVoigt(), FTDistribution1DVoigt::FTDistribution1DVoigt(), FTDistribution2DVoigt::FTDistribution2DVoigt(), IFootprintFactor::IFootprintFactor(), IFTDecayFunction1D::IFTDecayFunction1D(), IFTDecayFunction2D::IFTDecayFunction2D(), IFTDistribution1D::IFTDistribution1D(), IFTDistribution2D::IFTDistribution2D(), INode::INode(), IProfileRipple::IProfileRipple(), ISawtoothRipple::ISawtoothRipple(), RotationEuler::RotationEuler(), RotationX::RotationX(), RotationY::RotationY(), and RotationZ::RotationZ().