00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ABSTRACTCELLCENTREBASEDTISSUE_HPP_
00029 #define ABSTRACTCELLCENTREBASEDTISSUE_HPP_
00030
00031 #include "AbstractTissue.hpp"
00032
00037 template<unsigned DIM>
00038 class AbstractCellCentreBasedTissue : public AbstractTissue<DIM>
00039 {
00040 private:
00041
00043 friend class boost::serialization::access;
00050 template<class Archive>
00051 void serialize(Archive & archive, const unsigned int version)
00052 {
00053
00054
00055 archive & boost::serialization::base_object<AbstractTissue<DIM> >(*this);
00056 }
00057
00058 public:
00059
00066 AbstractCellCentreBasedTissue(const std::vector<TissueCell>& rCells,
00067 const std::vector<unsigned> locationIndices=std::vector<unsigned>());
00068
00073 AbstractCellCentreBasedTissue();
00074
00083 c_vector<double, DIM> GetLocationOfCellCentre(TissueCell* pCell);
00084
00092 Node<DIM>* GetNodeCorrespondingToCell(TissueCell* pCell);
00093
00103 TissueCell* AddCell(TissueCell& rNewCell, c_vector<double,DIM> newLocation, TissueCell* pParentCell=NULL);
00104
00112 bool IsCellAssociatedWithADeletedNode(TissueCell& rCell);
00113
00120 virtual void UpdateNodeLocations(const std::vector< c_vector<double, DIM> >& rNodeForces, double dt);
00121
00133 virtual double GetDampingConstant(unsigned nodeIndex);
00134
00144 virtual void WriteResultsToFiles(bool outputCellMutationStates,
00145 bool outputCellTypes,
00146 bool outputCellVariables,
00147 bool outputCellCyclePhases,
00148 bool outputCellAncestors);
00149
00150 };
00151
00152 #endif