BioDynaMo  v1.05.119-a4ff3934
dividing_cell_op.h
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------
2 //
3 // Copyright (C) 2021 CERN & University of Surrey for the benefit of the
4 // BioDynaMo collaboration. All Rights Reserved.
5 //
6 // Licensed under the Apache License, Version 2.0 (the "License");
7 // you may not use this file except in compliance with the License.
8 //
9 // See the LICENSE file distributed with this work for details.
10 // See the NOTICE file distributed with this work for additional information
11 // regarding copyright ownership.
12 //
13 // -----------------------------------------------------------------------------
14 
15 #ifndef CORE_OPERATION_DIVIDING_CELL_OP_H_
16 #define CORE_OPERATION_DIVIDING_CELL_OP_H_
17 
18 #include <cstdint>
19 #include "core/agent/agent.h"
20 #include "core/agent/cell.h"
23 #include "core/simulation.h"
24 
25 namespace bdm {
26 
29 
30  void operator()(Agent* agent) override {
31  if (Cell* cell = dynamic_cast<Cell*>(agent)) {
32  if (cell->GetDiameter() <= 40) {
33  cell->ChangeVolume(300);
34  } else {
35  cell->Divide();
36  }
37  }
38  }
39 };
40 
41 } // namespace bdm
42 
43 #endif // CORE_OPERATION_DIVIDING_CELL_OP_H_
bdm::DividingCellOp
Definition: dividing_cell_op.h:27
bdm
Definition: agent.cc:39
operation.h
operation_registry.h
bdm::Agent
Contains code required by all agents.
Definition: agent.h:79
bdm::DividingCellOp::operator()
void operator()(Agent *agent) override
Definition: dividing_cell_op.h:30
bdm::DividingCellOp::BDM_OP_HEADER
BDM_OP_HEADER(DividingCellOp)
bdm::AgentOperationImpl
Interface for implementing an operation.
Definition: operation.h:76
agent.h
bdm::Cell
Definition: cell.h:40
simulation.h
cell.h