21 , m_bottomLayer(nullptr)
29 throw std::runtime_error(
"LayerInterface::clone() -> Not allowed to clone.");
33 const Layer* bottom_layer)
36 result->setLayersTopBottom(top_layer, bottom_layer);
41 const Layer* bottom_layer,
63 ASSERT(top_layer && bottom_layer);
Defines the macro ASSERT.
#define ASSERT(condition)
Defines class LayerInterface.
Defines class LayerRoughness.
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() override
const LayerRoughness * roughness() const
Returns roughness of the interface.
LayerInterface * clone() const override
Returns a clone of this ISampleNode object.
static LayerInterface * createSmoothInterface(const Layer *top_layer, const Layer *bottom_layer)
Creates smooth interface between two layers.
void setLayersTopBottom(const Layer *top_layer, const Layer *bottom_layer)
Sets links to the layers above and below the interface.
std::unique_ptr< LayerRoughness > m_roughness
roughness of the interface
const Layer * m_bottomLayer
pointer to the layer below interface
void setRoughness(const LayerRoughness &roughness)
Sets roughness of the interface.
std::vector< const INode * > nodeChildren() const override
Returns all children.
const Layer * m_topLayer
pointer to the layer above interface
A roughness of interface between two layers.
LayerRoughness * clone() const override
Returns a clone of this ISampleNode object.
A layer in a MultiLayer sample.