6#include <vtkPolyDataAlgorithm.h>
20 QList<QVariant> rootData;
40 QList<QVariant> item_data;
42 item_data << QString::fromStdString(cond->
getParamName())
46 parent->appendChild(cond_item);
53 if (process_var ==
nullptr)
61 std::vector<std::unique_ptr<DataHolderLib::BoundaryCondition>>
const&
64 for (
auto& cond : conditions)
71 std::vector<std::unique_ptr<DataHolderLib::SourceTerm>>
const& conditions)
73 for (
auto& cond : conditions)
82 QList<QVariant> process_var_data;
83 process_var_data << QVariant(name) <<
"";
92 int const n_children(
_rootItem->childCount());
93 for (
int i = 0; i < n_children; ++i)
96 if (item !=
nullptr && item->getName() == name)
105 QString
const& param_name)
107 int const n_conditions = process_var->
childCount();
108 for (
int i = 0; i < n_conditions; ++i)
123 QString
const& param)
127 if (pv_item ==
nullptr)
133 _project.removeBoundaryCondition(process_var.toStdString(),
134 param.toStdString());
135 _project.removeSourceTerm(process_var.toStdString(), param.toStdString());
143 if (pv_item ==
nullptr)
149 for (
int i = n_conds - 1; i >= 0; --i)
155 _project.removePrimaryVariable(name.toStdString());
156 int const idx = pv_item->
row();
163 int const n_process_vars =
_rootItem->childCount();
164 for (
int i = n_process_vars; i >= 0; --i)
A TreeItem containing a boundary condition or source term.
DataHolderLib::FemCondition * getCondition() const
Returns the FEM Condition associated with the item.
QString const getName() const
Base class for boundary conditions, initial conditions and source terms.
virtual std::string const getConditionClassStr() const =0
Returns the type of condition for displaying purposes.
std::string const getProcessVarName() const
Returns the name of the associated process variable.
std::string const getParamName() const
Returns the name of the parameter associated with the condition.
void removeProcessVariable(QString const &name)
Removes a process variable incl all associated conditions from the model.
int columnCount(const QModelIndex &parent=QModelIndex()) const override
void updateModel()
Updates the model based on the ProjectData-object.
ProcessVarItem * addProcessVar(QString const &name)
Adds a process to the model.
void addBoundaryConditions(std::vector< std::unique_ptr< DataHolderLib::BoundaryCondition > > const &conditions)
Adds vector of Boundary Conditions to the model.
void clearModel()
Removes the complete content from the model.
void addCondition(DataHolderLib::FemCondition *condition)
Adds a single FEM Conditions to the model.
ProcessVarItem * getProcessVarItem(QString const &process_var_name) const
ProcessModel(DataHolderLib::Project &project, QObject *parent=nullptr)
DataHolderLib::Project & _project
void addConditionItem(DataHolderLib::FemCondition *cond, ProcessVarItem *parent)
Adds a new FEM condition to the condition tree model.
void removeCondition(QString const &process_var, QString const ¶m)
Removes FEMConditions from the the model.
void addSourceTerms(std::vector< std::unique_ptr< DataHolderLib::SourceTerm > > const &conditions)
Adds vector of Source Terms to the model.
A TreeItem representing process variable information.
Objects nodes for the TreeModel.
virtual int childCount() const
TreeItem * child(int row) const
bool removeChildren(int position, int count)
QModelIndex parent(const QModelIndex &index) const override
TreeModel(QObject *parent=nullptr)