12#ifndef WSF_MULTIRESOLUTION_WRAPPER_META_MODEL_HPP
13#define WSF_MULTIRESOLUTION_WRAPPER_META_MODEL_HPP
19#include "UtCloneablePtr.hpp"
20#include "UtOptional.hpp"
45template<
typename DerivedComponent>
63 struct ModelWithFidelity
67 ut::CloneablePtr<DerivedComponent> mComponent;
69 using Index =
typename std::vector<ModelWithFidelity>::size_type;
74 std::unique_ptr<DerivedComponent>
GetModel()
const override;
81 bool ProcessModel(UtInputBlock& aInputBlock, Index aModelIndex);
84 std::unique_ptr<DerivedComponent> ProcessComponent(UtInput& aInput,
85 std::unique_ptr<DerivedComponent> aExistingComponent);
91 Index ProcessModelName(UtInputBlock& aInputBlock, ut::optional<bool> aExpectExists = ut::nullopt);
94 std::unique_ptr<DerivedComponent> ProcessComponentType(UtInput& aInput);
97 bool ProcessCommonParameters(UtInput& aInput);
101 void FinalizeModelProcessing(UtInput& aInput,
const ModelWithFidelity& aModelWithFidelity);
105 void AffirmDisjointWithFidelityRanges(UtInput& aInput,
const ModelWithFidelity& aModelWithFidelity)
const;
111 ut::optional<Index> ModelIndexForFidelity(
double aFidelity)
const;
114 ut::optional<Index> ModelIndexWithName(
const std::string& aTypeName)
const;
116 std::vector<ModelWithFidelity> mComponentModels;
120 ut::optional<Index> mDefaultComponentIndex;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfComponent.hpp:39
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
A range of fidelity values defined by a lower bound and upper bound.
Definition FidelityRange.hpp:26