BioDynaMo  v1.05.120-25dc9790
neuron_or_neurite.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 NEUROSCIENCE_NEURON_OR_NEURITE_H_
16 #define NEUROSCIENCE_NEURON_OR_NEURITE_H_
17 
18 #include <array>
19 #include "core/agent/agent.h"
22 
23 namespace bdm {
24 
25 class Spinlock;
26 
27 namespace neuroscience {
28 
29 class NeuriteElement;
30 class NeuronSoma;
31 
38 };
39 
43  public:
44  virtual ~NeuronOrNeurite();
45 
46  virtual const AgentUid& GetUid() const = 0;
47  virtual Spinlock* GetLock() = 0;
48 
50 
57 
58  bool IsNeuronSoma() const;
59 
60  bool IsNeuriteElement() const;
61 
62  virtual Real3 OriginOf(const AgentUid& daughter_uid) const = 0;
63 
64  virtual void RemoveDaughter(const AgentPointer<NeuriteElement>& daughter) = 0;
65 
66  virtual void UpdateDependentPhysicalVariables() = 0;
67 
68  virtual void UpdateRelative(const NeuronOrNeurite& old_rel,
69  const NeuronOrNeurite& new_rel) = 0;
70 };
71 
72 } // namespace neuroscience
73 } // namespace bdm
74 
75 #endif // NEUROSCIENCE_NEURON_OR_NEURITE_H_
bdm::neuroscience::NeuronOrNeurite::GetUid
virtual const AgentUid & GetUid() const =0
bdm
Definition: agent.cc:39
bdm::AgentPointer
Definition: agent_pointer.h:58
bdm::neuroscience::kBasalDendrite
@ kBasalDendrite
Definition: neuron_or_neurite.h:36
bdm::neuroscience::NeuronOrNeurite::GetNeuronOrNeuriteAgentPtr
AgentPointer< NeuronOrNeurite > GetNeuronOrNeuriteAgentPtr() const
Definition: neuron_or_neurite.cc:24
bdm::neuroscience::kUndefined
@ kUndefined
Definition: neuron_or_neurite.h:33
bdm::neuroscience::NeuronOrNeurite::UpdateDependentPhysicalVariables
virtual void UpdateDependentPhysicalVariables()=0
bdm::neuroscience::kApicalDendrite
@ kApicalDendrite
Definition: neuron_or_neurite.h:37
agent_pointer.h
bdm::neuroscience::NeuronOrNeurite::~NeuronOrNeurite
virtual ~NeuronOrNeurite()
bdm::neuroscience::NeuronOrNeurite::IsNeuronSoma
bool IsNeuronSoma() const
Definition: neuron_or_neurite.cc:43
bdm::neuroscience::NeuronOrNeurite::RemoveDaughter
virtual void RemoveDaughter(const AgentPointer< NeuriteElement > &daughter)=0
bdm::neuroscience::NeuronOrNeurite
Definition: neuron_or_neurite.h:42
bdm::Spinlock
Definition: spinlock.h:22
bdm::neuroscience::NeuronOrNeurite::GetIdentifierSWC
virtual StructureIdentifierSWC GetIdentifierSWC() const
Returns the SWC classification of the object.
Definition: neuron_or_neurite.cc:35
bdm::neuroscience::StructureIdentifierSWC
StructureIdentifierSWC
Definition: neuron_or_neurite.h:32
math_array.h
agent.h
bdm::neuroscience::NeuronOrNeurite::GetLock
virtual Spinlock * GetLock()=0
bdm::neuroscience::NeuronOrNeurite::IsNeuriteElement
bool IsNeuriteElement() const
Definition: neuron_or_neurite.cc:47
bdm::neuroscience::NeuronOrNeurite::UpdateRelative
virtual void UpdateRelative(const NeuronOrNeurite &old_rel, const NeuronOrNeurite &new_rel)=0
bdm::AgentUid
Definition: agent_uid.h:25
bdm::neuroscience::kSoma
@ kSoma
Definition: neuron_or_neurite.h:34
bdm::neuroscience::kAxon
@ kAxon
Definition: neuron_or_neurite.h:35
bdm::neuroscience::NeuronOrNeurite::OriginOf
virtual Real3 OriginOf(const AgentUid &daughter_uid) const =0
bdm::MathArray< real_t, 3 >