diff --git a/src/protocols/MyGrowthModel/mygrowthmodel.cpp b/src/protocols/MyGrowthModel/mygrowthmodel.cpp new file mode 100644 --- /dev/null +++ b/src/protocols/MyGrowthModel/mygrowthmodel.cpp @@ -0,0 +1,71 @@ +/* + * + * This file is part of the Virtual Leaf. + * + * The Virtual Leaf is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Virtual Leaf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the Virtual Leaf. If not, see . + * + * Copyright 2010 Roeland Merks. + * + */ + +#include +#include +#include +#include "simplugin.h" +#include "parameter.h" +#include "wallbase.h" +#include "cellbase.h" +#include "mygrowthmodel.h" +#include "pi.h" +#include "random.h" + +QString Mygrowthmodel::ModelID(void) { + // specify the name of your model here + return QString( "Expanding cell model" ); +} + +// return the number of chemicals your model uses +int Mygrowthmodel::NChem(void) { return 0; } + +// To be executed after cell division +void Mygrowthmodel::OnDivide(ParentInfo *parent_info, CellBase *daughter1, CellBase *daughter2) { + // rules to be executed after cell division go here + // (e.g., cell differentiation rules) +} + +void Mygrowthmodel::SetCellColor(CellBase *c, QColor *color) { + // add cell coloring rules here +} + +void Mygrowthmodel::CellHouseKeeping(CellBase *c) { + // add cell behavioral rules here + + c->EnlargeTargetArea(par->cell_expansion_rate); +} + +void Mygrowthmodel::CelltoCellTransport(Wall *w, double *dchem_c1, double *dchem_c2) { + // add biochemical transport rules here +} + +void Mygrowthmodel::WallDynamics(Wall *w, double *dw1, double *dw2) { + // add biochemical networks for reactions occuring at walls here +} + +void Mygrowthmodel::CellDynamics(CellBase *c, double *dchem) { + // add biochemical networks for intracellular reactions here +} + +Q_EXPORT_PLUGIN2(mygrowthmodel, Mygrowthmodel) + +// finis