AbstractCellCentreBasedTissue.hpp
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
00033
00034 #include "WildTypeCellMutationState.hpp"
00035
00040 template<unsigned DIM>
00041 class AbstractCellCentreBasedTissue : public AbstractTissue<DIM>
00042 {
00043 private:
00045 friend class boost::serialization::access;
00052 template<class Archive>
00053 void serialize(Archive & archive, const unsigned int version)
00054 {
00055
00056
00057 archive & boost::serialization::base_object<AbstractTissue<DIM> >(*this);
00058 }
00059
00060 protected:
00065 AbstractCellCentreBasedTissue();
00066
00067 public:
00068
00075 AbstractCellCentreBasedTissue(std::vector<TissueCell>& rCells,
00076 const std::vector<unsigned> locationIndices=std::vector<unsigned>());
00077
00086 c_vector<double, DIM> GetLocationOfCellCentre(TissueCell& rCell);
00087
00095 Node<DIM>* GetNodeCorrespondingToCell(TissueCell& rCell);
00096
00106 TissueCell* AddCell(TissueCell& rNewCell, const c_vector<double,DIM>& rCellDivisionVector, TissueCell* pParentCell=NULL);
00107
00115 bool IsCellAssociatedWithADeletedLocation(TissueCell& rCell);
00116
00123 virtual void UpdateNodeLocations(const std::vector< c_vector<double, DIM> >& rNodeForces, double dt);
00124
00141 virtual double GetDampingConstant(unsigned nodeIndex);
00142
00151 void GenerateCellResults(unsigned locationIndex,
00152 std::vector<unsigned>& rCellProliferativeTypeCounter,
00153 std::vector<unsigned>& rCellCyclePhaseCounter);
00154
00158 virtual void GenerateCellResultsAndWriteToFiles();
00159
00168 virtual bool IsGhostNode(unsigned index);
00169 };
00170
00171 #endif