diff --git a/Modules/ModelFit/include/mitkModelFitProviderBase.tpp b/Modules/ModelFit/include/mitkModelFitProviderBase.tpp index 7554a4c4e7..3401d50ce7 100644 --- a/Modules/ModelFit/include/mitkModelFitProviderBase.tpp +++ b/Modules/ModelFit/include/mitkModelFitProviderBase.tpp @@ -1,148 +1,148 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include #include #include #include #include #include #include namespace mitk { template class ModelFitProviderBase::Impl { public: - Impl() : m_ReferenceFactory(TModelFactory::New()) + Impl() : m_Ranking(0), m_ReferenceFactory(TModelFactory::New()) { }; Impl(const Impl &other) = default; void SetRanking(int ranking) { m_Ranking = ranking; }; int GetRanking() const { return m_Ranking; }; us::ServiceRegistration m_Reg; int m_Ranking; using ModelFactoryType = TModelFactory; typename ModelFactoryType::Pointer m_ReferenceFactory; }; template ModelFitProviderBase::ModelFitProviderBase() : d() { } template ModelFitProviderBase::~ModelFitProviderBase() { UnregisterService(); } template ModelFitProviderBase::ModelFitProviderBase(const ModelFitProviderBase &other) : IModelFitProvider(), d(new Impl(*other.d.get())) { } template itk::SmartPointer ModelFitProviderBase::GenerateFactory() const { return TModelFactory::New().GetPointer(); }; template ModelBase::TimeGridType ModelFitProviderBase::GetVariableGrid(const modelFit::ModelFitInfo* fitInfo) const { if (!fitInfo) { mitkThrow() << "Error. Cannot get variable grid for model. Passed model fit info is null."; } if (!fitInfo->inputImage.IsNotNull()) { mitkThrow() << "Error. Cannot get variable grid for model. Passed model fit info has no input image."; } return mitk::ExtractTimeGrid(fitInfo->inputImage); }; template us::ServiceRegistration ModelFitProviderBase::RegisterService(us::ModuleContext *context) { if (d) return d->m_Reg; if (context == nullptr) { context = us::GetModuleContext(); } d.reset(new Impl()); us::ServiceProperties props = this->GetServiceProperties(); d->m_Reg = context->RegisterService(this, props); return d->m_Reg; } template void ModelFitProviderBase::UnregisterService() { try { d->m_Reg.Unregister(); } catch (const std::exception &) { } } template us::ServiceProperties ModelFitProviderBase::GetServiceProperties() const { us::ServiceProperties result; result[IModelFitProvider::PROP_MODEL_CLASS_ID()] = this->d->m_ReferenceFactory->GetClassID(); result[IModelFitProvider::PROP_MODEL_TYPE()] = this->d->m_ReferenceFactory->GetModelType(); result[us::ServiceConstants::SERVICE_RANKING()] = this->GetRanking(); return result; } template void ModelFitProviderBase::SetRanking(int ranking) { d->SetRanking(ranking); } template int ModelFitProviderBase::GetRanking() const { return d->GetRanking(); } }