From e2d4e2a349ad1fe38da4c4811eacb42e83033e15 Mon Sep 17 00:00:00 2001 From: Carl Philipp Klemm <philipp@uvos.xyz> Date: Mon, 6 Nov 2023 14:18:42 +0100 Subject: [PATCH] Model: add getDefaultParameters and getFlatParameterRanges --- eisgenerator/componant/componant.h | 2 +- eisgenerator/model.h | 2 ++ model.cpp | 35 ++++++++++++++++++++++++++---- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/eisgenerator/componant/componant.h b/eisgenerator/componant/componant.h index b14b93f..a667dc5 100644 --- a/eisgenerator/componant/componant.h +++ b/eisgenerator/componant/componant.h @@ -4,7 +4,7 @@ #include <vector> #include <string> -#include "eistype.h" +#include "../eistype.h" namespace eis { diff --git a/eisgenerator/model.h b/eisgenerator/model.h index cd5c462..2fd622b 100644 --- a/eisgenerator/model.h +++ b/eisgenerator/model.h @@ -51,6 +51,8 @@ public: size_t getUuid(); std::vector<Componant*> getFlatComponants(Componant *model = nullptr); std::vector<fvalue> getFlatParameters(); + std::vector<Range> getFlatParameterRanges(); + std::vector<Range> getDefaultParameters(); size_t getParameterCount(); bool compile(); bool isReady(); diff --git a/model.cpp b/model.cpp index f334dc0..7e0a0a7 100644 --- a/model.cpp +++ b/model.cpp @@ -168,17 +168,43 @@ Model::~Model() delete _model; } -std::vector<fvalue> Model::getFlatParameters() + +std::vector<Range> Model::getFlatParameterRanges() { std::vector<Componant*> flatComponants = getFlatComponants(); + std::vector<Range> out; + out.reserve(getParameterCount()); + for(Componant* componant : flatComponants) + { + const std::vector<Range> ranges = componant->getParamRanges(); + for(const Range& range : ranges) + out.push_back(range); + } + return out; +} + +std::vector<fvalue> Model::getFlatParameters() +{ + std::vector<Range> flatRanges = getFlatParameterRanges(); std::vector<fvalue> out; + out.reserve(flatRanges.size()); + for(const Range& range : flatRanges) + out.push_back(range.stepValue()); + return out; +} + +std::vector<Range> Model::getDefaultParameters() +{ + std::vector<Componant*> flatComponants = getFlatComponants(); + + std::vector<Range> out; out.reserve(getParameterCount()); for(Componant* componant : flatComponants) { - const std::vector<Range> ranges = componant->getParamRanges(); + const std::vector<Range> ranges = componant->getDefaultParameters(true); for(const Range& range : ranges) - out.push_back(range.stepValue()); + out.push_back(range); } return out; } @@ -527,7 +553,8 @@ bool Model::compile() { if(!_model->compileable()) { - Log(Log::WARN)<<"This model could not be compiled, expect performance degredation"; + Log(Log::WARN)<<"This model can not be compiled, because it contains " + <<"componants that lack a compiled reprisentation, expect performance degredation"; return false; } -- GitLab