BioDynaMo
v1.05.120-25dc9790
core
operation
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
"
21
#include "
core/operation/operation.h
"
22
#include "
core/operation/operation_registry.h
"
23
#include "
core/simulation.h
"
24
25
namespace
bdm
{
26
27
struct
DividingCellOp
:
public
AgentOperationImpl
{
28
BDM_OP_HEADER
(
DividingCellOp
);
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
Generated by
1.8.17