diff --git a/eisgenerator/componant/componant.h b/eisgenerator/componant/componant.h index b14b93f050f2ff8e3162606fa46162056e30c070..a667dc54b05cd8d2fabd0fa4b3c8981ac02ef9fb 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 cd5c462e301464f2daf86a3d062234026b37b136..2fd622b94a9ee49122e73f13ea5e8007dd26635d 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 f334dc07a72a20b3ecd7e9dd7ec707a6f52ea2e7..7e0a0a7f5213e890d046152a95582ba357beaba6 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; }