BioDynaMo
v1.05.120-25dc9790
|
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.