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
10namespace BaseLib
11{
12class ConfigTree;
13}
14
15namespace MathLib
16{
18{
19 std::vector<double> xs;
20 std::vector<double> ys;
21};
22
24 BaseLib::ConfigTree const& config);
25
28template <typename CurveType>
29std::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
PiecewiseLinearCurveConfig parsePiecewiseLinearCurveConfig(BaseLib::ConfigTree const &config)
std::unique_ptr< CurveType > createPiecewiseLinearCurve(BaseLib::ConfigTree const &config)