|
BioDynaMo
v1.05.125-2619fe54
|
Simplifies the creation of behaviors without attributes. Let's assume that we want to create a behavior that divides a cell agent in each iteration. The following code example uses the StatelessBehavior: More...
#include <stateless_behavior.h>
Public Types | |
| using | FPtr = void(*)(Agent *) |
Public Member Functions | |
| StatelessBehavior () | |
| StatelessBehavior (const FPtr fptr) | |
| StatelessBehavior (const StatelessBehavior &other) | |
| virtual | ~StatelessBehavior ()=default |
| void | Initialize (const NewAgentEvent &event) override |
| void | Run (Agent *agent) override |
Public Member Functions inherited from bdm::Behavior | |
| Behavior () | |
| virtual | ~Behavior ()=default |
| virtual Behavior * | New () const =0 |
| Create a new instance of this object using the default constructor. More... | |
| virtual Behavior * | NewCopy () const =0 |
| Create a new copy of this behavior. More... | |
| virtual void | Update (const NewAgentEvent &event) |
| void | AlwaysCopyToNew () |
| Always copy this behavior to new agents. More... | |
| void | NeverCopyToNew () |
| Never copy this behavior to new agents. More... | |
| void | CopyToNewIf (const std::initializer_list< NewAgentEventUid > &uids) |
| void | AlwaysRemoveFromExisting () |
| void | NeverRemoveFromExisting () |
| void | RemoveFromExistingIf (const std::initializer_list< NewAgentEventUid > &uids) |
| bool | WillBeCopied (NewAgentEventUid event) const |
| bool | WillBeRemoved (NewAgentEventUid event) const |
| void * | operator new (size_t size) |
| void | operator delete (void *p) |
Private Member Functions | |
| BDM_BEHAVIOR_HEADER (StatelessBehavior, Behavior, 1) | |
Private Attributes | |
| FPtr | fptr_ |
Simplifies the creation of behaviors without attributes. Let's assume that we want to create a behavior that divides a cell agent in each iteration. The following code example uses the StatelessBehavior:
NB: The lambda expression is not allowed to use captures, because StatelessBehavior casts it to a function pointer. Without StatelessBehavior the following code would be required.
Definition at line 46 of file stateless_behavior.h.
| using bdm::StatelessBehavior::FPtr = void (*)(Agent*) |
Definition at line 50 of file stateless_behavior.h.
|
inline |
Definition at line 51 of file stateless_behavior.h.
|
inline |
Definition at line 52 of file stateless_behavior.h.
|
inline |
Definition at line 53 of file stateless_behavior.h.
|
virtualdefault |
|
private |
|
inlineoverridevirtual |
This method is called to initialize new behaviors that are created during a NewAgentEvent. Override this method to initialize attributes of your own Behavior subclasses. NB: Don't forget to call the implementation of the base class first. Base::Initialize(event); Failing to do so will result in errors.
Reimplemented from bdm::Behavior.
Definition at line 57 of file stateless_behavior.h.
|
inlineoverridevirtual |
Implements bdm::Behavior.
Definition at line 62 of file stateless_behavior.h.
|
private |
Definition at line 70 of file stateless_behavior.h.
1.8.17