Skip to content
Snippets Groups Projects
Commit 3a474d96 authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

adapt RealSpaceBuilder

parent 1051410a
No related branches found
No related tags found
1 merge request!2712Move out {sigma, hurst, correlationLength} to autocorrelation model class
......@@ -94,17 +94,24 @@ std::unique_ptr<const double2d_t> layerRoughnessMap(const LayerItem& layerItem,
const SceneGeometry& sceneGeometry, int seed)
{
std::unique_ptr<const double2d_t> result;
std::unique_ptr<AutoCorrModel> autoCorr;
std::unique_ptr<InterlayerModel> interlayer;
if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(layerItem.certainRoughness())) {
BasicAutoCorr autoCorr(br->sigma().dVal(), br->hurst().dVal(),
br->lateralCorrelationLength().dVal());
auto roughness =
LayerRoughness(&autoCorr, br->certainInterlayerModel()->createModel().release());
int n = sceneGeometry.numRoughnessPointsAlongAxis;
double L = 2 * sceneGeometry.layerSize;
auto rmap = RoughnessMap(n, n, L, L, &roughness, seed); // seed < 0 ==> random every time
result.reset(new double2d_t(rmap.generateMap()));
}
if (const RoughnessItem* r = layerItem.certainRoughness())
interlayer = r->certainInterlayerModel()->createModel();
if (const auto* br = dynamic_cast<const BasicRoughnessItem*>(layerItem.certainRoughness()))
autoCorr = std::make_unique<BasicAutoCorr>(br->sigma().dVal(), br->hurst().dVal(),
br->lateralCorrelationLength().dVal());
auto roughness = LayerRoughness(autoCorr.get(), interlayer.get());
if (roughness.sigma() == 0)
return result;
int n = sceneGeometry.numRoughnessPointsAlongAxis;
double L = 2 * sceneGeometry.layerSize;
auto rmap = RoughnessMap(n, n, L, L, &roughness, seed); // seed < 0 ==> random every time
result.reset(new double2d_t(rmap.generateMap()));
return result;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment