21 QAbstractTableModel(parent)
23 m_CurrentPos.Fill(0.0);
51 emit beginResetModel();
60 emit beginResetModel();
61 m_CurrentPos = currentPos;
69 emit beginResetModel();
70 m_Bookmarks = bookmarks;
75 QmitkFitParameterModel::
78 return this->m_Fits.size() == 1;
85 if (this->hasSingleFit())
93 return this->m_Fits.front()->GetParameters().size() + this->m_Fits.front()->staticParamMap.Size();
100 auto row =
static_cast<std::size_t
>(parent.row());
101 assert(row < this->m_Fits.size());
102 return this->m_Fits[row]->GetParameters().size() + this->m_Fits[row]->staticParamMap.Size();
106 return this->m_Fits.size();
115 if (m_Bookmarks.IsNotNull())
117 return m_Bookmarks->GetSize();
134 const auto paramSize =
static_cast<int>(currentFit->
GetParameters().size());
136 std::string staticParamName;
138 if (index.row() >= paramSize)
143 if (pos == index.row())
145 staticParamName = iter.first;
152 return staticParamName;
157 data(
const QModelIndex& index,
int role)
const 159 if (!index.isValid())
165 if (!index.parent().isValid() && !this->hasSingleFit())
167 if (index.row() <
static_cast<int>(m_Fits.size()) && index.column() == 0)
169 if (role == Qt::DisplayRole || role == Qt::EditRole)
171 result = QVariant(QString::fromStdString(m_Fits[index.row()]->fitName)+QString(
"(") + QString::fromStdString(m_Fits[index.row()]->uid) + QString(
")"));
173 else if (role == Qt::ToolTipRole)
175 result = QVariant(
"Name (UID) of the fit.");
183 if (this->hasSingleFit() && !index.parent().isValid())
185 currentFit = m_Fits.front();
187 else if (index.parent().isValid() && index.parent().row() <
static_cast<int>(m_Fits.size()))
189 currentFit = m_Fits[index.parent().row()];
194 const auto paramSize =
static_cast<int>(currentFit->
GetParameters().size());
197 if (index.row() < paramSize + staticParamSize)
201 switch (index.column())
204 if (role == Qt::DisplayRole || role == Qt::EditRole)
206 if (index.row() < paramSize)
208 const auto& param = currentFit->
GetParameters()[index.row()];
209 result = QVariant(QString::fromStdString(param->name));
213 result = QVariant(QString::fromStdString(staticParamName));
216 else if (role == Qt::ToolTipRole)
218 result = QVariant(
"Name of the parameter.");
223 if (role == Qt::DisplayRole || role == Qt::EditRole)
225 if (index.row() < paramSize)
227 const auto& param = currentFit->
GetParameters()[index.row()];
243 result = QVariant(QString::fromStdString(paramType));
247 result = QVariant(
"static");
250 else if (role == Qt::ToolTipRole)
252 result = QVariant(
"Type of the parameter.");
260 if (index.column() > 2)
262 pos = m_Bookmarks->GetPoint(index.column() - 3);
265 if (role == Qt::DisplayRole || role == Qt::EditRole)
267 if (index.row() < paramSize)
270 result = QVariant(QString::number(value));
275 result = QVariant(QString::number(value));
278 else if (role == Qt::ToolTipRole)
280 result = QVariant(
"Value of a (static) fit parameter");
294 flags(
const QModelIndex& index)
const 296 Qt::ItemFlags
flags = QAbstractItemModel::flags(index);
303 headerData(
int section, Qt::Orientation orientation,
int role)
const 305 if ((Qt::DisplayRole == role) &&
306 (Qt::Horizontal == orientation))
310 return QVariant(
"Name");
312 else if (section == 1)
314 return QVariant(
"Type");
316 else if (section == 2)
318 return QVariant(
"Value");
322 const auto & pos = m_Bookmarks->GetPoint(section - 3);
323 std::ostringstream strm;
324 strm.imbue(std::locale(
"C"));
325 strm << std::setprecision(3) <<
"Value @ Pos " << section -3 <<
" (" << pos[0] <<
"|" << pos[1] <<
"|" << pos[2] <<
")";
326 return QVariant(QString::fromStdString(strm.str()));
335 setData(
const QModelIndex&,
const QVariant&,
int)
static const std::string PARAMETER_TYPE_VALUE_CRITERION()
Qt::ItemFlags flags(const QModelIndex &index) const override
MITKMODELFIT_EXPORT ModelTraitsInterface::ParameterValueType ReadVoxel(const mitk::Image *image, const mitk::Point3D &position, unsigned int timestep=0, bool noThrow=true)
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QmitkFitParameterModel(QObject *parent=nullptr)
int rowCount(const QModelIndex &parent=QModelIndex()) const override
const mitk::PointSet * getPositionBookmarks() const
const FitVectorType & getFits() const
void setFits(const FitVectorType &fits)
MapType::size_type Size() const
StaticParameterMap staticParamMap
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
std::vector< mitk::modelFit::ModelFitInfo::ConstPointer > FitVectorType
Data structure which stores a set of points. Superclass of mitk::Mesh.
std::string GetStaticParameterName(const mitk::modelFit::ModelFitInfo *currentFit, const QModelIndex &index)
static const std::string PARAMETER_TYPE_VALUE_DERIVED_PARAMETER()
const ValueType & Get(const std::string &name) const
Returns the values of the given variable name.
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
void setCurrentPosition(const mitk::Point3D ¤tPos)
mitk::Point3D getCurrentPosition() const
Data class that stores all information about a modelfit that is relevant to the visualization and sto...
std::vcl_size_t getBookmarksCount() const
static const std::string PARAMETER_TYPE_VALUE_PARAMETER()
void setPositionBookmarks(const mitk::PointSet *bookmarks)
const ParamListType & GetParameters() const
static const std::string PARAMETER_TYPE_VALUE_EVALUATION_PARAMETER()
QVariant data(const QModelIndex &index, int role) const override