BioDynaMo  v1.05.159-3be850bb
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 
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_
virtual void RemoveDaughter(const AgentPointer< NeuriteElement > &daughter)=0
virtual Real3 OriginOf(const AgentUid &daughter_uid) const =0
AgentPointer< NeuronOrNeurite > GetNeuronOrNeuriteAgentPtr() const
virtual const AgentUid & GetUid() const =0
virtual StructureIdentifierSWC GetIdentifierSWC() const
Returns the SWC classification of the object.
virtual void UpdateDependentPhysicalVariables()=0
virtual Spinlock * GetLock()=0
virtual void UpdateRelative(const NeuronOrNeurite &old_rel, const NeuronOrNeurite &new_rel)=0
Definition: agent.cc:39