15 #ifndef BORNAGAIN_CORE_MULTILAYER_LAYERINTERFACE_H
16 #define BORNAGAIN_CORE_MULTILAYER_LAYERINTERFACE_H
48 const Layer* topLayer()
const;
50 const Layer* bottomLayer()
const;
55 void setLayersTopBottom(
const Layer* top_layer,
const Layer* bottom_layer);
58 const Layer* m_topLayer;
59 const Layer* m_bottomLayer;
60 std::unique_ptr<LayerRoughness> m_roughness;
65 return m_roughness.get();
68 inline const Layer* LayerInterface::topLayer()
const
73 inline const Layer* LayerInterface::bottomLayer()
const
Defines interface class ISample.
Visitor interface to visit ISample objects.
Pure virtual base class for sample components and properties related to scattering.
Interface between two layers, possibly with roughness.
static LayerInterface * createRoughInterface(const Layer *top_layer, const Layer *bottom_layer, const LayerRoughness &roughness)
Creates rough interface between two layers.
LayerInterface * clone() const
Returns a clone of this ISample object.
virtual void accept(INodeVisitor *visitor) const
Calls the INodeVisitor's visit method.
static LayerInterface * createSmoothInterface(const Layer *top_layer, const Layer *bottom_layer)
Creates smooth interface between two layers.
const LayerRoughness * getRoughness() const
Returns roughness of the interface.
std::vector< const INode * > getChildren() const
Returns a vector of children (const).
void setRoughness(const LayerRoughness &roughness)
Sets roughness of the interface.
A roughness of interface between two layers.
A layer, with thickness (in nanometer) and material.