diff --git a/src/protocols/Makefile b/src/protocols/Makefile
--- a/src/protocols/Makefile
+++ b/src/protocols/Makefile
@@ -9,7 +9,8 @@ ifeq ($(MAKE),)
endif
PROTOCOLS=\
- MyEmptyModel
+ MyEmptyModel\
+ MyGrowthModel
all:
@for p in $(PROTOCOLS); do $(MAKE) -C $$p; done;
diff --git a/src/protocols/MyGrowthModel/Makefile b/src/protocols/MyGrowthModel/Makefile
new file mode 100644
--- /dev/null
+++ b/src/protocols/MyGrowthModel/Makefile
@@ -0,0 +1,30 @@
+# Set an environment varible $(MAKE) to the name of the make command
+# on your machine, e.g. 'make' on UNIX and 'mingw32-make' on windows.
+# Fallback default is UNIX make.
+
+ifeq ($(MAKE),)
+ MAKE=make
+endif
+
+# Ditto for QMAKE
+ifeq ($(QMAKE),)
+ QMAKE=qmake
+endif
+
+all: mygrowthmodel
+
+mygrowthmodel: Makefile.mygrowthmodel
+ $(MAKE) -f Makefile.mygrowthmodel
+
+Makefile.mygrowthmodel: mygrowthmodel.pro
+ $(QMAKE) -o $@ $<
+
+clean:
+ $(MAKE) -f Makefile.mygrowthmodel clean
+ifeq ($(MAKE),make)
+ touch mygrowthmodel.pro
+else
+ copy /b mygrowthmodel.pro +,,
+endif
+
+# finis
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
diff --git a/src/protocols/MyGrowthModel/mygrowthmodel.h b/src/protocols/MyGrowthModel/mygrowthmodel.h
new file mode 100644
--- /dev/null
+++ b/src/protocols/MyGrowthModel/mygrowthmodel.h
@@ -0,0 +1,57 @@
+/*
+ *
+ * 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"
+
+class Mygrowthmodel : public QObject, SimPluginInterface {
+ Q_OBJECT
+ Q_INTERFACES(SimPluginInterface);
+
+ public:
+ virtual QString ModelID(void);
+
+ // Executed after the cellular mechanics steps have equillibrized
+ virtual void CellHouseKeeping (CellBase *c);
+
+ // Differential equations describing transport of chemicals from cell to cell
+ virtual void CelltoCellTransport(Wall *w, double *dchem_c1, double *dchem_c2);
+
+ // Differential equations describing chemical reactions taking place at or near the cell walls
+ // (e.g. PIN accumulation)
+ virtual void WallDynamics(Wall *w, double *dw1, double *dw2);
+
+ // Differential equations describing chemical reactions inside the cells
+ virtual void CellDynamics(CellBase *c, double *dchem);
+
+ // To be executed after a cell division
+ virtual void OnDivide(ParentInfo *parent_info, CellBase *daughter1, CellBase *daughter2);
+
+ // To be executed for coloring a cell
+ virtual void SetCellColor(CellBase *c, QColor *color);
+
+ // Return number of chemicals
+ virtual int NChem(void);
+};
+
+// finis
diff --git a/src/protocols/MyGrowthModel/mygrowthmodel.pro b/src/protocols/MyGrowthModel/mygrowthmodel.pro
new file mode 100644
--- /dev/null
+++ b/src/protocols/MyGrowthModel/mygrowthmodel.pro
@@ -0,0 +1,63 @@
+#
+# $Id$
+#
+# 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.
+#
+
+
+TARGET = mygrowthmodel
+VLEAFHOME = ../../..
+
+CONFIG += release
+CONFIG -= debug
+CONFIG += plugin
+
+BINDIR = $${VLEAFHOME}/bin
+LIBDIR = $${VLEAFHOME}/lib
+INCDIR = $${VLEAFHOME}/src
+DEFINES = QTGRAPHICS # VLEAFPLUGIN
+DESTDIR = $${BINDIR}/models
+HEADERS = $${TARGET}.h $${INCDIR}/simplugin.h
+INCLUDEPATH += $${INCDIR}
+
+QMAKE_CXXFLAGS += -fexceptions #-I$${INCDIR}
+QMAKE_CXXFLAGS += -Wno-write-strings
+QMAKE_CXXFLAGS += -Wno-unused-parameter
+QMAKE_CXXFLAGS_DEBUG += -g3
+QMAKE_CXXFLAGS_DEBUG += -DQDEBUG
+QT += qt3support
+SOURCES = $${TARGET}.cpp
+TEMPLATE = lib
+
+unix {
+ LIBS += -L$${LIBDIR} -lvleaf
+ QMAKE_CXXFLAGS += -fPIC -I/usr/include/libxml2
+ QMAKE_LFLAGS += -fPIC
+}
+
+win32 {
+ LIBXML2DIR = $${LIBDIR}\libxml2
+ LIBICONVDIR = $${LIBDIR}\libiconv
+ LIBZDIR = $${LIBDIR}\libz
+ LIBS += -L$${LIBDIR} -lvleaf
+ QMAKE_CXXFLAGS += -DLIBXML_STATIC
+ QMAKE_CXXFLAGS += -I$${LIBXML2DIR}\include -I$${LIBICONVDIR}\include -I$${LIBZDIR}\include
+
+}
+
+# finish