36 #include "IsolatedLabelledCellKiller.hpp"
37 #include "VertexBasedCellPopulation.hpp"
38 #include "CellLabel.hpp"
40 template<
unsigned DIM>
46 EXCEPTION(
"IsolatedLabelledCellKiller only works with a VertexBasedCellPopulation.");
50 template<
unsigned DIM>
55 unsigned num_labelled_cells = this->mpCellPopulation->GetCellPropertyRegistry()->template Get<CellLabel>()->GetCellCount();
58 if (num_labelled_cells > 1)
62 cell_iter != this->mpCellPopulation->End();
66 if (cell_iter->template HasCellProperty<CellLabel>())
69 unsigned elem_index = this->mpCellPopulation->GetLocationIndexUsingCell(*cell_iter);
75 unsigned num_labelled_neighbours = 0;
76 for (std::set<unsigned>::iterator elem_iter = neighbouring_elem_indices.begin();
77 elem_iter != neighbouring_elem_indices.end();
80 if (this->mpCellPopulation->GetCellUsingLocationIndex(*elem_iter)->template HasCellProperty<CellLabel>())
82 num_labelled_neighbours++;
87 if (num_labelled_neighbours == 0)
96 template<
unsigned DIM>
#define EXCEPTION(message)
#define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS)
virtual void OutputCellKillerParameters(out_stream &rParamsFile)=0
std::set< unsigned > GetNeighbouringElementIndices(unsigned elementIndex)
IsolatedLabelledCellKiller(AbstractCellPopulation< DIM > *pCellPopulation)
void CheckAndLabelCellsForApoptosisOrDeath()
void OutputCellKillerParameters(out_stream &rParamsFile)