OGS
CreatePiecewiseLinearCurve.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2
// SPDX-License-Identifier: BSD-3-Clause
3
4
#pragma once
5
6
#include <memory>
7
#include <string>
8
#include <vector>
9
10
namespace
BaseLib
11
{
12
class
ConfigTree
;
13
}
14
15
namespace
MathLib
16
{
17
struct
PiecewiseLinearCurveConfig
18
{
19
std::vector<double>
xs
;
20
std::vector<double>
ys
;
21
};
22
23
PiecewiseLinearCurveConfig
parsePiecewiseLinearCurveConfig
(
24
BaseLib::ConfigTree
const
& config);
25
28
template
<
typename
CurveType>
29
std::unique_ptr<CurveType>
createPiecewiseLinearCurve
(
30
BaseLib::ConfigTree
const
& config)
31
{
32
auto
[xs, ys] =
parsePiecewiseLinearCurveConfig
(config);
33
return
std::make_unique<CurveType>(std::move(xs), std::move(ys));
34
}
35
};
// namespace MathLib
BaseLib::ConfigTree
Definition
ConfigTree.h:101
BaseLib
Definition
TestDefinition.h:13
MathLib
Definition
CreateComponent.h:23
MathLib::parsePiecewiseLinearCurveConfig
PiecewiseLinearCurveConfig parsePiecewiseLinearCurveConfig(BaseLib::ConfigTree const &config)
Definition
CreatePiecewiseLinearCurve.cpp:18
MathLib::createPiecewiseLinearCurve
std::unique_ptr< CurveType > createPiecewiseLinearCurve(BaseLib::ConfigTree const &config)
Definition
CreatePiecewiseLinearCurve.h:29
MathLib::PiecewiseLinearCurveConfig
Definition
CreatePiecewiseLinearCurve.h:18
MathLib::PiecewiseLinearCurveConfig::xs
std::vector< double > xs
Definition
CreatePiecewiseLinearCurve.h:19
MathLib::PiecewiseLinearCurveConfig::ys
std::vector< double > ys
Definition
CreatePiecewiseLinearCurve.h:20
MathLib
Curve
CreatePiecewiseLinearCurve.h
Generated by
1.14.0